実験の有効化

実験の有効化

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

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

メソッド

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

パラメーター。

パラメーター

種類

説明

experimentName

String

有効にするテスト名。

userId

String

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

userAttributes

HashMap<String, String>

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


戻り値  

  • ユーザーがフルスタックA/Bテストの対象条件を満たしている場合、割り当てられたバリエーション名を返します。

  • ユーザーがオーディエンスのターゲティング条件を満たさず、フルスタックA/Bテストの対象外である場合はnullを返します。

サンプルコード

import java.util.HashMap;

// ユーザー属性を作成する
HashMap<String, String> userAttributes = new HashMap<>();
userAttributes.put('Browser', 'Chrome');
userAttributes.put('Device', 'Desktop');
userAttributes.put('OS', 'Windows 10');

// テストを有効にする
String variationName = pageSenseClient.activateExperiment(experimentName, userId, userAttributes);

// 各バリエーションの動作を設定する
if ('Original'.equals(variationName)) {
// 「Original」用のコード
} 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はテストの設定時に設定されたオーディエンスのターゲティング条件に基づいて、ユーザーがテストの対象条件を満たしているかを評価します。
通常、これらの条件は、ブラウザー、デバイスの種類、OS、またはuserAttributesで渡された個別指定のユーザーデータなどのユーザー属性に基づきます。

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

    • ユーザーがこれらの条件を満たさない場合、APIは直ちにnullを返し、ユーザーがテストの対象外であることを示します。

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

次に、APIはユーザーストレージサービスが有効になっているかを確認します。このサービスでは、複数のセッションにわたってユーザーに以前割り当てられたバリエーションを記憶することで、ユーザーに同じバリエーションが一貫して割り当てられるようにします。

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

    • 保存されたバリエーションがない場合、APIは以下で説明するバケット振り分けロジックを使用して、新しいバリエーションの割り当てに進みます。

  1. MurmurHashによるハッシュ化
    次に、テストのトラフィック配分設定に基づいて、ユーザーがテストの対象条件を満たしているかを判定します。

    • APIは、ユーザーID(userId)にMurmurHashアルゴリズムを適用します。このハッシュアルゴリズムは、各ユーザーIDについて、0から9,999までの一意の数値を常に生成します。この数値がユーザーのハッシュ値として使用されます。

    • MurmurHashアルゴリズムは、特定のテストにおいて、異なるセッションでも同じユーザーIDに対して常に同じハッシュ値を生成します。これにより、そのテストではユーザーに対して一貫性のある固定的なバリエーションの割り当てが行われます。

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

例:

    • 「オリジナル」バリエーションには、0~2,000のハッシュ範囲が割り当てられます

    • 「バリエーション1」には、2,001~4,000のハッシュ範囲が割り当てられます

    • 「バリエーション2」には、4,001~6,000のハッシュ範囲が割り当てられます。以降も同様です。

これらのハッシュ範囲は互いに重複しないため、各ユーザーに割り当てられるバリエーションは1つだけです。また、これらの範囲は全体を網羅しており、テストに割り当てられたトラフィック範囲全体をカバーします。

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

    • 範囲内にある場合、対応するバリエーションがユーザーに割り当てられます。

    • ハッシュ値が、割り当てられたすべての範囲のにある場合、そのユーザーはテストのトラフィックの割り当て対象外となり、nullが返されます。

  1. トラッキングと分析

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

  1. 戻り値

    • ユーザーがテストの対象となり、バリエーションが正常に割り当てられた場合、APIは割り当てられたバリエーション名を返します。

    • いずれかの段階でユーザーがテストの対象外となった場合、APIはnullを返します。

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

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

メソッド  

  1. String variationName = pageSenseClient.activateExperiment(experimentName, userId);

パラメーターの詳細  

パラメーター

種類

説明

experimentName

String

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

userId

String

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


APIの仕組み 

  1. このバージョンのAPIでは、テスト名とユーザーIDのみが必要です。

  2. オーディエンスの絞り込み処理は引き続き実行されます。ただし、ユーザー属性が指定されていないため、オーディエンスの絞り込み条件が「すべての訪問者」に設定されているテストのみが対象となります。

  3. テストにデバイスの種類、場所、カスタム属性などの追加のオーディエンス絞り込み条件が含まれている場合、評価に必要なユーザー属性データがないため、ユーザーは自動的に対象外となります。

  4. 「すべての訪問者」を許可するテストでは、MurmurHashに基づく標準的なバリエーション割り当てロジックが適用されます。ユーザーのハッシュ値がいずれかのバリエーションに定義された範囲内にある場合、そのバリエーションが割り当てられ、APIは割り当てられたバリエーション名を返します。

  5. テストのトラフィックの割り当て設定により、ユーザーのハッシュ値が定義済みのすべてのバリエーション範囲外にある場合、バリエーションは割り当てられず、APIはnullを返します。

このドキュメントが、操作を円滑に進めるうえでお役に立てば幸いです。さらに詳しい説明が必要な場合やご質問がある場合は、support@zohopagesense.com宛てにメールを送信して、いつでもお気軽にお問い合わせください。