GA4のデフォルトの集計において最も詳細な参照元情報となるのが「参照元URL」となり、探索のディメンション名では「ページの参照元 URL」と表示されている。一般的にどこから流入してきたのか?という質問はよくあるが、どのsource/mediumから流入してきたのか?と聞かれることは少ない。そのため、伝達手段としても「参照元URL」はクライアントサイドにとっても理解しやすい。一般的には「参照元」よりも「流入元」と表現されることが多いが、ここでは同一の意味として扱い、以下解説では「参照元」と統一する。
そもそも「参照元URL」とは?
GA4のレポーティングにおいてはクライアントの言うなりのままレポートを作成しても、言わんとする定義の認識が間違っていることも大いにあるため、レポートの作成に入る前に要件の定義を固めることが重要になる。例えばクライアントがいう「参照元URL」の場合「前のページ」を指していることもあるが、アナリティクスの定義としては通常「参照元URL」と言った場合、ランディングページの直前に閲覧していた自ドメイン以外のサイトのURLを指す。そのため、参照元URLと言った場合は、ランディングページ以外のページで参照元URLを抽出することはできない。このような認識のズレが起きていないかをまず確認する必要がある。
【探索】特定ページの参照元URL
探索の設定項目
・日付
・ページの参照元 URL
・イベント名
・ページ ロケーション
指標
・セッション
フィルタ
・ページの参照元 URL 次の正規表現に一致 http[s]?:\/\/[^\s”]+
・イベント名 次と一致 session_start
・ページの参照元 URL 含まない 自身の参照元URL
ページの参照元は全てが取得できるわけではないため、探索レポートに空白が多く表示される。これらを除外するために、http[s]?:\/\/[^\s”]+ を設定する。
イベント名にはsession_startを設定することで、ランディングページの前のページの取得が可能なるため必須の設定となる。
ページの参照元 URLはサイト内外の両方の参照元を取得するため、自身のサイトURLを設定して除外する。
【探索】CVを達成した特定ページの参照元URL
CVを達成したセッションに限定して参照元URLを確認することで、CVを達成したセッションに限定した中での参照元URLを抽出することが可能になる。つまり、CVにつながりやすい参照元URLとページのセットを特定することができる。
セグメントの追加
セッションのセグメントを新規作成し、コンバージョンイベントを選択する。作成したセグメントを設定する。
【SQL】特定ページの参照元URL
探索はあくまでアドホック的に抽出するための道具であるため、レポーティング用途として作成するのであればBigQueryを活用する必要がある。また抽出したデータを分かりやすく可視化するためにはLooker Studioを用いる。また、Looker Studioを使うのであれば、制限のあるAPI接続を選択する必要はないため、BigQueryを使うことをデフォルトとした方がよい。以下SQLでの実装を解説する。
CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20240301');
CREATE TEMP FUNCTION exclude_url() RETURNS STRING AS ('sem-report.com');
WITH
Referrer_URL AS (
SELECT
ymd,
page_location,
page_referrer,
COUNT(DISTINCT user_pseudo_id) AS _uu,
COUNT(DISTINCT ssid) AS _ssuu
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,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_referrer') AS page_referrer,
user_pseudo_id,
CONCAT(user_pseudo_id, '-', CAST((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS STRING)) AS ssid,
FROM
`<project>.<dataset>.events_*`
WHERE
_TABLE_SUFFIX BETWEEN date_from() AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
AND
event_name = 'session_start'
)
WHERE
NOT REGEXP_CONTAINS(page_referrer, exclude_url())
AND
page_referrer IS NOT NULL
GROUP BY
ymd,
page_location,
page_referrer
)
SELECT
*
FROM
Referrer_URL
【SQL】CVを達成した特定ページの参照元URL
CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20230301');
CREATE TEMP FUNCTION exclude_url() RETURNS STRING AS ('sem-report.com');
CREATE TEMP FUNCTION key_event_A() RETURNS STRING AS ('CV_A');
CREATE TEMP FUNCTION key_event_B() RETURNS STRING AS ('CV_B');
WITH
SEG_ssid AS (
SELECT
CONCAT(user_pseudo_id, '-', CAST(ga_session_id AS STRING)) AS ssid
FROM (
SELECT
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id
FROM
`<project>.<dataset>.events_*`
WHERE
_TABLE_SUFFIX BETWEEN date_from() AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
AND (
event_name = key_event_A()
OR
event_name = key_event_B()
)
)
GROUP BY
ssid
),
SEG_Referrer_URL AS (
SELECT
ymd,
page_location,
page_referrer,
COUNT(DISTINCT user_pseudo_id) AS _uu,
COUNT(DISTINCT ssid) AS _ssuu,
FROM (
SELECT
*
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,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_referrer') AS page_referrer,
user_pseudo_id,
CONCAT(user_pseudo_id, '-', CAST((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS STRING)) AS ssid,
FROM
`<project>.<dataset>.events_*`
WHERE
_TABLE_SUFFIX BETWEEN date_from() AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
AND
event_name = 'session_start'
) AS event_data
WHERE
event_data.ssid IN (SELECT ssid FROM SEG_ssid)
)
WHERE
NOT REGEXP_CONTAINS(page_referrer, exclude_url())
AND
page_referrer IS NOT NULL
GROUP BY
ymd,
page_location,
page_referrer
)
SELECT
*
FROM
SEG_Referrer_URL
Looker Studioで参照元URLとページセットを可視化
BigQueryから可視化に必要なデータマートを作成しLooker Studioで可視化することで、CVに貢献した参照元URLとランディングページのセットが分かりやすくビジュアライズすることが可能になる。完成形のコードとLooker Studioのテンプレートは『Visual SEM Report』で公開している。
参照元URLを活用した分析手法
ランディングページと参照元URLの組み合わせは散布図でビジュアライズすると直感的に傾向を掴むことができる。プロットしているのはランディングページと参照元URLを組み合わせの文字列を置いている。分析のアクションとしては広告流入だけを見ていては気付けない、LPと参照元URLの組み合わせを見付けることから始める。主に検索からの流入でCVRの高いLPと参照元URLの組み合わせがあれば、リライトを行ったり、その記事の関連記事を新規作成したり、記事広告の参考にしたりと、使い道は色々考えられるだろう。