50%で出し分けてABテストする #GTMレシピ
はじめに
Google Tag Manager(GTM)を仕事でよく使うので、コピペで使える実装例をここに置いておこうかなと思いました。
特にGTM、検索しても見つからなかったり、紹介されている実装方法がイマイチだったりした感覚があったので、ほんの少しでも世の中のためになればです。
# GTMレシピ
概要:全体の流れ
「ABコントロール」というランダムでAかBかを返す変数を作る
発火させたいタグのトリガー条件に「ABコントロール」を追加する
詳細:変数>カスタムJavaScriptis>「ABコントロール」
【基本】50%で出し分けたいとき
変数のカスタムJavaScriptisに以下を記述すればOK
function() {
return Math.random() < 0.5 ? 'A' : 'B';
}
【応用】割合を変更したいとき
例えば、70%のユーザーにバージョンAを、30%のユーザーにバージョンBを見せたい場合は、カスタムJavaScriptコードを以下のように変更します。
function() {
return Math.random() < 0.7 ? 'A' : 'B';
}
【応用】特定の属性を持つユーザーに異なるを表示したいとき
例えば、「日本のユーザーには50%の確率で 'A' または 'B' を」「その他のユーザーには50%の確率で 'C' または 'D' を」返すには以下。
function() {
// ブラウザの言語設定を取得
var language = navigator.language || navigator.userLanguage;
// 日本語の言語設定を持つユーザーかどうかを判定
var isJapanese = language.includes('ja');
if (isJapanese) {
// 日本のユーザーには 'A' または 'B' を返す
return Math.random() < 0.5 ? 'A' : 'B';
} else {
// その他のユーザーには 'C' または 'D' を返す
return Math.random() < 0.5 ? 'C' : 'D';
}
}
ブラウザの言語設定を使用して日本のユーザーかどうかを判定しているので、海外ユーザーが日本語の設定を知れば、日本ユーザーとして判定されてしまいます。その逆もまた然り。