2011-06-26
Google Analyticsデータ取得gemライブラリ「Garb」
Google Analytics の Data Export API のラッパーライブラリです。
環境
- Ruby 1.9.2p180
- Garb 0.9.1
OAuthアクセストークン取得
ユーザー名とパスワードでも扱えますが、あえて茨の道を選択してみました。
Consumer Key,Consumer Secret取得
- Google Accounts
- Manage registrationか、なければAdd a New Domainで追加
- 新規登録の場合はgoogleXXX.htmlを置いてVerify
- ActiveになったらConsumer KeyとConsumer Secretを取得
アクセストークン取得
require 'oauth' CONSUMER_KEY = 'XXX' CONSUMER_SECRET = 'XXX' consumer = OAuth::Consumer.new CONSUMER_KEY, CONSUMER_SECRET, { :signature_method => 'HMAC-SHA1', :site => 'https://www.google.com', :request_token_path => '/accounts/OAuthGetRequestToken', :authorize_path => '/accounts/OAuthAuthorizeToken', :access_token_path => '/accounts/OAuthGetAccessToken', } request_token = consumer. get_request_token({}, :scope => "https://www.google.com/analytics/feeds/") print request_token.authorize_url + "\n" ACCESS_CODE = STDIN.gets.gsub!(/\n/,'') access_token = request_token.get_access_token(:oauth_verifier => ACCESS_CODE) print "ACCESS_TOKEN = '" + access_token.token + "'\n" print "ACCESS_SECRET = '" + access_token.secret + "'\n"
Analyticsデータ取得
require 'garb' ACCESS_TOKEN = 'XXX' ACCESS_SECRET = 'XXX' #consumer生成までは上記コードと同じ access_token = OAuth::AccessToken.new(consumer, ACCESS_TOKEN, ACCESS_SECRET) Garb::Session.access_token = access_token profile = Garb::Management::Profile.all.detect {|p| p.web_property_id == 'UA-XXXXXXX-X'} class PageTitle extend Garb::Model metrics :pageviews dimensions :hostname, :page_path, :page_title end rs = PageTitle.results(profile, {:limit => 20, :sort => :pageviews.desc}) rs.each do |r| print r.pageviews + "\n" + r.page_title + "\n" + r.hostname + r.page_path + "\n\n" end
- Garb::Modelをextendしたクラスを作る
- metricsがソート対象でdimensionsが取得項目、だと思う
- 結果セットはOpenStructクラスのインスタンス*1の配列
- metrics/dimensionsで指定した項目の値が取れる
サンプル
こちらに一連の手順のサンプルコードが置いてあります。READMEなくてわかりづらいかもしれませんが、試してみたい方はどうぞー。
トラックバック - http://d.hatena.ne.jp/deeeki/20110626/google_analytics_garb
リンク元
- 19 http://longurl.org
- 19 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCQQFjAA&url=http://d.hatena.ne.jp/deeeki/20110626/google_analytics_garb&ei=Jk8hT4qTM-qAmQXa9qSuDA&usg=AFQjCNERpv9PJQHp6TpAsbyRhUFbM586RQ
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=ruby google analytics&source=web&cd=3&ved=0CD0QFjAC&url=http://d.hatena.ne.jp/deeeki/20110626/google_analytics_garb&ei=88zETs7zGLHHmQX7mb20Cw&usg=AFQjCNERpv9PJQHp6TpAsbyRhUFbM586RQ&sig2=UiT4FBzXZxa5
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CC4QFjAB&url=http://d.hatena.ne.jp/deeeki/20110626/google_analytics_garb&ei=t1AhT4TRAqrNmAXe67SvDA&usg=AFQjCNERpv9PJQHp6TpAsbyRhUFbM586RQ
- 5 http://twitter.com/
- 4 http://blog.search.yahoo.co.jp/search?ei=UTF-8&p="Analyticsではじめるテストマーケティング"+title:"Google"+datef:--------+datet:--------&
- 4 http://htn.to/CLiqXh
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cts=1331194815460&ved=0CE0QFjAD&url=http://d.hatena.ne.jp/deeeki/20110626/google_analytics_garb&ei=t2tYT_PwC_C8iAfym529DQ&usg=AFQjCNERpv9PJQHp6TpAsbyRhUFbM586RQ&sig2=zyPkEdC4zIcF
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CEsQFjAE&url=http://d.hatena.ne.jp/deeeki/20110626/google_analytics_garb&ei=TrSHT-yzHoOjiAedid3MCQ&usg=AFQjCNERpv9PJQHp6TpAsbyRhUFbM586RQ&sig2=jrkHZ8yOezWOfHcQabuPfQ
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=garb require ruby&source=web&cd=1&ved=0CDIQFjAA&url=http://d.hatena.ne.jp/deeeki/20110626/google_analytics_garb&ei=fIpYT7XsJeLLmAW90ci7Dw&usg=AFQjCNERpv9PJQHp6TpAsbyRhUFbM586RQ





