GA4

【検証】batch_page_id パラメータとは

BigQueryにエクスポートされるGA4のパラメータに「batch_page_id」が23年の11月頃に追加され、どのようなパラメータなのか情報が少なかったため調査した内容をメモとして残す。

batch_page_idとは

GA4の公式ヘルプに記載がまだ見当たらなかったが、BigQueryにエクスポートされたデータを見た上で判断すると、全てのイベントにbatch_page_idパラメータが付与され、いずれかのpage_viewイベントに紐付いていることが特定できた。そのため、同じセッション内でもpage_viewイベントが付く度にbatch_page_idも可変する。なお、同一ページでもpage_viewイベントごとにbatch_page_idもユニークなIDが振り分けられる。

batch_page_idの活用用途

page_viewイベントの件数と、重複なしのbatch_page_idの件数は一致するため、各page_viewイベントごとの分析を行いたいケースに活用することができる。例えば、複数のイベントが同じpage_viewイベントに紐づいている条件指定が必要な場合。もう少し細かく言うと、① ページA → ➁ ページB → ③ ページAと遷移する行動フローでは、各ページにIDを振り分けなければページAの①と③を分けて分析することは難しくなるが、batch_page_idを活用することで、特定のpage_viewイベントに対して分析することが容易になることが考えられる。

batch_page_idの検証クエリ

CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20240301');
CREATE TEMP FUNCTION date_to() RETURNS STRING AS ('20240630');

WITH
  verify_batch_page_id AS (
    SELECT
      PARSE_DATE("%Y%m%d", event_date) AS ymd,
      FORMAT_TIMESTAMP("%Y-%m-%d %H:%M:%S", TIMESTAMP_MICROS(event_timestamp), "Asia/Tokyo") AS event_timestamp_jst,
      event_timestamp,
      CONCAT(user_pseudo_id, '-', CAST((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS STRING)) AS ssid,
      event_name,
      REGEXP_REPLACE((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location'), r"\?.*", "") AS page_location,
      (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'batch_page_id') AS batch_page_id  
    FROM
      `<project>.<dataset>.events_*`
    WHERE
        _TABLE_SUFFIX BETWEEN date_from() AND date_to()
      AND
        REGEXP_CONTAINS(event_name, r'first_visit|user_engagement|session_start|page_view|scroll|click')
    ORDER BY
      ssid ASC,
      event_timestamp ASC
  )

SELECT
  *
FROM
  verify_batch_page_id

関連記事

【GA4 SQL】新規ユーザーのユーザーセグメントを日次で適用

【GA4SQL】最新のページタイトル(page_title)を取得

【GA4 SQL】セッションセグメントを適用させる方法

PAGE TOP