GoogleAnalyticsAPIについての覚書
アクセス数とセッション数を管理画面から見れるようにしたいよ〜という依頼があったので。 GCPでAPIとサービス > 認証情報でサービスアカウントを作成 サービスアカウントで秘密鍵を作っておく(今回は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の画面で設定していきましょう。 アカウントユーザーの管理にサービスアカウントを追加してください。
サービスアカウントは前の手順で発行したメールアドレスのことです。(@-******.iam.gserviceaccount.com) ここで権限がないままjsonの認証情報を持ってAPIを叩くと参照権限がないよと怒られます。
長いREADMEを軽く読み飛ばして、Githubのsampleコードから試していったら非常に時間がかかってしまった。