【BigQuery × GA4】PV数の集計方法
Photo by Andrew Neel on Unsplash
本記事について
Google アナリティクス は、 BigQuery と連携することで集計前の生データを BigQuery 上で利用することができる。
本記事では、BigQuery を用いて Google アナリティクス 4 の PV (page_view)数を集計する方法を紹介する。
前回はこちら
Google アナリティクス 4 における「表示回数」を集計する
ページビューとはブラウザにページが読み込まれる(再読み込される)ことです。ページビュー数は、閲覧されたページの合計数として定義される指標です。
Google アナリティクス 4 の「表示回数」に相当するイベントには、page_view(ウェブ)と screen_view(アプリ)の2種類がある。 これらのイベントは、GA4 で自動的に収集されるイベントデータの一つであり、収集されたイベントの種類はテーブルの event_name カラムで確認することができる。
実装例
ウェブの場合、event_name カラムの値が page_view であるレコードの数をカウントすれば良い。
例1. 日付ごとにページビューを集計する
テーブル名はワイルドカードで一括指定することが可能。
SELECT
DATE(TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') AS dates,
COUNT(1) AS pageviews
FROM `プロジェクトID名.データセット名.events_*`
WHERE event_name = 'page_view'
GROUP BY 1
ORDER BY 1 DESC
例 2. 最近一週間の範囲で日付ごとにページビューを集計する
ワイルドカードで複数したテーブルから、さらに条件でテーブルを絞り込むときは_TABLE_SUFFIX
を用いる。
SELECT
DATE(TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') AS dates,
COUNT(1) AS pageviews
FROM `プロジェクトID名.データセット名.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 7 DAY))
AND
FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 DAY))
AND
event_name = 'page_view'
GROUP BY 1
ORDER BY 1 DESC
例 3. ページごとにページビューを集計する
event_params は 1 レコードにつき複数の値を持つので、UNNEST
演算子を用いて各要素を1行づつのデータに変換する必要がある。
SELECT
(SELECT value.string_value FROM unnest(event_params) WHERE key='page_title') AS page_titles,
COUNT(1) AS pageviews
FROM `プロジェクトID名.データセット名.events_*`
WHERE event_name = 'page_view'
GROUP BY 1
ORDER BY 2 DESC