Team DashboardはHTTP Proxyという機能があって、ブラウザ上からJSONのデータを引っ張ってきてパスを指定すればそれだけでウィジェットに表示できるので、合計数は怖話本体にJSON APIを作り、PVのGoogle Analyticsと収益のnendはそれぞれ引っ張ってきて(nendはmechanizeでスクレイプ)、heroku上のsinatraで自作のJSONを返しています。
グラフだけはganglia互換みたいなDatapointsを自分で用意する必要があります。でもdemoコードがついてるので実装はパクれば簡単。レンジ指定などは端折ってとりあえずMixpanelから日別の怖い話投稿数・サインアップ数・シェア数を取ってきて出すようにしてみました。
# app/models/sources/datapoints/mixpanel.rb:
module Sources
module Datapoints
class Mixpanel < Sources::Datapoints::Base
def get(targets, from, to, options = {})
client = ::Mixpanel::Client.new(
api_key: 'xxxxxxxxxxxxxxxxxxxxxxx',
api_secret: 'xxxxxxxxxxxxxxxxxxxxxxxx'
)
data = client.request('events', {
event: '["Share","Signed up","Posted story"]',
type: 'general',
unit: 'day',
interval: 30,
})
results = []
targets.each do |target|
datapoints = []
data["data"]["series"].each do |date|
datapoints << [data["data"]["values"][target][date], Time.parse(date).to_i]
end
results << {'target' => target, 'datapoints' => datapoints}
end
results
end
def available_targets(options = {})
["Share", "Posted story", "Signed up"]
end
def supports_target_browsing?
true
end
end
end
end
SNSログイン(Twitterでログインとか)をリリースしてから明らかにサインアップ数が増えてることが分かって嬉しい。
あとはWebとiPhone版とAndroid版の比率とか出したいので円グラフを出したいところです。