sup*_*ext 3 ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)
我有一个模型评论,我想跟踪添加评论的时间.
车型/ review.rb
class Review < ActiveRecord::Base
after_create :track_review
def track_review
tracker.track('User', 'Added Review')
end
Run Code Online (Sandbox Code Playgroud)
来自Mixpanel的Ruby指令(不是特定于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')
Run Code Online (Sandbox Code Playgroud)
我有这些,但没有错误,没有事件出现在Mixpanel(它正确显示我的客户端视图事件).那么我做错了什么?提前致谢!
我用3个修复解决了这个问题:
1:在initializers/mixpanel.rb中声明的变量需要是一个写为$ variable的全局变量.我通过添加一个美元符号将其更改为全局变量,然后将我的环境变量移动到我的application.yml文件(我正在使用Figaro).
2:在开发过程中,我遇到了Mixpanel的Git问题中记录的罕见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
Run Code Online (Sandbox Code Playgroud)
3:在生产中,我仍然无法让事情发挥作用.事实证明,我需要在Heroku的环境变量中设置我的Mixpanel配置令牌.我在命令行中使用了以下内容来执行此操作
heroku config:set MIXPANEL_TOKEN=my_token_string_goes_here
Run Code Online (Sandbox Code Playgroud)
完成所有这些操作后,我为Mixpanel跟踪器提供了一个正确声明的全局变量,一个包含开发和产品令牌的环境文件,一个SSL错误补丁,以及一个带有我的Mixpanel令牌的更新的Heroku配置.所有这些以及现在的Mixpanel正在正确地跟踪我的服务器端事件.
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |