如何使用 mixpanel-ruby gem 来跟踪事件?

Posted

技术标签:

【中文标题】如何使用 mixpanel-ruby gem 来跟踪事件?【英文标题】:How do I use mixpanel-ruby gem to track events? 【发布时间】:2016-02-10 22:12:32 【问题描述】:

我正在将 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

我有一个模型评论,我想在添加评论时对其进行跟踪。

models/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 中的事件(尽管它正确显示了我的客户端视图事件)。那么我做错了什么?提前致谢!

【问题讨论】:

我确实看到了这个***.com/questions/35122695/…,但它暗示了一颗宝石。我想在不需要添加 gem 的情况下解决这个问题。谢谢! 【参考方案1】:

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

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

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

initializers/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 正在正确跟踪我的服务器端事件。

【讨论】:

我一直在寻找这个设置 eheh :) 感谢分享您的配置

以上是关于如何使用 mixpanel-ruby gem 来跟踪事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何安装本地 gem?

使用 bundler,如何解压通过 git 存储库安装的 gem?

如何在 Ubuntu 中使用 gem?

如何使用 Bundler 添加 gem

如何升级我的本地自定义 gem“my_gem”的 ruby​​ 版本

Ruby:如何安装特定版本的 ruby​​ gem?