実験を活性化する

実験を活性化する

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

ActivateExperiment APIは、指定したユーザーに対してFullStack A/Bテスト実験を有効化するために使用されます。ユーザーが実験の対象かどうかを評価し、該当するバリエーションを割り当てます。

ActivateExperimentとユーザー属性の利用

方法

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

パラメーター詳細:

パラメーター

種類

説明

experimentName

String

有効化する実験の名前。

userId

String

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

userAttributes

HashMap

オーディエンスのターゲティングやセグメンテーションに使用するユーザー属性のマップ。

返品値

  1. ユーザーがFullStack A/B実験の対象となる場合、割り当てられたバリエーションの名前を返します。
  2. ユーザーがオーディエンスターゲティングの条件を満たさず、FullStack A/B実験の対象外の場合は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テスト実験を有効化
  10. string variationName = pageSenseClient.ActivateExperiment(experimentName, userId, userAttributes);
  11.  
  12. // FullStack A/Bテスト実験の各バリエーションごとのコード変更を定義
  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 Functionality 概要

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

Audience Targeting

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

ユーザー Storage サービス

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

Hashing with MurmurHash

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

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

Variation Mapping

実験内の各バリエーションには、割り当てられたトラフィック割合(%)に対応する特定のハッシュ値範囲が割り当てられます。

例:
  1. '元の内容' バリエーションには0–2000のハッシュ範囲が割り当てられます
  2. 'Variation 1' には2001–4000のハッシュ範囲が割り当てられます
  3. 'Variation 2' には4001–6000のハッシュ範囲が割り当てられ、以降同様です。
これらのハッシュ範囲は重複せず、ユーザーごとに一つのバリエーションのみが割り当てられることを保証し、全体で網羅的に実験の割り当てられたトラフィック範囲をカバーします。

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

Tracking and 分析

バリエーションが正常に割り当てられると、APIは該当するトラッキングデータをPageSenseサーバーへ送信します。このデータは分析、レポート、および実験パフォーマンスの評価に使用されます。

返品する 値

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

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

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

方法

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

パラメーター詳細:

パラメーター

種類

説明

experimentName

String

有効化する実験の名前。

userId

String

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


API Functionality 概要

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