kitak blog

Kみたいなエンジニアになりたいブログ

Rubyでmixpanelのイベントをtrackしたり、データをexportする術

こんにちは。最後の100円玉をつかってしまいました、きたけーです。

仕事で最近mixpanelを扱う必要がでてきたので、Rubyのclientライブラリを触ってみました。

mixpanel-ruby

公式のライブラリ mixpanel/mixpanel-ruby · GitHub

イベントのtrackとか属性の設定とかをするんだったら、これを使う(ドキュメントはこれ http://mixpanel.github.io/mixpanel-ruby/)。Railsのアプリケーションとか属性の初期設定、再設定とかで使いそう。

イベントをtrackする場合はこんなかんじ。

require 'mixpanel-ruby'
require 'dotenv'

Dotenv.load

tracker = Mixpanel::Tracker.new(ENV["PROJECT_TOKEN"])
tracker.track('kitak', 'Send Message')

keolo/mixpanel_client

keolo/mixpanel_client · GitHub

Data Export API (https://mixpanel.com/docs/api-documentation/data-export-api) が叩けるラリブラリ、mixpanelの管理画面で分析するときに、ちょっとかゆいところを解消するために使えそう。

「Send Message」イベントが起きた回数を一時間ごとに集計する場合はこんなかんじ

require 'mixpanel_client'
require 'dotenv'

Dotenv.load

client = Mixpanel::Client.new(
  api_key: ENV["API_KEY"],
  api_secret: ENV["API_SECRET"]
)

data = client.request(
  'events',
  event: ['Send Message'],
  type: 'general',
  unit: 'hour',
  interval: 1,
)

puts data.class
puts data.inspect

所感

言語によって、APIインターフェイスとか、(多分同じことしているはずなのに)メソッド名が違っていたりするので少し混乱する。 使い方がまだいまいちわからないので自分の検証環境でAPI叩いたり、Data Export API - Mixpanel | Help のドキュメントの用語を把握する。

追記

同僚の @hisaichi5518 氏にRailsのアプリケーションだったら doorkeeper/event_tracker · GitHub がよいのでは、とおしえてもらった。コードをざっと読んだかんじだと、ヘルパーを呼んだときにセッションに値をいれておいて、ビューを生成するタイミングでtrackとか属性を設定するJSコードを生成するかんじ。便利そう!