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

怖話 - Team Dashboard


SNSログイン(Twitterでログインとか)をリリースしてから明らかにサインアップ数が増えてることが分かって嬉しい。

あとはWebとiPhone版とAndroid版の比率とか出したいので円グラフを出したいところです。

Comments


Option