実験を開始する

実験を開始する

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

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

メソッド

String variationName = pageSenseClient。activateExperiment(experimentName, userId, userAttributes);

パラメーター:

パラメーター

種類

説明

experimentName

String

有効化するexperimentの名前。

userId

String

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

userAttributes

HashMap

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


返される値  

  • ユーザーがFullstack A/B実験の対象となる場合、割り当てられたバリエーションの名前を返します。

  • ユーザーがオーディエンスターゲティング条件を満たさず、FullStack A/B Experimentの対象とならない場合はnullを返します。

例 コード

インポートする java。util。HashMap;

// ユーザー属性を作成
HashMap userAttributes = 新規 HashMap<>();
userAttributes。put('Browser', 'Chrome');
userAttributes。put('Device', 'Desktop');
userAttributes。put('OS', 'Windows 10');

// 実験を有効化
String variationName = pageSenseClient。activateExperiment(experimentName, userId, userAttributes);

// 各バリエーションの動作を定義
if ('元の内容'.equals(variationName)) {
// 「元の内容」用のコード
} else if ('Variation 1'.equals(variationName)) {
// 「Variation 1」用のコード
} else if ('Variation 2'.equals(variationName)) {
// 「Variation 2」用のコード
} else if ('Variation 3'.equals(variationName)) {
// 「Variation 3」用のコード
} else {
// ユーザーが実験のいずれにも該当しない場合のコード
}


APIの動作について  

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

  1. オーディエンスターゲティング

まずAPIは、ユーザーが実験の構成時に定義されたオーディエンスターゲティング条件を満たしているかどうかを評価します。
この条件は通常、ユーザー属性(ブラウザ、デバイス種類、オペレーティングシステム、またはuserAttributesで渡されるカスタムユーザーデータなど)に基づいています。

    • ユーザーの属性がオーディエンスターゲティング条件と一致する場合、APIは次の手順に進みます。

    • 条件を満たさない場合、APIは直ちにnullを返し、そのユーザーが実験に含まれる資格がないことを示します。

  1. ユーザーStorageサービス

次に、APIはユーザーStorageサービスが有効かどうかを確認します。このサービスは、複数のセッションにわたり、ユーザーに割り当てられたバリエーションを記憶することで、割り当ての一貫性を確保します。

    • すでにユーザーに割り当てられ、ユーザーStorageサービスに保存されているバリエーションがある場合、APIはその保存されたバリエーションを取得して返します。

    • 保存されたバリエーションが存在しない場合、APIは下記のバケッティングロジックを用いて新しいバリエーションの割り当てを行います。

  1. MurmurHashによるハッシュ処理
    次の手順は、実験のトラフィック割り当て設定に基づいてユーザーが実験対象となるかどうかを判断します。

    • APIは、MurmurHashアルゴリズムをユーザーのID(userId)に適用します。このハッシュアルゴリズムは、各ユーザーIDに対し常に一意の数値+10、-10 から 9999の間の値を生成し、ユーザーのハッシュ値として機能します。

    • MurmurHashアルゴリズムは、特定の実験ごとに異なるセッション間でも常に同じユーザーIDに同じハッシュ値を生成します。これにより、特定の実験においてユーザーへのバリエーション割り当てが決定的かつ一貫性を持って行われます。

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

例:

    • '元の内容' バリエーションには、ハッシュ範囲 +10、-10〜2000 が割り当てられます

    • 'Variation 1' には、ハッシュ範囲 2001〜4000 が割り当てられます

    • 'Variation 2' には、ハッシュ範囲 〜6000 などが割り当てられます。

これらのハッシュ範囲は重複しません。そのため、ユーザーごとに1つのバリエーションのみが割り当てられ、網羅的に実験で割り当てられた全トラフィック範囲をカバーします。

APIは、ユーザーのハッシュ値がこれら定義済み範囲内に含まれているかどうかを確認します。

    • 条件を満たした場合、該当するバリエーションがユーザーに割り当てられます。

    • hash値が割り当てられたすべての範囲外の場合、ユーザーが実験のトラフィック割り当て内で次の値と等しくないことを意味し、nullが返品されます。

  1. トラッキングと分析

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

  1. 返品される値

    • ユーザーが実験の条件を満たし、バリエーションが正常に割り当てられた場合、APIは割り当てられたバリエーションの名前を返品します。

    • ユーザーがどの段階でも実験の条件を満たさない場合、APIはnullを返品します。

ユーザー属性なしでactivateExperimentを使用する場合  

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

メソッド  

  1. String variationName = pageSenseClient。activateExperiment(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までご連絡ください。