mixpanel のイベントのプロパティにリストを設定して、後から色々分析する術

こんにちは。さんまが食べたい、きたけーです。

mixpanel のイベントのプロパティにはリストを設定することができます。こんなかんじです。ランダムで僕の財布がすっからかんになった要因が追加されます。

require 'mixpanel-ruby'
require 'dotenv'

Dotenv.load

tracker = Mixpanel::Tracker.new(ENV["PROJECT_TOKEN"])

30.times do
  reasons = []
  if rand(2) == 1
    reasons << 'おいしいもの食べ過ぎた'
  end
  if rand(2) == 1
    reasons << '本を買いすぎた'
  end
  if rand(2) == 1
    reasons << '旅行に行き過ぎた'
  end

  tracker.track('kitak', "財布がすっからかんになった", {
    'Reason' => reasons
  })
end

これを後から分析する場合はこんなかんじです(これは別にRubyのプログラムを書かなくてもmixpanelの分析画面で十分です)。本を買いすぎて、財布がすっからかんになった件数が出ます。

require 'mixpanel_client'
require 'dotenv'

Dotenv.load

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

data = client.request(
  'segmentation',
  from_date: '2014-10-12',
  to_date: '2014-10-12',
  event: '財布がすっからかんになった',
  type: 'general',
  where: '"本を買いすぎた" in properties["Reason"]'
)

puts data.inspect # {"legend_size"=>1, "data"=>{"series"=>["2014-10-12"], "values"=>{"財布がすっからかんになった"=>{"2014-10-12"=>21}}}}

本を買いすぎ、かつ、おいしいものを食べ過ぎた場合はwhereを以下のようにします。

'"本を買いすぎた" in properties["Reason"] and "おいしいもの食べ過ぎた" in properties["Reason"]'

まとめ

ふざけた例でしたが、例えば、あるアクションをしたイベントと、そのアクションが失敗したイベント(プロパティに失敗した要因を記録する)をtrackしておけば、各要因ごと(あるいは全ての)のエラー率を計算できるので便利です。