実験の有効化

実験の有効化

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

ActivateExperiment APIは、指定したユーザーに対してフルスタックA/Bテストを有効にするために使用します。ユーザーがテストの対象条件を満たしているかどうかを評価し、その結果に応じてバリエーションを割り当てます。

ユーザー属性を使用したActivateExperiment

メソッド

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

パラメーターの詳細

パラメーター

説明

experimentName

String

有効にするテスト名。

userId

String

ユーザーを一意に識別するID。

userAttributes

HashMap<String, String>

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

戻り値

  1. ユーザーがフルスタックA/Bテストの対象条件を満たしている場合、割り当てられたバリエーション名を返します。
  2. ユーザーがオーディエンスのターゲティング条件を満たさず、フルスタックA/Bテストの対象外である場合は、nullを返します。

使用例

  1. // ユーザー属性オブジェクトを作成する
  2. Dictionary<string, string> userAttributes = new Dictionary<string, string>();
  3.  
  4. // ユーザー属性の値を追加する
  5. userAttributes['Browser'] = 'Chrome';
  6. userAttributes['Device'] = 'Desktop';
  7. userAttributes['OS'] = 'Windows 10';
  8.  
  9. // フルスタックA/Bテストを有効にする
  10. string variationName = pageSenseClient.ActivateExperiment(experimentName, userId, userAttributes);
  11.  
  12. // フルスタックA/Bテストの各バリエーションに対するコード変更を設定する
  13.  
  14. if (variationName.Equals('Original')){
  15. // コード:'Original'を処理するコードを記述する
  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. // コード:ユーザーがフルスタックA/Bテストの対象外の場合。
  24. } 

API機能の概要

ActivateExperiment APIが呼び出されると、ユーザーにバリエーションを割り当てるかどうかを判断するため、所定の処理が実行されます。この処理の詳細は次のとおりです。

オーディエンスのターゲティング

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

ユーザーストレージサービス

次に、APIはユーザーストレージサービスが有効かどうかを確認します。このサービスでは、複数のセッションにわたって以前に割り当てられたバリエーションを記憶し、ユーザーへのバリエーションの割り当てに一貫性を持たせます。
  1. ユーザーストレージサービスでユーザーにバリエーションがすでに割り当てられ、保存されている場合、APIは保存されたバリエーションを取得して返します。
  2. 保存されたバリエーションがない場合、APIは以下で説明するバケット分けのロジックを使用して、新しいバリエーションを割り当てます。

MurmurHashによるハッシュ化

次の手順では、テストのトラフィックの割り当て設定に基づいて、ユーザーがテストの対象条件を満たしているかどうかを判断します。

  1. APIは、ユーザーID(userId)にMurmurHashアルゴリズムを適用します。このハッシュアルゴリズムでは、ユーザーIDごとに0から9,999までの一意の数値が常に生成され、その数値がユーザーのハッシュ値として使用されます。
  2. MurmurHashアルゴリズムでは、指定したテストにおいて、セッションが異なっても同じユーザーIDに対して常に同じハッシュ値が生成されます。これにより、指定したテストでユーザーに同じバリエーションを確実かつ継続的に割り当てることができます。

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

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

例:
  1. 「Original」バリエーションには、0~2,000のハッシュ範囲が割り当てられます。
  2. 「バリエーション1」には、2,001~4,000のハッシュ範囲が割り当てられます。
  3. 「バリエーション2」には、4,001~6,000のハッシュ範囲が割り当てられます。以降も同様です。
これらのハッシュ範囲は重複せず、ユーザーごとに1つのバリエーションのみが割り当てられます。また、全体を網羅しており、テストに割り当てられたトラフィックの範囲全体が対象となります。

APIは、ユーザーのハッシュ値が設定されたいずれかの範囲内にあるかどうかを確認します。
  1. 範囲内にある場合、対応するバリエーションがユーザーに割り当てられます。
  2. ハッシュ値が割り当てられたすべての範囲外にある場合、そのユーザーはテストのトラフィックの割り当て対象外であるため、nullが返されます。

トラッキングと分析

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

戻り値

  1. ユーザーがテストの対象条件を満たし、バリエーションが正常に割り当てられた場合、APIは割り当てられたバリエーション名を返します。
  2. いずれかの段階で、ユーザーがテストの対象条件を満たさない場合、APIはnullを返します。

ユーザー属性を指定せずにActivateExperimentを使用する方法

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

メソッド

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

パラメーターの詳細

パラメーター

種類

説明

experimentName

文字列

有効にするテストの名前です。

userId

文字列

ユーザーを一意に識別するIDです。


API機能の概要

  1. このバージョンのAPIでは、テスト名とユーザーIDのみが必要です。
  2. オーディエンスのターゲティング手順は引き続き実行されます。ただし、ユーザー属性が指定されていないため、オーディエンスのターゲティング条件が[すべての訪問者]に設定されているテストのみが対象になります。
  3. デバイスの種類、場所、カスタム属性など、追加のオーディエンスのターゲティング条件がテストに含まれている場合、評価に必要なユーザー属性データがないため、ユーザーは自動的に対象外になります。
  4. [すべての訪問者]を許可するテストには、スタンダードなMurmurHashベースのバリエーション割り当てロジックが適用されます。ユーザーのハッシュ値がいずれかのバリエーションに設定された範囲内にある場合、そのバリエーションが割り当てられ、APIから割り当てられたバリエーション名が返されます。
  5. テストのトラフィックの割り当て設定により、ユーザーのハッシュ値が設定済みのすべてのバリエーション範囲外となる場合、バリエーションは割り当てられず、APIからnullが返されます。
このドキュメントが、操作を円滑に進めるうえでお役に立てば幸いです。詳しい説明が必要な場合やご質問がある場合は、メールアドレスsupport@zohopagesense.comまでいつでもお気軽にお問い合わせください。