プロファイルスクリプトを使用して相互に排他的なアクティビティをテストする

Adobe Target でプロファイル属性を使用して、2 つ以上のアクティビティを比較するが、同じ訪問者を各アクティビティに参加させないテストを設定できます。

相互に排他的なアクティビティのテストを実行すると、1 つのアクティビティの訪問者が他のアクティビティのテスト結果に影響するのを防ぐことができます。訪問者を複数のアクティビティに参加させると、1 つのアクティビティの訪問者のエクスペリエンスから積極的上昇率と消極的上昇率のどちらがもたらされたのか、または複数のアクティビティ間の相互作用がアクティビティの結果に影響しているのかどうかを見極めることが難しくなります。

例えば、e コマースシステムの 2 つの領域をテストするとします。「買い物かごに追加」ボタンを青ではなく赤くすることでテストできる場合があります。 また、手順の数を 5 つから 2 つに減らす新しいチェックアウトプロセスをテストすることもできます。両方のアクティビティの成功イベント(完了した購入)が同じ場合、赤いボタンがコンバージョンを向上させるか、またはチェックアウトプロセスが改善されたためにそれらの同じコンバージョンも増加したかを判断するのは難しい場合があります。 相互に排他的なアクティビティにテストを分けることで、個々の変更を個別にテストすることができます。

以下のいずれかのプロファイルスクリプトを使用する際は、次の点にご注意ください。

  • プロファイルスクリプトは、アクティビティの開始前に実行する必要があります。また、アクティビティの実行中は変更しないでください。
  • この手法により、アクティビティの実行時間の延長が必要になる可能性がある、アクティビティ内のトラフィック量が削減されます。 アクティビティの期間を推定する際は、この点を考慮に入れてください。

2 つのアクティビティの設定

異なるアクティビティを閲覧するそれぞれのグループに訪問者を分けるには、プロファイル属性を作成する必要があります。プロファイル属性によって、訪問者を複数のグループのいずれかに分類することができます。「twogroups」というプロファイル属性を設定するには、次のスクリプトを作成します。

if (!user.get('twogroups')) {
    var ran_number = Math.floor(Math.random() * 100);
    if (ran_number <= 49) {
        return 'GroupA';
    } else {
        return 'GroupB';
    }
}
  • if (!user.get('twogroups')) は、現在の訪問者に対して twogroups プロファイル属性を設定するかどうかを指定します。設定されている場合は、それ以上のアクションは必要ありません。

  • var ran_number=Math.floor(Math.random() *100) は、ran_number という新しい変数を宣言し、その値を 0 ~ 1 の間のランダムな 10 進数に設定してから、100 を乗算し、切り捨てて 100 (0 ~ 100)の範囲を作成します。これは、アクティビティを見る訪問者の割合を指定する場合に便利です。

  • if (ran_number <= 49) は、訪問者が属するグループを決定するルーチンを開始します。0 から 49 の範囲の数値が返された場合、訪問者は GroupA に割り当てられます。この数が 50~100 の場合、訪問者は GroupB に割り当てられます。 グループは、訪問者がどのアクティビティを閲覧するかを決定します。

プロファイル属性を作成したら、ユーザープロファイルのパラメーター user.twogroups が GroupA に指定された値と一致することを要求して、目的の母集団をターゲットにする最初のアクティビティを設定します。

NOTE
ページの最初のmboxを選択します。このコードは、訪問者がアクティビティを体験するかどうかを判断します。 ブラウザーで最初に検出される mbox である限り、その mbox を使用して値を設定できます。

ユーザープロファイルパラメーター user.twogroups が GroupB に指定した値と一致するように 2 番目のキャンペーンを設定します。

3 つ以上のアクティビティの設定

相互に排他的なアクティビティを 3 つ以上設定する方法は、2 つのアクティビティの場合と同様ですが、アクティビティごとにグループが作成されるようにプロファイル属性 JavaScript を変更して、各アクティビティを閲覧する訪問者を決める必要があります。乱数の生成は、作成するグループの数が奇数か偶数かによって異なります。

例えば、4 つのグループを作成する場合は、次の JavaScript を使用します。

if (!user.get('fourgroups')) {
    var ran_number = Math.floor​(Math.random() * 100);
    if (ran_number <= 24) {
        return 'GroupA';
    } else if (ran_number <= 49) {
        return 'GroupB';
    } else if (ran_number <= 74) {
        return 'GroupC';
    } else {
        return 'GroupD';
    }
}

この例では、訪問者をグループに割り当てる乱数の生成に使用する計算は、2 つのグループを作成する場合の計算と同じです。小数の乱数は、生成された後、丸められて整数となります。

奇数のグループまたは 100 を均等に分割できない数のグループを作成する場合は、小数点以下を丸めて整数にはしないでください。小数点以下を丸めなければ、整数以外の範囲も指定することができます。これを行うには、

var ran_number=Math.floor(Math.random()*100);

の行を次のように変更します。

var ran_number=Math.random()*100;

例えば、訪問者を 3 つのグループに均等に配分するには、次のコードを使用します。

if (!user.get('threegroups')) {
    var ran_number = Math.random() * 100;
    if (ran_number <= 32.33) {
        return 'GroupA';
    } else if (ran_number <= 65.66) {
        return 'GroupB';
    } else {
        return 'GroupC';
    }
}
recommendation-more-help
3d9ad939-5908-4b30-aac1-a4ad253cd654