activateExperiment()メソッドは、指定したユーザーに対してフルスタックA/Bテストを有効にするために使用します。オーディエンスのターゲティングルールに基づいて、そのユーザーがテストの対象となるかを評価し、対象となる場合は対応するバリエーションを割り当てます。
メソッドの呼び出し
メソッドのパラメーター
|
パラメーター |
型 |
説明 |
|
experimentName |
文字列 |
有効にするテスト名です。 |
|
userId |
文字列 |
ユーザーを一意に識別するIDです。 |
|
userAttributes |
配列 |
(任意)オーディエンスのターゲティングとセグメント化に使用するユーザー属性の連想配列です。 |
戻り値
ユーザーがフルスタックA/Bテストの対象となる場合、割り当てられたバリエーション名を返します。
ユーザーがテストの対象とならない場合は、nullを返します。これは、ユーザーがテストのオーディエンスターゲティングルールに一致しない場合、またはテストに割り当てられたトラフィックの範囲外である場合に発生します。
使用例
APIでactivateExperiment() メソッドが呼び出されると、一連の手順に従って、ユーザーにバリエーションを割り当てるかどうかが判定されます。
APIはまず、ユーザーがPageSenseで定義されたテストのオーディエンスのターゲティングルールを満たしているか確認します。これらのルールでは、ブラウザー、デバイスの種類、OS、またはユーザー属性で渡された個別指定のプロパティなどを使用できます。
ユーザーの属性がオーディエンスのターゲティング条件に一致する場合、評価が続行されます。
ユーザーの属性が条件に一致しない場合、APIは直ちにnullを返し、ユーザーがテストの対象ではないことを示します。
ユーザーストレージサービスは、特定のテストでユーザーに割り当てられたバリエーションを、データベース、Redisキャッシュ、ファイルシステムなど、ユーザーが指定したストレージ層に保存します。これにより、異なるセッションやブラウザーでも、特定のA/Bテストでは同じバリエーションが常にユーザーに割り当てられます。
テストで指定されたユーザーIDに対して保存済みのバリエーションがすでに存在する場合は、ストレージから取得して返します。
存在しない場合、SDKはハッシュアルゴリズムを使用して新規バリエーションを割り当てます。
ユーザーIDとテストキーを組み合わせて一意のキーを生成し、APIはMurmurHashアルゴリズムをこの一意のキーに適用して、0~9,999の決定論的な数値を生成します。
このハッシュ値によって、テストのトラフィックの割り当て範囲内でのユーザーの位置が決まり、バリエーションが割り当てられます。
MurmurHashでは、特定のユーザーIDとテストキーの組み合わせに対して、常に同じハッシュ値が生成されます。
これにより、異なるセッションやブラウザーでも、一貫して同じバリエーションがユーザーに割り当てられます。
テスト内の各バリエーションには、割り当てられたトラフィックの割合(%)に基づいて値の範囲が設定されます。たとえば、トラフィックの割り当てが80%で、4つのバリエーションにそれぞれ25%ずつトラフィックを配分するA/Bテストでは、各バリエーションの値の範囲は次のように設定されます。
|
バリエーション |
値の範囲 |
|
オリジナル |
0 – 2,000 |
|
バリエーション1 |
2,001 – 4,000 |
|
バリエーション2 |
4,001 – 6,000 |
|
バリエーション3 |
6,001 – 8,000 |
これらの範囲は重複せず、全体としてテストのトラフィックの割り当てをすべて網羅します。
ユーザーのハッシュ値が特定のバリエーションの範囲内にある場合、そのバリエーションがユーザーに割り当てられます。
ユーザーのハッシュ値が、バリエーションに割り当てられたすべての範囲外にある場合、ユーザーにはバリエーションが割り当てられず、テストの対象にもなりません。また、バリエーションとしてNULLが返されます。
バリエーションが割り当てられると、次の処理が行われます。
APIは、PageSenseへのユーザーの訪問に関する追跡イベントを発生させ、テスト名、ユーザーID、バリエーション名、および指定されている場合はユーザー属性の詳細を記録します。
|
結果 |
戻り値 |
|
ユーザーが対象となり、バリエーションが割り当てられた場合 |
バリエーション名を返します |
|
ユーザーがオーディエンスのターゲット設定ルールに一致しない場合 |
NULLを返します |
|
ユーザーがトラフィックの割り当て範囲外にある場合 |
NULLを返します |
メソッドの呼び出し
仕組み
必須なのは、テスト名とユーザーIDのみです。
オーディエンスターゲティングは引き続き評価されます。ただし、次の点に注意してください。
テストの対象が[すべての訪問者]の場合、ユーザーはテストの対象となります。
テストに特定のオーディエンスターゲティング条件が含まれている場合、ユーザーはユーザー属性が提供されていないため、テストの対象にはなりません。
その後、APIはMurmurHashアルゴリズムを適用してバリエーションを決定します。
ユーザーのハッシュ値がいずれかのバリエーションに定義された範囲内にある場合、一致するバリエーションが返されます。それ以外の場合、バリエーションとしてNULLが返されます。
常に一貫した一意のユーザーID(ログインID、メールアドレスなど)を使用してください。セッションIDは頻繁に変更され、セッションごとに異なるバリエーションがユーザーに表示される可能性があるため、ユーザーIDとして使用しないでください。
戻り値がNULLの場合も適切に処理してください。バリエーションとしてNULLが返された場合に備えて、フォールバック処理を追加してください。
頻繁に利用するユーザーのバリエーション割り当てをキャッシュし、ハッシュ値が繰り返し評価されないようにしてください。
オーディエンスターゲティングとレポートのセグメント化で一貫性を確保するため、アプリケーション全体でユーザー属性のキーに同じ名前を使用してください。
このドキュメントが、操作をスムーズに進めるうえでお役に立てば幸いです。詳しい説明が必要な場合やご質問がある場合は、いつでもsupport@zohopagesense.comまでメールでお気軽にお問い合わせください。