当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – 如何使用mixpanel-ruby gem跟踪事件?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我正在将Mixpanel集成到我的 Ruby on Rails应用程序中.我已正确集成 Javascript标记以进行客户端视图跟踪. 我还以各种方式为我的模型和控制器中的服务器端事件添加了Mixpanel跟踪标记,但没有
我正在将Mixpanel集成到我的 Ruby on Rails应用程序中.我已正确集成 Javascript标记以进行客户端视图跟踪.

我还以各种方式为我的模型和控制器中的服务器端事件添加了Mixpanel跟踪标记,但没有成功.以下是我尝试过的一个例子:

我已经安装了mixpanel-ruby gem并添加了以下代码:

/initializers/mixpanel.rb

require 'mixpanel-ruby'

if Rails.env == "development"
  tracker = Mixpanel::Tracker.new(ENV['MIXPANEL_DEV_TOKEN'])
end

if Rails.env == "production"
  tracker = Mixpanel::Tracker.new(ENV['MIXPANEL_PROD_TOKEN'])
end

我有一个模型评论,我想跟踪添加评论的时间.

车型/ review.rb

class Review < ActiveRecord::Base
after_create :track_review

def track_review
  tracker.track('User', 'Added Review')
end

Ruby instructions from Mixpanel(不是特定于Rails应用程序)说至少需要这些部分:

require 'mixpanel-ruby'

tracker = Mixpanel::Tracker.new(PROJECT_TOKEN)

# Tracks an event, 'Sent Message',
# with distinct_id user_id
tracker.track(user_id, 'Sent Message')

我有这些,但没有错误,没有事件出现在Mixpanel(它正确显示我的客户端视图事件).那么我做错了什么?提前致谢!

我用3个修复解决了这个问题:

1:在initializers / mixpanel.rb中声明的变量需要是一个写为$variable的全局变量.我通过添加一个美元符号将其更改为全局变量,然后将我的环境变量移动到我的application.yml文件(我正在使用Figaro).

2:在开发过程中,我遇到了Mixpanel’s Git issues中记录的一个罕见的SSL错误.一位朋友帮助我使用调试器来发现从我的开发环境调用Mixpanel的服务器时出现连接错误.为了解决这个问题,我在初始化程序/ mixpanel.rb中添加了一个在问题讨论中建议的代码段.

初始化/ mixpanel.rb

require 'mixpanel-ruby'
$tracker = Mixpanel::Tracker.new(ENV['MIXPANEL_TOKEN'])

if Rails.env.development? 
  #silence local SSL errors
  Mixpanel.config_http do |http|
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  end
end

3:在生产中,我仍然无法让事情发挥作用.事实证明,我需要在Heroku的环境变量中设置我的Mixpanel配置令牌.我在命令行中使用了以下内容来执行此操作

heroku config:set MIXPANEL_TOKEN=my_token_string_goes_here

完成所有这些操作后,我为Mixpanel跟踪器提供了一个正确声明的全局变量,一个包含开发和产品令牌的环境文件,一个SSL错误补丁,以及一个带有我的Mixpanel令牌的更新的Heroku配置.所有这些以及现在的Mixpanel正在正确地跟踪我的服务器端事件.

网友评论