JavaScriptの勉強がてら Google タグマネージャーを使い GA4 の計測実装を色々と試してみるシリーズです(不定期)。
URLにパラメータがあるWebサイトって多い
Webサイトを閲覧していると各ページのURLをクセで見てしまうのですが、URL内にパラメータが存在することがまだまだ多いよなぁ、と感じています。
GA4 ではディメンションの「ページパスとスクリーンクラス」を利用することでURL内のパラメータがない状態のデータとして表示することができますが、パラメータの値を分析で利用したいケースもありますよね。
そんなときディメンションの「ページパス + クエリ文字列」からデータを成形するのは可能ですがやや面倒です。
そこで Google タグマネージャーのカスタムJavaScriptを使って、 URLの特定パラメータを GA4 の各イベントへのパラメータと値として計測させてみます。
JavaScriptでURL内の特定パラメータの値を取得する
Google タグマネージャー内で設定したJavaScriptは以下です。どのパラメータでも取得するのではなく"test_setparam"パラメータの値だけを取得するようにします。
function() {
var paramNameToFind = 'test_setparam'; // 取得したいパラメータ名
var urlParams = new URLSearchParams(window.location.search);
if (urlParams.has(paramNameToFind)) {
return urlParams.get(paramNameToFind);
}
return '(not set)';
}JavaScriptの内容
- 文字列を抽出したいパラメータの決定
var paramNameToFind = 'test_setparam';
- WebサイトのURL内で"?"や"&"の後ろ文字列だけを取得
var urlParams = new URLSearchParams(window.location.search);
- URL内に"paramNameToFind"で指定した文字列があれば、"?"や"&"の後ろ文字列を返す
if (urlParams.has(paramNameToFind)) {return urlParams.get(paramNameToFind);}
- 特定の文字列がURL内に存在しなければ"(not set)"を返す
return '(not set)';}
GTMで GA4 の計測実装する
- 変数にカスタムJavaScriptで設定
GA4 での計測実装内容を検証
Chromeのデベロッパーツールでパケットキャプチャにて検証
Google タグマネージャーのプレビューモードで確認
GA4 のDebugViewで確認
ひとりごと
- GA4 イベント内パラメータの値として計測されるので、値のユニーク種類数が多い場合は高基数ディメンションに注意な
- カスタムディメンションとして設定すれば分析しやすくなるケースはありそう






