例えばページA → ページB → CVページ到達のページ遷移の条件を満たした際にGA4イベントタグを発火させたいといった要望に応えるトリガー作成方法を提示する。このようなニーズは様々なコンテキストにおいて発生しうるため活用用途の幅は大きい。ページ経由の条件はページA → CVページと少なくしても、逆にさらに遷移数を増やすこともコードの該当箇所を書き換えることで対応可能。
ページ遷移トリガーの実装概要
ブラウザにデータをセッションの間、保存できるsessionStorageに前のページとその前のページのURLを保持しておき、タグを発火させたいページにて、その2つの値を取り出すことで指定したページ遷移の条件指定を作成することが可能になる。
特徴 | sessionStorage | localStorage |
---|---|---|
データの有効期間 | セッション中のみ | 永続的(手動で削除するまで) |
データの共有 | 同じタブ/ウィンドウ内でのみ | 同一ドメインのすべてのタブ |
容量 | 約5MB(ブラウザ依存) | 約5MB(ブラウザ依存) |
GTM実装手順
sessionStorageにURL履歴を保存
名称:URL_History タイプ:カスタムHTML トリガー:All Pages
<script>
(function() {
// 現在のページを取得
var currentPage = document.referrer;
// 既存の履歴を取得
var history = JSON.parse(sessionStorage.getItem('pageHistory')) || [];
// 現在のページを履歴に追加
if (currentPage) {
history.unshift(currentPage);
}
// 履歴を2件に制限(前のページと前の前のページ)
history = history.slice(0, 2);
// 更新した履歴を保存
sessionStorage.setItem('pageHistory', JSON.stringify(history));
})();
</script>
URL履歴取得用カスタムJavaScript
名称:Previous_01_URL タイプ:カスタム JavaScript
function() {
var history = JSON.parse(sessionStorage.getItem('pageHistory')) || [];
return history[0] || null;
}
名称:Previous_02_URL タイプ:カスタム JavaScript
function() {
var history = JSON.parse(sessionStorage.getItem('pageHistory')) || [];
return history[1] || null;
}
トリガー作成
Previous_01_URL 含む 前のページのURLを指定
Previous_02_URL 含む 前の前のページのURLを指定
Page Path 等しい CV到達ページ
GA4のイベントタグに対してこのトリガー設定することで、指定したページ遷移を辿りCVページに到達するとイベントが発火する。トリガーのタイプは初めに作成した「URL_History」よりも後に発火させる必要があるため[ウィンドウの読み込み]を指定している。
GA4イベント作成
上で作成したトリガーを条件としてGA4イベントを発火させる。
デバック用のコード
名称:URL_Debug タイプ:カスタムHTML トリガー:All Pages
<script>
(function() {
var history = JSON.parse(sessionStorage.getItem('pageHistory')) || [];
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'debugPageHistory',
'前のページ': history[0] || 'なし',
'前の前のページ': history[1] || 'なし'
});
})();
</script>
