RubyでGoogle Analytics API をいじる

手順

  1. クライアントIDの作成
  2. 認証情報のDL&配置
  3. google-api-ruby-clientのインストール
  4. コード作成
  5. 実行

詳細

クライアントIDの作成

Google Developers Console から 新しいプロジェクトを作成。APIs&authのAPIsからAnalytics API をONにする。Credentialsから新しいクライアントIDを作成。

 認証情報のDL&配置

ここからDownload JSON で認証情報をDLする。DLしたファイルは実行ファイルと同じディレクトリに保存する。

google-api-ruby-clientのインストール

$ bundle init
$ vim Gemfile # gem 'google-api-client' を追加する
$ bundle install --path --path vendor/bundler

コード作成

こちらのコードをお借りしました。

# coding: utf-8

require 'pp'
require 'json'

require 'google/api_client'
require 'google/api_client/client_secrets'
require 'google/api_client/auth/installed_app'

# Initialize the client.
client = Google::APIClient.new(
  :application_name => 'deveropment test',
  :application_version => '0.0.1'
)

analytics = client.discovered_api('analytics', 'v3')

# ここでDLしたJSONを読み込んでいるので同じディレクトリにclient_secrets.jsonを置いておくこと
client_secrets = Google::APIClient::ClientSecrets.load

# Run installed application flow. Check the samples for a more
# complete example that saves the credentials between runs.
flow = Google::APIClient::InstalledAppFlow.new(
  :client_id => client_secrets.client_id,
  :client_secret => client_secrets.client_secret,
  :scope => ['https://www.googleapis.com/auth/analytics.readonly']
)
client.authorization = flow.authorize

# 各ページのPV数
result = client.execute(
  :api_method => analytics.data.ga.get,
  :parameters => {
    'ids' => 'ga:xxxxxx', # 自分のビューID
    'start-date' => 'YYYY-MM-DD',
    'end-date' => 'YYYY-MM-DD',
    'metrics' => 'ga:visitors,ga:visits,ga:pageviews',
    'dimensions' => 'ga:pagePath,ga:pageTitle',
    'sort' => '-ga:pageviews'
  }
)

# result.response.body
body = JSON.parse(result.response.body)
body['rows'].each do |row|
  pp row 
end

実行

$ bundle exec ruby Analytics.rb

実行すると認証画面が立ち上がるので許可をする。アナリティクスの情報が取れます。

ちょっと困ったこと

プロファイルIDは、ビューIDに変わっていた!! Google AnalyticsのプロファイルIDはビュー IDに変わっています。

参考URL

http://shoprev.hatenablog.com/entry/2013/07/21/193334
http://qiita.com/kazuph/items/2cf81a84985e894e9682
http://blog.naberon.jp/post/2013/08/25/google-analytics-api/
http://arayu.jp/google-profile-id.html