バリエーション名取得APIを使用すると、特定のFull Stack A/Bテストでユーザーに割り当てられたバリエーションを、テストを再評価または再有効化せずに取得できます。
このAPIは、次のような場合に役立ちます。
割り当て済みのバリエーションを取得する
ユーザーフローの後続段階で、バリエーション固有のロジックを適用する
複数の画面や行動にわたって一貫性を確保する
このAPIでは、次の操作を実行できます。
ユーザーに割り当て済みのバリエーションを取得する
テスト有効化の呼び出しの重複を回避する
アプリ内の異なる箇所で一貫した動作を適用する
テストの対象外であるユーザーを安全に処理する
次の場合に、このAPIを使用します。
ユーザーに対してテストがすでに有効化されている場合
割り当てられたバリエーションを再確認する場合
初回の有効化フロー以外でバリエーション情報が必要な場合
以前にテストが有効化されていない場合、このAPIはnullを返すことがあります。
バリエーション名を取得する際にユーザー属性を渡すことで、オーディエンス条件を正しく評価できます。
KOTLIN
JAVA
|
パラメーター |
種類 |
必須 |
説明 |
|
experimentName |
文字列 |
はい |
PageSenseで設定したフルスタックテストの名前です。 |
|
userId |
文字列 |
はい |
ユーザーを識別するための一意かつ固定のIDです。セッションが異なる場合も同じ値を使用する必要があります。 |
|
userAttributes |
Map<String, String> |
いいえ |
オーディエンスのターゲティングやセグメント化に使用する、任意のユーザー属性です。 |
activateExperiment()とgetVariationName()の使い分け
|
ユースケース |
推奨メソッド |
|
初回の評価 |
activateExperiment |
|
割り当て済みのバリエーションの取得 |
getVariationName |
ユーザー属性がない場合は、テスト名とユーザーIDだけを使用してバリエーションを取得できます。
この場合、対象が[すべての訪問者]に設定されているテストのみが該当します。
activateExperiment()メソッドが呼び出されると、次の手順でユーザーにバリエーションを割り当てるかどうかが判定されます。
1. オーディエンスのターゲティング
ユーザーの属性がオーディエンスターゲティングの条件に一致する場合、評価が続行されます。
ユーザーの属性が一致しない場合、APIは直ちにnullを返します。これは、そのユーザーがテストの対象ではないことを示します。
2. ユーザーストレージサービス
指定したユーザーIDについて、このテストですでに保存済みのバリエーションがある場合は、ストレージから取得して返します。
ない場合、SDKはハッシュアルゴリズムを使用して新規バリエーションを割り当てます。
3. MurmurHashによるハッシュ化
このハッシュ値によって、テストのトラフィックの割り当て範囲内でのユーザーの位置が決まり、バリエーションが割り当てられます。
MurmurHashでは、特定のユーザーIDとテストのキーの組み合わせに対して、常に同じハッシュ値が生成されます。
これにより、異なるセッションやブラウザーでも、ユーザーには常に同じバリエーションが割り当てられます。
4. バリエーションのマッピング
|
バリエーション |
値の範囲 |
|
オリジナル |
0 – 2,000 |
|
バリエーション1 |
2,001 – 4,000 |
|
バリエーション2 |
4,001 – 6,000 |
|
バリエーション3 |
6,001 – 8,000 |
これらの範囲は重複せず、全体としてテストの総トラフィック割り当てをカバーします。
ユーザーのハッシュ値が特定のバリエーションの範囲内にある場合、そのバリエーションがユーザーに割り当てられます。
ユーザーのハッシュ値が、バリエーションに割り当てられたすべての範囲外にある場合、ユーザーにはバリエーションが割り当てられず、テストの対象にもなりません。バリエーションとしてNULLが返されます。
5. 追跡と分析
6. 戻り値
|
結果 |
戻り値 |
|
ユーザーが対象となり、バリエーションが割り当てられた |
バリエーション名を返す |
|
ユーザーがオーディエンスのターゲティングルールに一致しない |
NULLを返す |
|
ユーザーがトラフィックの割り当て範囲外にある |
NULLを返す |
このAPIではテストを有効にしません
ユーザーにすでに割り当てられているバリエーションのみを返します
ユーザーが対象外の場合、またはテストが一度も有効にされていない場合は、nullが返されます
nullの場合も常に安全に処理してください
ユーザーセッションごとにテストを一度有効にします
以降の確認にはgetVariationNameを使用します
一貫した結果を得るには、固定されたユーザー識別子を使用します
ユーザー属性は、利用できる場合にのみ渡します