オルタナティブ・ブログ > 秋山大志のそれとりあえず作ってみようか。 >

あれこれ考えるよりも作ってしまった方が早いんじゃね?と思う、ギークなサラリーマンのアジャイルな日々。

GTMのA/BテストをURLパラメータで計測する方法と落とし穴|未経験から100日後にGTMのプロになる話【Day 64】

»

Day31で、GTM単体でMath.random()を使ってA/Bのグループ分けを独自に作るのは避けるべきだと説明しました。今日紹介する、URLパラメータからバリエーションを判定する方法は、その原則により忠実な例です。ただし、これにも固有の注意点があります。

URLパラメータで判定する方法

function() {
  var urlParams = new URLSearchParams(window.location.search);
  return urlParams.get('variant') || 'A';
}

このカスタムJavaScript変数をab_test_variantとして登録し、GA4イベントタグのパラメータとして{{ab_test_variant}}を渡せば、URLに?variant=Bのようなクエリが付いているアクセスをBパターンとして記録できます。これは「表示されている内容と紐づく実際の信号を読んでいる」という点で、Day31で説明した正しい設計思想に沿っています。

ただし「URLパラメータで判定できる」とは限らない

ここで注意してほしいのは、これはあくまで「バリエーションの出し分けがURLパラメータで行われている場合」にしか使えない方法だという点です。多くのA/Bテストツールは、同じURLのまま裏側で表示内容を切り替えたり、Cookieでバリエーションを記憶したりする方式を採用しています。その場合、このコードは常にURLパラメータが見つからず、フォールバックの'A'を返し続けます。つまり、一見動いているように見えて、実際には全訪問が黙って「A」として記録され続ける、という気づきにくい事故が起こり得ます。

導入する前に、必ず自分たちが使っているテストツールが、バリエーション情報をどこに(URLか、Cookieか、dataLayerか)出力しているかをドキュメントで確認してください。「とりあえずURLパラメータ版のコードを流用した」という進め方は避けるべきです。

GA4での確認方法

データが集まったら、GA4の「探索」→「自由形式」で、ディメンションにvariant(登録したカスタムディメンション)、指標に主要なコンバージョンイベントの数を置いて比較します。ここでもDay15のカスタムディメイン登録の手順と、Day63で触れたとおりアトリビューションの前提となる接点データの正確性が効いてきます。

今日のまとめ

URLパラメータでのバリエーション判定は、Day31の「実際の信号を読む」原則には沿っていますが、その信号が本当に存在するかどうかはテストツールの実装次第です。コードを流用する前に、自社のテストツールが何を出力しているかの確認を欠かさないでください。次回は、GTMでYouTube動画のトラッキングをする方法です(これはDay59ですでに扱っているので、そちらも参照してください)。

INDEX

Comment(0)