GA4のイベントとパラメータの対応を確認したいことがまあまあの頻度であるので、それをSQLで抽出するクエリ。BigQueryにエクスポートされたテーブルを直接確認してもよいが、ある程度の期間でまとめてグルーピングすることで抜け漏れをなくせるのと、パラメータに紐づくイベントを確認したいときはテーブルを直接みても把握しにくいためBigQueryのコンソールにおける確認用クエリ。
パラメータに紐づくイベントを抽出するクエリ
CREATE TEMP FUNCTION param() RETURNS STRING AS ('entrances'); -- パラメータ
CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20240401'); -- 開始日
CREATE TEMP FUNCTION date_to() RETURNS STRING AS ('20240430'); -- 終了日
WITH
event_parm_1 AS(
SELECT
event_name
FROM
`<project>.<dataset>.events_*`
WHERE
_TABLE_SUFFIX BETWEEN date_from() AND date_to()
GROUP BY
event_name
),
event_parm_2 AS (
SELECT
event_name,
event_params.key AS event_params
FROM
`<project>.<dataset>.events_*`, UNNEST(event_params) AS event_params
WHERE
_TABLE_SUFFIX BETWEEN date_from() AND date_to()
AND
event_params.key = param()
GROUP BY
event_name,
event_params
)
SELECT
x.event_name,
y.event_params
FROM
event_parm_1 AS x
LEFT JOIN
event_parm_2 AS y
ON x.event_name = y.event_name
ORDER BY
x.event_name ASC
クエリ解説
検証したいパラメータを上部の一時的関数であるparam()の戻り値に設定する。ここでは’entrances’パラメータを設定している。開始日と終了日には1週間から1ヶ月間の間隔を設ければ十分だろう。また、期間を設定する理由としては抽出クエリ量の削減のために期間を絞る必要がある。
この結果から’entrances’パラメータは’page_view’イベントに紐づくということが分かった。もちろん、「サイト」における結果であるので「アプリ」の場合は異なる結果が得られるだろう。’entrances’パラメータが’page_view’イベントに紐づくのであれば、条件として’page_view’イベントを指定すればよいという判断が取れる。
イベントに紐づくパラメータを抽出するクエリ
CREATE TEMP FUNCTION event() RETURNS STRING AS ('first_visit'); -- イベント
CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20240301'); -- 開始日
CREATE TEMP FUNCTION date_to() RETURNS STRING AS ('20240430'); -- 終了日
SELECT
event_name,
event_params.key AS event_params
FROM
`<project>.<dataset>.events_*`, UNNEST(event_params) AS event_params
WHERE
event_name = event()
AND
_TABLE_SUFFIX BETWEEN date_from() AND date_to()
GROUP BY
event_name,
event_params
ORDER BY
event_name
クエリ解説
検証したいイベントを上部の一時的関数であるevent()の戻り値に設定する。結果は指定した期間でイベントで紐づいたパラメータを取得するため、そのイベントで必ず毎回、そのパラメータが取得できているとは限らないことは留意する必要がある。