JavaScriptの勉強がてら Google タグマネージャーを使い GA4 の計測実装を色々と試してみるシリーズです(不定期)。
URLに複数パラメータがあるWebサイトも多い
WebサイトでURL内に1つのパラメータだけでなく、複数のパラメータが存在するのをよく見かけます。Webサイトを閲覧するユーザーに対するコンテンツの制御などでパラメータを使うというケースが多いかと思いますが、パラメータが含まれる長いURLを見るとつい「何の制御かな?」って考えてしまいますね。
GA4 ではディメンションの「ページパスとスクリーンクラス」を利用することでURL内のパラメータがない状態のデータとして表示することができます。
ただ、特定のパラメータの値をイベント内のパラメータにセットしてデータ集計したいというケースもあるかもしれません。
そこで Google タグマネージャーのカスタムJavaScriptを使って、 URL内にある複数のパラメータの中から特定のパラメータ値を GA4 の各イベントへのパラメータ値として計測させてみます。
前回は指定のパラメータ値を取得しましたが、今回は優先順位が追加されています。
https://blog.muraweb.net/2026/02/measure-url-single-parameter-ga4-gtm.html
JavaScriptでURL内の複数パラメータから特定パラメータの値を取得する
Google タグマネージャー内で設定したJavaScriptは以下です。どのパラメータでも取得するのではなく複数のパラメータを優先順位順にチェックし、最初に見つかったパラメータ値を1つだけ返します。
function() {
var urlParams = new URLSearchParams(window.location.search);
var priorityList = ['testparams1', 'testparams2', 'testparams3'];
for (var i = 0; i < priorityList.length; i++) {
var value = urlParams.get(priorityList[i]);
if (value) {
return value;
}
}
return '(not set)';
}JavaScriptの内容
- WebサイトのURL内で"?"や"&"の後ろ文字列だけを取得
var urlParams = new URLSearchParams(window.location.search);
- 文字列を抽出したいパラメータを「優先順位順」のリストとして決定
var priorityList = ['testparams1', 'testparams2', 'testparams3'];
- リストの先頭から順番に、各パラメータ名の値を取り出す(リストの個数だけ繰り返す)
for (var i = 0; i < priorityList.length; i++) {
var value = urlParams.get(priorityList[i]);
- 値が存在すれば(空でなければ)その値を返し、その時点でループを終了する
if (value) {return value;}
- リスト内のどのパラメータもURLに存在しなければ"(not set)"を返す
return '(not set)';}
GTMで GA4 の計測実装する
- 変数にカスタムJavaScriptで設定






