ぽんぽんぺいんでつらたんなので、おしごとおやすみしまーす

🗣: バイクに乗ったり、ものづくりしたり、ひたすら寝たり。

GoogleAnalyticsAPIについての覚書

アクセス数とセッション数を管理画面から見れるようにしたいよ〜という依頼があったので。 GCPAPIとサービス > 認証情報でサービスアカウントを作成 サービスアカウントで秘密鍵を作っておく(今回はjson形式) jsonはS3に設置する

APIを叩くtaskをこさえます

認証の抜粋

def authorize_with_view_ids
   # S3::ClientServiceをincludeしているプロジェクト独自のモジュール
   client = S3::ClientService.execute
   json_file = client.get_object(:bucket => [バケット名], :key => [S3にあるjsonのkey]).body

   @analytics = Google::Apis::AnalyticsreportingV4::AnalyticsReportingService.new
   credentials = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: json_file)
   credentials.scope = 'https://www.googleapis.com/auth/analytics.readonly'
   @analytics.authorization = credentials.fetch_access_token!({})['access_token']
end

APIを叩く部分の抜粋

  request_product = Google::Apis::AnalyticsreportingV4::GetReportsRequest.new({ report_requests: [
                                                                                {
                                                                                  metric: [{ expession: 'ga:1dayUsers' }],
                                                                                  dimensions: [{ name: 'ga:date' }],
                                                                                  date_ranges: [{ start_date: start_date, end_date: end_date }],
                                                                                  view_id: "ga:#{PRODUCT_VIEW_ID}"
                                                                                }
                                                                              ]})

metricsの定義はこちらで調べることができます。 data_rangesはyyyy-mm-dd HH:mm:ssで投げればOK。

PRODUCT_VIEW_IDはGoogleAnalyticsで割り当てられているビューIDのことです。GoogleAnalyticsの画面で設定していきましょう。 ビューIDの設定 アカウントユーザーの管理にサービスアカウントを追加してください。 サービスアカウントの設定

サービスアカウントは前の手順で発行したメールアドレスのことです。(@-******.iam.gserviceaccount.com) ここで権限がないままjsonの認証情報を持ってAPIを叩くと参照権限がないよと怒られます。

長いREADMEを軽く読み飛ばして、Githubのsampleコードから試していったら非常に時間がかかってしまった。