getVariationName()メソッドは、フルスタックA/Bテストで、指定したユーザーに割り当てられたバリエーション名を取得します。
このAPIはユーザーに割り当てられたバリエーションのみを返し、PageSenseで追跡イベントを発生させません。ユーザーに割り当てるバリエーションのみを確認し、有効化イベントを発生させたくない場合に、このAPIを使用できます。
メソッドの呼び出し
|
パラメーター |
種類 |
説明 |
|
experimentName |
string |
バリエーションを取得するテスト名。 |
|
userId |
string |
ユーザーの一意の識別子。 |
|
userAttributes |
array |
(任意)オーディエンスのターゲティングとセグメント化に使用するユーザー属性の連想配列。 |
戻り値
ユーザーがフルスタックA/Bテストの対象となる場合、割り当てられたバリエーション名を返します。
ユーザーがオーディエンスのターゲティング条件を満たしていないか、テストのトラフィックの割り当て対象外である場合、NULLを返します。
サンプルコード
getVariationName() メソッドが呼び出されると、一連の手順に従って、ユーザーに割り当てるバリエーションが決定されます。
APIはまず、PageSenseで定義されたオーディエンスのターゲティング条件に基づいて、ユーザーがテストの対象となるかどうかを評価します。
通常、ターゲティング条件には、ブラウザー、デバイスの種類、OS、またはユーザー属性で渡す個別指定のユーザーデータなどの属性が含まれます。
ユーザーがターゲティング条件に一致する場合 → 処理が続行されます。
ユーザーがターゲティング条件に一致しない場合 → バリエーションとしてNULLが返されます。
ユーザーストレージサービスは、特定のテストでユーザーに割り当てられたバリエーションを、データベース、Redisキャッシュ、ファイルシステムなど、ユーザーが用意したストレージ層に保存します。これにより、セッションやブラウザーが異なる場合でも、特定のA/Bテストでユーザーには常に同じバリエーションが割り当てられます。
該当するテストのユーザーIDに対して保存済みのバリエーションが存在する場合は、ストレージから取得して返されます。
存在しない場合、SDKはハッシュアルゴリズムを使用して新規バリエーションを割り当てます。
ユーザーIDとテストキーを組み合わせて一意のキーを作成し、APIはこの一意のキーにMurmurHashアルゴリズムを適用して0から9,999までの数値を生成します。
MurmurHashアルゴリズムは、特定のユーザーIDとテストキーの組み合わせに対して同じハッシュ値を生成します。これにより、セッションやブラウザーが異なる場合でも、特定のテストでユーザーには常に同じバリエーションが割り当てられます。
生成されたハッシュ値を使用し、テスト全体のトラフィックの割り当てと各バリエーションへの個別のトラフィックの割り当てに基づいて、ユーザーが属するバリエーションが決定されます。
|
バリエーション |
ハッシュ値の範囲 |
|
オリジナル |
0 – 2,000 |
|
バリエーション1 |
2,001 – 4,000 |
|
バリエーション2 |
4,001 – 6,000 |
|
バリエーション3 |
6,001 – 8,000 |
ユーザーのハッシュ値がこれらの範囲のいずれかに含まれる場合、そのバリエーションが返されます。
ユーザーのハッシュ値が定義されたすべての範囲外にある場合、ユーザーはテストの対象外となり、NULLが返されます。
|
条件 |
戻り値 |
|
ユーザーが条件を満たし、バリエーションが割り当てられた場合 |
バリエーション名 |
|
ユーザーがオーディエンスのターゲティング条件を満たさない場合 |
NULL |
|
ユーザーがトラフィックの割り当て範囲外にある場合 |
NULL |
getVariationName()APIは、ユーザー属性を指定せずに呼び出すこともできます。現在、この種類のAPI呼び出しは、「すべての訪問者」を対象とするテストでのみ使用できます。特定のオーディエンスのターゲティング条件が設定されたテストでは使用できません。このAPI呼び出しでユーザー属性を渡さない場合、ユーザーがオーディエンスのターゲティング条件を満たさないためです。
メソッドの呼び出し
動作の仕組み
必要なのは、ExperimentNameとUser Idのみです。
オーディエンスのターゲティングは引き続き実行されますが、ユーザー属性が渡されないため、次のように処理されます。
ユーザーが条件を満たすのは、「すべての訪問者」を対象とするテストのみです。
ユーザーが対象外となるのは、特定のオーディエンスのターゲティング条件が設定されたテストです。ユーザー属性を利用できないためです。
条件を満たすと、APIはMurmurHashベースのバケット分けを使用して、割り当てるバリエーションを決定します。
ユーザーのハッシュ値がテストのトラフィックの割り当て範囲外にある場合、NULLが返されます。
常に一貫した一意のユーザーID(ログインID、メールアドレスなど)を使用してください。セッションIDは頻繁に変更され、セッションごとに異なるバリエーションがユーザーに表示される可能性があるため、ユーザーIDとして使用しないでください。
NULLが返された場合も、常に適切に処理してください。バリエーションとしてNULLが返された場合に備えて、フォールバック処理を追加してください。
頻繁に利用するユーザーのバリエーション割り当てをキャッシュし、ハッシュ評価の繰り返しを避けてください。
オーディエンスのターゲティングとレポートのセグメント化で一貫性を保つため、アプリケーション全体でユーザー属性のキーに同じ名前を使用してください。
Webページにバリエーションのみを表示する場合は、getVariationName()APIを使用します。アクティベーションイベントもactivateExperiment()APIで追跡する場合は、こちらを使用します。