個人所有のアカウントはGA4で計測するようになったので今まで使っていたGAの数値を取得するスクリプトも徐々に対応させていく必要があるので調べてみた
まだbetaのようなので内容など変わる可能性があるが現時点でやったことを残しておく
Analytics Data Service | Apps Script | Google Developers
ドキュメントは上記
とりあえずGASのコードを乗せる
- 直近3日分の日毎PV数を取得する
function getReport() { const propertyId = '対象のプロパティID'; const metric = {name: 'eventCount'}; const dimension = {name: 'date'} const dateRange = { startDate: '3daysAgo', endDate: 'today' } const dimensionFilter = { filter: { fieldName: 'eventName', stringFilter: { value: 'page_view' } } } const request = { dimensions: [dimension], metrics: [metric], dateRanges: dateRange, dimensionFilter: dimensionFilter } return AnalyticsData.Properties.runReport(request, `properties/${propertyId}`); }
propertyId
はAnalyticsのURLのp~~~~~~~~
からpを抜いた数字
実行したら初回は確認画面に飛ばされるので許可する
サンプルでは各種クラスをnewして必要なプロパティをセットしてという手順で書いてたがちょっと気持ち悪かったので書き直した
サンプルコードとしての意味付けの役割しか持っていないのか特に直接連想配列を定義して実行しても問題なく実行できた
- レスポンス
{ kind: 'analyticsData#runReport', rows: [ { dimensionValues: [Object], metricValues: [Object] }, { metricValues: [Object], dimensionValues: [Object] }, { metricValues: [Object], dimensionValues: [Object] } ], rowCount: 3, dimensionHeaders: [ { name: 'date' } ], metricHeaders: [ { type: 'TYPE_INTEGER', name: 'eventCount' } ], metadata: { currencyCode: 'USD', timeZone: 'Asia/Tokyo' } }
- reportの各行の中身(抜粋)
{ dimensionValues: [ { value: '20210924' } ], metricValues: [ { value: '95' } ] }
AnalyticsDataサービスの使用方法
Google Analytics Data API | Google Developers
上記にエンドポイントの一覧があるので使用するエンドポイントをたどって読んでいけばOK
今回はRunReport
を使用するので下記からまた色々と探索していって必要なパラメータを記述していく
Method: properties.runReport | Google Analytics Data API
個人的に良いなと思ったのは日付指定がtoday
やNdaysAgo
といった感じで相対的な指定を行えること
だいたいこの手のスクリプトは現在日時を取得して適当に計算して整形して…という手順を踏んでたがそれがなくても良いのでめちゃくちゃ楽
もしかしたらGA4以前からあったかもしれないが今回始めて気付いた
載せたコードでレポートデータを取得してあとはよしなにSlackに通知するなりSpreadsheetに記録するなり…
まとめ
- GoogleAnalytics4のレポートデータをGoogleAppsScriptから取得できるようになった
- BigQueryからでもデータを取得できるので問題ないといえば問題ないのだがGASでサクッと何かする場合とかは楽できるので良い
- ちなみにBigQueryは前日分のデータをExportだが、GA4のサービスでは当日データが入っているので当日データが欲しい場合はAnalyticsDataを使うと良い
- 日付範囲を相対的に指定できるのは体験が良い