ボタンクリックに関する集計方法をまとめていく。ボタンクリックに関しては予めボタンに対してイベントを既に割り当てているケースや、イベントととして集計していないケースもあるが、それぞれのケースについて随時解説を更新していく。また、集計対象としているのは「イベント」であるため必ずしも「ボタン」でなければならないということではない。
ボタンイベントが振り分けられているケースのクエリ
ボタンの数が少なく分析対象としているボタンの場合は事前にボタンごとにユニークなイベントを割り当てていることが望ましい。また、事前に設定をしていなければ個々のボタンの区別がつかないためという理由もある。
CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20240401');
WITH
pv_btn AS (
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,
COUNTIF(event_name = 'page_view') AS _pv,
COUNTIF(event_name = 'button_A' OR event_name = 'button_B') AS _btn
FROM
`<project>.<dataset>.events_*`
WHERE
_TABLE_SUFFIX BETWEEN date_from() AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY))
GROUP BY
ymd,
page_location
ORDER BY
ymd ASC,
_pv DESC
)
SELECT
*
FROM
pv_btn
クエリ解説
集計対象とするボタンイベント名をSELECT文の中のCOUNTIFで指定しているevent_nameで指定する。繰り返すが、このクエリの記述は既にボタンにイベントが割り当てられていることを前提としている。SELECT文の中でイベント数を集計しているためクエリの記述量を最小限にすることができている。ページロケーションの表示の必要性やボタンイベントの追加などは適時クエリを修正すること。
新規ユーザーのボタンクリックを集計するクエリ
サイトの初回訪問ユーザーのディメンションを追加したテーブルを作成するクエリを提示する。ここでいう「新規ユーザー」とはサイト初回訪問日のセッション全てを新規ユーザーとみなす。
GA4の分析において新規とリピーターを分けて分析したいケースがよくある。GA4の新規ユーザーの定義では初回訪問は新規ユーザーとしてカウントされるが、その日の2回目以降のセッションではリピーターとしてカウントされてしまう。