LoginSignup
8
3

More than 5 years have passed since last update.

Google Analytics から PageView の多い順で パスを取得(Ruby)

Last updated at Posted at 2017-08-31

Google Analytics から PageView の多い順で パスを取得したくなりました。ruby です。

なんか、 garb という gem もあったりするのですが、google-api-client を使う方法でやります。クレデンシャルとかが最初よくわからなかったのですが、斜め向かいの席の方に教えてもらい無事できましたので、備忘録です。

最初にファイル構成と流れをご紹介します。そのあとに、クレデンシャルやちょっとハマったところを書きます。

ファイル構成

$ tree
.
├── Gemfile
├── Gemfile.lock
├── analytics_credential.json
└── ga.rb

こんな構成です。

ファイル内容と流れ

Gemfile
source "https://rubygems.org"

gem 'google-api-client'
bundle i

ga.rb が本体になります。ポイントはコメントで書いておきます。

ga.rb
require 'google/apis/analytics_v3'

CREDENTIAL_PATH = './analytics_credential.json' # これは事前に取得しておく必要があります
VIEW_ID = {VIEW_ID} # ここはそれぞれ

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']

client = Google::Apis::AnalyticsV3::AnalyticsService.new

client.authorization = Google::Auth::ServiceAccountCredentials.make_creds(
  json_key_io: File.open(CREDENTIAL_PATH),
  scope: SCOPES
)

data = client.get_ga_data(
  "ga:#{VIEW_ID}",
  (Date.today-10).strftime, # たとえば10日前からのデータ
  (Date.today).strftime,
  "ga:pageviews",
  {
    dimensions: "ga:pagePath",
    sort: "-ga:pageviews", # 降順はマイナスをつける
    max_results: 10 # 上位10件だけ取得
  }
)

data.rows.each do |row|
  p row
end

これで、以下のような結果を得ることができました。

$ ruby ga.rb
["/", "10430"]
["/franchises/2129", "9518"]
["/budget_1", "4288"]
["/event/44?site=app", "3403"]
["/dokuritsu_kaigyo/1932", "2347"]
["/?utm_group=G045&device=SP&creative=IF", "2122"]
["/ranking", "2044"]
["/franchises/2105", "2013"]
["/?utm_group=G009&device=PC&creative=text", "1999"]
["/lp/soc_lp?site=yahoo", "1765"]

クレデンシャルはどうやって取得するのか?

これが、けっこうややこしい気がします。

  • まず console で、プロジェクトをつくります。
  • そのあとに、AIP を有効化にすすんで、Analytics API を有効化します。
  • そうすると以下の画面にすすめます。「認証情報を作成」というリンクが右上にありますので、そこから作成します。

スクリーンショット 2017-08-31 13.47.45.png

  • 以下のように設定してみます。

スクリーンショット 2017-08-31 13.50.30.png

  • 下のサービスアカウント名は任意です。JSONにチェックをつければ json が手に入ります。(役割は...ちょっと適当です。

スクリーンショット_2017-08-31_13_51_12.png

Google Analytics に上記で作成した、「サービスアカウントID」を登録する

上で analytics@hoge-hoge.serviceaccount.com といった形のサービスアカウントIDがつくられました。これをGAの対象としたい View のユーザに追加してください。

これをしないと

User does not have any Google Analytics Account

となります。

以上です。ありがとうございました! 🍋

8
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3