Hatena::ブログ(Diary)

130単位

2011-06-26

Google Analyticsデータ取得gemライブラリ「Garb」

Google AnalyticsData Export APIラッパーライブラリです。

環境

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"
  • authorize_urlとget_access_tokenはrequest_tokenが同一インスタンスでないといけないっぽい
  • irbでやってもよかったかもしれない

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

サンプル

こちらに一連の手順のサンプルコードが置いてあります。READMEなくてわかりづらいかもしれませんが、試してみたい方はどうぞー。


4873113946
プログラミング言語 Ruby

4839935483
Google Analyticsではじめるテストマーケティング

*1:動的に値を追加変更できる構造体、バリューオブジェクト的なもの

komagatakomagata 2011/11/02 17:26 コードとても参考になりました。ありがとうございます!

deeekideeeki 2011/11/02 20:49 コメントありがとうございます。お役に立てたならうれしいです!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元