GA4

【GA4 SQL】ページごとのページビュー数をBigQueryから集計

日次のページごとのページビュー数をBigQueryから集計するクエリについて解説する。ページビュー数はそれ自体を単体でモニタリングすることもあるが、ページへとドリルダウンしページビュー数の推移を追うことで個々のページの閲覧数の推移に大きな変動が起きていないかをチェックできるため、改善アクションにつなげるための示唆が得やすくなる。GA4の探索ではページビュー数は「表示回数」と表示されているが同じ意味である。

ページごとのページビュー数を日別で取得するクエリ

WITH
  Pagelocation_PV AS (
    SELECT
      ymd,
      page_location,
      COUNT(*) AS _pv
    FROM (
      SELECT
        PARSE_DATE("%Y%m%d", event_date) AS ymd,
        REGEXP_REPLACE((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location'), r"\?.*", "") AS page_location
      FROM
        `<project>.<dataset>.events_*`
      WHERE
          _TABLE_SUFFIX BETWEEN '20240401' AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
        AND
          event_name = 'page_view'
    )
    GROUP BY
      ymd,
      page_location
    ORDER BY
      ymd ASC,
      _pv DESC
)

SELECT
  *
FROM
  Pagelocation_PV

ChatGPTによるクエリ解説

ステップ1: データの選択
FROM句で、Google Analytics 4のイベントデータが保存されているBigQueryのテーブルを指定します。この例では`<project>.<dataset>.events_*`というテーブルからデータを取得しています。テーブル名の末尾の*は、特定の期間にまたがる複数のテーブルからデータを取得するためのワイルドカードです。

ステップ2: データのフィルタリング
WHERE句で、データの期間を指定しています。また、イベント名が’page_view’であるレコードのみを対象にしています。これはウェブページが表示されたときに記録されるイベントです。

ステップ3: データの加工
SELECT句内のPARSE_DATE関数でevent_date(イベントが発生した日付の文字列)を日付型に変換しています。ページのURL(page_location)からクエリパラメータ(URLの?以降の部分)を取り除いています。これにより、ページのアドレスをクリーンな形で取得し、正確なページビュー数を計算できるようにしています。

ステップ4: データの集計
GROUP BY句で、日付(ymd)と加工後のページロケーション(page_location)ごとにデータをグループ化しています。
COUNT(*)関数で、各グループのレコード数を数えています。これはそのページが特定の日に何回表示されたかを示します。

ステップ5: 結果の整理
ORDER BY句で、結果を日付順に並べ替えています。さらにページビュー数で降順に並べ替え、最もアクセスの多いページから表示しています。

関連記事

【GA4 SQL】アクティブユーザー数の定義と総ユーザー数との違い

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

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

PAGE TOP