API機能の概要
ActivateExperiment APIが呼び出されると、ユーザーにバリエーションを割り当てるかどうかを判断するため、所定の処理が実行されます。この処理の詳細は次のとおりです。
オーディエンスのターゲティング
APIはまず、テストの設定時に定義したオーディエンスのターゲティング条件に基づいて、ユーザーがテストの対象条件を満たしているかどうかを評価します。
通常、これらの条件は、ブラウザー、デバイスの種類、OS、またはuserAttributesで渡されるカスタムユーザーデータなどのユーザー属性に基づきます。
- ユーザーの属性がオーディエンスのターゲティング条件に一致する場合、APIは次の手順に進みます。
- ユーザーがこれらの条件を満たさない場合、APIは直ちにnullを返します。これは、そのユーザーがテストの対象外であることを示します。
ユーザーストレージサービス
次に、APIはユーザーストレージサービスが有効かどうかを確認します。このサービスでは、複数のセッションにわたって以前に割り当てられたバリエーションを記憶し、ユーザーへのバリエーションの割り当てに一貫性を持たせます。
- ユーザーストレージサービスでユーザーにバリエーションがすでに割り当てられ、保存されている場合、APIは保存されたバリエーションを取得して返します。
- 保存されたバリエーションがない場合、APIは以下で説明するバケット分けのロジックを使用して、新しいバリエーションを割り当てます。
MurmurHashによるハッシュ化
次の手順では、テストのトラフィックの割り当て設定に基づいて、ユーザーがテストの対象条件を満たしているかどうかを判断します。
- APIは、ユーザーID(userId)にMurmurHashアルゴリズムを適用します。このハッシュアルゴリズムでは、ユーザーIDごとに0から9,999までの一意の数値が常に生成され、その数値がユーザーのハッシュ値として使用されます。
- MurmurHashアルゴリズムでは、指定したテストにおいて、セッションが異なっても同じユーザーIDに対して常に同じハッシュ値が生成されます。これにより、指定したテストでユーザーに同じバリエーションを確実かつ継続的に割り当てることができます。
バリエーションのマッピング
テスト内の各バリエーションには、そのバリエーションに割り当てられたトラフィックの割合(%)に応じて、特定のハッシュ値の範囲が割り当てられます。
例:
- 「Original」バリエーションには、0~2,000のハッシュ範囲が割り当てられます。
- 「バリエーション1」には、2,001~4,000のハッシュ範囲が割り当てられます。
- 「バリエーション2」には、4,001~6,000のハッシュ範囲が割り当てられます。以降も同様です。
これらのハッシュ範囲は重複せず、ユーザーごとに1つのバリエーションのみが割り当てられます。また、全体を網羅しており、テストに割り当てられたトラフィックの範囲全体が対象となります。
APIは、ユーザーのハッシュ値が設定されたいずれかの範囲内にあるかどうかを確認します。
- 範囲内にある場合、対応するバリエーションがユーザーに割り当てられます。
- ハッシュ値が割り当てられたすべての範囲外にある場合、そのユーザーはテストのトラフィックの割り当て対象外であるため、nullが返されます。
トラッキングと分析
バリエーションが正常に割り当てられると、APIは対応するトラッキングデータをPageSenseサーバーに送信します。このデータは、分析、レポート、およびテストのパフォーマンス評価に使用されます。
戻り値
- ユーザーがテストの対象条件を満たし、バリエーションが正常に割り当てられた場合、APIは割り当てられたバリエーション名を返します。
- いずれかの段階で、ユーザーがテストの対象条件を満たさない場合、APIはnullを返します。