バリエーション名を取得する

バリエーション名を取得する

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

取得する Variation 名前 API は、FullStack A/B テスト実験の名前を取得するために使用されます。ユーザーが実験の対象となるかを評価し、適切なバリエーションを割り当てます。

ユーザー属性なしで getVariationName を使用する

方法

  1. string variationName = pageSenseClient.GetVariationName(experimentName, userId, userAttributes);

パラメーター詳細:

パラメーター

種類

説明

experimentName

String

有効化するexperimentの名前。

userId

String

ユーザーの一意の識別子。

userAttributes

HashMap

オーディエンスのターゲティングやセグメント化に使用されるユーザー属性のマップ。


返される値

  1. ユーザーがFullStack A/B実験の対象となる場合、割り当てられたバリエーションの名前を返します。
  2. ユーザーがオーディエンスターゲティングの条件を満たさず、FullStack A/B Experimentの対象とならない場合はnullを返します。

使用例

  1. // ユーザー属性オブジェクトを作成
  2. Dictionary userAttributes = 新規 Dictionary ();
  3.  
  4. // ユーザー属性値を追加
  5. userAttributes['Browser'] = 'Chrome';
  6. userAttributes['Device'] = 'Desktop';
  7. userAttributes['OS'] = 'Windows 10';
  8.  
  9. // FullStack A/BテストExperimentでユーザーに割り当てられたバリエーションを取得t
  10. string variationName = pageSenseClient.GetVariationName(experimentName, userId, userAttributes);
  11.  
  12. // FullStack A/BテストExperimentの各バリエーションごとにコード変更を定義
  13.  
  14. if (variationName.Equals('元の内容')){
  15. // コード: '元の内容'用の処理コードを記述
  16. } else if (variationName.Equals('Variation 1')){
  17. // コード: 'Variation 1'用の処理コードを記述
  18. } else if (variationName.Equals('Variation 2')){
  19. // コード: 'Variation 2' を処理するためのコードを記述
  20. } else if (variationName.Equals('Variation 3')){
  21. // コード: 'Variation 3' を処理するためのコードを記述
  22. } else{
  23. // コード: ユーザーがFullStack A/BテストExperimentのいずれの値にも該当しない場合の処理
  24. } 


API 機能概要

GetVariationName APIが呼び出されると、ユーザーにバリエーションを割り当てるかどうかを判断するための体系的なプロセスが実行されます。以下は、このプロセスの詳細な内訳です。

Audience Targeting

APIはまず、ユーザーが実験の構成時に定義されたAudience Targetingの条件を満たしているかどうかを評価します。これらの条件は通常、ブラウザ、デバイス種類、オペレーティングシステム、またはuserAttributesで渡されるカスタムユーザーデータなど、ユーザー属性に基づきます。
  1. ユーザーの属性がAudience Targetingの条件と一致する場合、APIは次の手順に進みます。
  2. ユーザーがこれらの条件を満たさない場合、APIは直ちにnullを返し、ユーザーが実験に含まれる適格性がないことを示します。

ユーザー Storage サービス

次に、API はユーザー Storage サービスが有効かどうかを確認します。このサービスは、複数のセッションにわたって同じユーザーに以前割り当てられたバリエーションを記憶することで、バリエーション割り当ての一貫性を保つのに役立ちます。
  1. すでにユーザーに対してバリエーションが割り当てられ、ユーザー Storage サービスに保存されている場合、API はその保存されたバリエーションを取得して返却します。
  2. 保存されたバリエーションが存在しない場合、API は以下で説明するバケッティングロジックを使用して新しいバリエーションの割り当てを進めます。

MurmurHash を用いたハッシュ化

次の手順として、ユーザーが実験のトラフィック割り当て設定に基づき、実験対象となるかどうかを判断します。

  1. API は、ユーザーの ID(userId)にMurmurHash アルゴリズムを適用します。このハッシュアルゴリズムは、各ユーザーIDごとに一貫して0 から 9999の間の一意な数値を生成し、これがユーザーのハッシュ値となります。
  2. MurmurHash アルゴリズムは、同じ実験内で異なるセッションでも、ユーザーIDに対して常に同じハッシュ値を生成します。これにより、特定の実験におけるユーザーへのバリエーション割り当てが決定的かつ安定的に行われます。

バリエーションのマッピング

実験内の各バリエーションには、割り当てられたトラフィック割合(%)に応じた特定のハッシュ値範囲が割り当てられます。
例:
  1. 「元の内容」バリエーションには、ハッシュ範囲 0~2000 が割り当てられます。
  2. 「Variation 1」には、ハッシュ範囲 2001~4000 が割り当てられます。
  3. 「Variation 2」には、ハッシュ範囲 4001~6000 が割り当てられる、というように続きます。
これらのハッシュ範囲は重複せず、ユーザーごとに1つのバリエーションのみが割り当てられることを保証します。また、全体として網羅的であり、実験の割り当てられたトラフィック範囲全体をカバーします。

API は、ユーザーのハッシュ値がこれらの定義された範囲内に収まっているかどうかを確認します。
  1. 範囲内であれば、該当するバリエーションがユーザーに割り当てられます。
  2. ハッシュ値がいずれの割り当て範囲にも該当しない場合、ユーザーは実験のトラフィック割り当て内に含まれず、null が返却されます。

返却値

  1. ユーザーが実験対象であり、バリエーションが正常に割り当てられた場合、API は割り当てたバリエーションの名前を返却します。
  2. ユーザーがいずれかの段階で実験対象外となった場合、API はnull を返却します。

ユーザー属性なしで GetVariationName を利用する

GetVariationName API は、ユーザー属性を指定せずに呼び出すことも可能です。以下のコードは、ユーザー属性パラメーターを渡さずに API を呼び出す方法を示しています。

方法

string variationName = pageSenseClient.GetVariationName(experimentName, userId);

パラメーター詳細:

パラメーター

種類

説明

experimentName

String

有効化する実験の名前。

userId

String

ユーザーの一意な識別子。

 

API 機能の概要

  1. このAPIのバージョンでは、experiment 名前とユーザーIDのみが必須です。
  2. オーディエンスターゲティングの手順は引き続き実行されますが、ユーザー属性が提供されていないため、ユーザーはオーディエンスターゲティング条件が「すべて Visitors」に設定されているexperimentのみ対象となります。
  3. experimentにデバイス種類、場所、カスタム属性など追加のオーディエンスターゲティング条件が含まれている場合、評価に使用する属性データがないため、ユーザーは自動的に適格チェックに失敗します。
  4. 「すべて Visitors」を許可するexperimentでは、標準のMurmurHashベースのバリエーション割り当てロジックが適用されます。ユーザーのハッシュ値がいずれかのバリエーションの定義範囲内に入った場合、そのバリエーションが割り当てられ、APIは割り当てられたバリエーションの名前を返します。
  5. ユーザーのハッシュ値が、experimentのトラフィック割り当て設定により、すべての定義済みバリエーション範囲外の場合は、バリエーションは割り当てられず、APIはnullを返します。
このドキュメントが作業の手助けとなれば幸いです。ご不明点や追加の説明が必要な場合は、いつでもサポート窓口までメール(サポート@zohopagesense.com)でお問い合わせください。