ruby-on-rails – 如何使用mixpanel-ruby gem跟踪事件?
我正在将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正在正确地跟踪我的服务器端事件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |