本記事は
GA4 Week
最終日の記事です。
📈
4日目
▶▶ 本記事
こんにちは、廣岡です。
GA4 Weekも最終日となりました。
今回はこのブログではまだ登場していない「Google Analytics Data API (GA4)」について書いていきたいと思います。
Google Analytics Data API (GA4) とは
Google Analytics Data API (GA4)は、GA4プロパティにアクセスし、該当のプロパティで計測されたデータを取得することを可能とするAPIです。 GA4の計測データを活用する独自の分析ツールを開発したり、見たいデータを集約したダッシュボードを作成したりと活用例は様々です。
現在(2022年11月時点)は、v1のベータ版(一部アルファ版)での利用となり、利用可能なメソッドは以下となります。
- runReport
- batchRunReports
- runPivotReport
- batchRunPivotReports
- getMetadata
- runRealtimeReport
- runFunnelReport (アルファ版)
今回はこの中の「runRealtimeReport」を用いてどのようなデータを取得することができるのか紹介します。
メソッド「runRealtimeReport」について
メソッド「runRealtimeReport」では、GA4プロパティで計測されたリアルタイムデータを取得することが可能です。
GA4プロパティ上のリアルタイム レポートでは、基本的に各カードに「過去30分間」の上位データが6件ずつ表示される仕様ですが、APIを利用することで以下のように、より柔軟なリアルタイムデータ分析を行うことができます。
- ユニバーサル アナリティクスのリアルタイム レポートと同様「過去5分間」のアクティブ ユーザー数を取得するなど、「過去30分間」よりも細かい単位でデータを確認する
- 取得したデータをグラフ化し、データの増減を確認する
- 6件以上の上位データを一画面に表示する
APIで取得できるデータの最大期間(分)はデータの取得元となるプロパティが 360 (有償版) か 標準版かで異なります。
- 360 (有償版) : 過去60分間のデータ
- 標準版 : 過去30分間のデータ
利用できる代表的なディメンションと指標
- ディメンション
ディメンション名 | GA4プロパティ (UI) 上のディメンション名 | 値の例 |
---|---|---|
deviceCategory | デバイス カテゴリ | Desktop, Tablet, Mobile |
platform | プラットフォーム | web, iOS, Android |
eventName | イベント名 | page_view, screen_view など |
unifiedScreenName | ページ タイトルとスクリーン名 | - |
残念ながら現在ページURLを取得するディメンションをAPIで利用することはできませんが、利用可能なディメンションは他にも多数あるので、詳細は下記リンクを参照ください。
Realtime Dimensions & Metrics | Google Analytics Data API | Google Developers
- 指標
指標名 | GA4プロパティ (UI) 上の指標名 |
---|---|
activeUsers | アクティブ ユーザー数 |
eventCount | イベント数 |
screenPageViews | 表示回数 |
Realtime Dimensions & Metrics | Google Analytics Data API | Google Developers
※ カスタム ディメンションとカスタム指標も利用できますが、現在利用できるのは「ユーザー スコープ」のみとなり、「イベント スコープ」のものはAPIで利用することはできません。
取得データ例
代表的なディメンションと指標をご紹介しましたが、これらを用いてどのようなリアルタイムデータを取得できるか、また、ディメンションと指標以外のフィールドについてJSON形式のリクエストボディ例をいくつかご紹介します。
- 過去5分間(1分~5分前)のデバイス カテゴリ別アクティブ ユーザー数
{ "dimensions": [ { "name": "deviceCategory" } ], "metrics": [ { "name": "activeUsers" } ], "minuteRanges": [ { "endMinutesAgo": 1, "startMinutesAgo": 5 } ] }
フィールド | 概要 |
---|---|
minuteRanges | 取得するデータの期間(分)を指定することができます。 ・ endMinutesAgo : 取得するデータの期間の開始分。指定しない場合は「0」がデフォルトで設定されます。 ・ startMinutesAgo : 取得するデータの期間の終了分。指定しない場合は「29」がデフォルトで設定されます。 |
- 過去30分間のPV数上位10ページのページタイトル、アクティブ ユーザー数、ページビュー数
{ "dimensions": [ { "name": "unifiedScreenName" } ], "metrics": [ { "name": "activeUsers" }, { "name": "screenPageViews" } ], "dimensionFilter": { "filter": { "fieldName": "platform", "stringFilter": { "value": "web" } } }, "minuteRanges": [ { "endMinutesAgo": 1, "startMinutesAgo": 30 } ], "limit": 10, "orderBys": [ { "metric": { "metricName": "screenPageViews" }, "desc": true } ] }
フィールド | 概要 |
---|---|
dimensionFilter | ディメンションとその値を用いて、返却されるデータにフィルタを設定します。 上記例では、ディメンション「プラットフォーム」が「web」のデータに絞り、ウェブサイトで計測されたデータのみを取得する設定をしています。 |
limit | 返却されるデータの行数を指定することができます。 指定しない場合、リクエスト毎に返却されるデータの最大行数は100,000行です。 |
orderBys | 返却されるデータの並び順を指定できます。 上記例では、PV数の降順でデータを並び替える設定をしています。 |
API Explorerを使ってデータを確認してみる
リクエストボディ例を紹介しましたが、実際にリクエストをしてどのようなデータが返却されるか確認してみましょう。
Googleが提供しているAPI Explorerを利用することで、コードの実装をせずともブラウザ上でGoogle Analytics Data API (GA4)のリクエストを実行し、返却されるデータを確認することができます。
手順
① データの取得元のプロパティに権限のあるGoogleアカウントでログインし、以下ページにアクセスします。
Method: properties.runRealtimeReport | Google Analytics Data API | Google Developers
② Request parameters と Request body を入力し、[EXECUTE] を押下します。
- [property]には、データを取得するGA4プロパティのプロパティIDを
properties/{プロパティID}
の形式で入力します。 - [Request body] には、前述のリクエストボディ例のJSONをペーストするか、[Add request body parameters]をクリックしてフィールドを追加し、JSONを作成します。
③ 以下のように「200」と表示されたら正常にレスポンスが返却されています。
レスポンス例
過去30分間のPV数上位2ページのページタイトル(①)、アクティブ ユーザー数(②)、ページビュー数(③)をリクエストした場合のレスポンス例です。
※ あくまで例なのでデータも仮の内容です。
「rows」配下に、リクエストしたディメンションと指標のデータが返却されています。
その他のフィールドについても補足します。
フィールド | 概要 |
---|---|
rowCount | クエリ結果の全行数を表します。リクエスト時に指定するフィールド「limit」の値とは異なります。 上記例では「limit」で「2」を指定した例のため、2ページ分のデータのみレスポンスとして返却されていますが、 過去30分間にページ上で何かしらの操作が行われたページは「60」あることを意味します。 |
kind | リソースの種別を意味します。メソッド「runRealtimeReport」を用いた場合は、固定値「analyticsData#runRealtimeReport」が返却されます。 |
さいごに
今回はGoogle Analytics Data API (GA4) を用いてどのようなリアルタイムデータが取得できるのかをご紹介しました。 現在はまだv1のベータ版ということもあり、今後より拡張されていくことが期待できるのではないでしょうか。 また別の記事でAPIを用いたツールの実装や他のメソッドについてもご紹介できればと思います。