NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

注目のタグ

    Google Analytics Data API (GA4)でリアルタイムデータを取得する

    本記事は  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を用いたツールの実装や他のメソッドについてもご紹介できればと思います。

    執筆者廣岡 千菜美(Chinami Hirooka)

    Google アナリティクスを中心としたGoogle マーケティング プラットフォーム(GMP)の導入、活用におけるテクニカルサポートを行っています。