Mixpanel でデータを収集している時、Mixpanel で提供されている機能以外でも分析等したい時があります。そんな時は、Mixpanel API として提供されているデータのエクスポートを使うと便利です。
その時に気をつけるポイントを幾つかメモしておきます。
ユーザのデータを取り出したい
イベントのデータはexport
メソッドで取れますが、ユーザのデータはengage
メソッドで取得します。
require "rubygems"
require 'mixpanel_client'
client = Mixpanel::Client.new(
api_key: 'key',
api_secret: 'secret'
)
params = {
where: "properties[\"Some Property\"] == \"something\""
}
data = client.request('engage', params)
puts data
where
パラメータには、フィルタをかけるための条件を入力します。properties[]
の[]
の中に、ダブルクオートで囲ってプロパティ名を入れた文字列をパラメータにする必要があるので、ダブルクオートを忘れずにエスケープシーケンスで入れておきます。
プロパティ名の指定方法
地味に引っかかるのが、自分で定義したプロパティと、Mixpanel がはじめから持っているプロパティで指定方法が違う点です。自分で定義したプロパティはそのままですが、Mixpanel がはじめから持っているプロパティは、$を先頭につけてスネークケースにします。
require "rubygems"
require 'mixpanel_client'
client = Mixpanel::Client.new(
api_key: 'key',
api_secret: 'secret'
)
params = {
where: "properties[\"$city\"] >= \"something\""
}
data = client.request('engage', params)
puts data
異なる場所から同時に同じアプリケーションについてリクエストできない
詳しくはドキュメントにもなさそうですが、同じアプリケーションに対するリクエストを異なる場所から同時に実行すると、片方がエラーとなってしまうようです。