バリエーション名の取得

バリエーション名の取得

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

指定したフルスタックA/Bテストでユーザーに割り当てられたバリエーションを取得するには、getVariationName APIを使用します。

メソッド。

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

パラメーター。

パラメーター

種類

説明

experimentName

String

有効化されたテストの名前です。

userId

String

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

userAttributes

HashMap<String, String>

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


戻り値。

  1. ユーザーがフルスタックA/Bテストの対象となる場合、割り当てられたバリエーションの名前を返します。
  2. ユーザーがオーディエンスのターゲティング条件を満たさず、フルスタック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');

// フルスタックA/Bテストを有効化 

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

// フルスタックA/Bテストの各バリエーションに対するコード変更を設定

if (variationName.equals('Original')){
// コード:'Original'を処理するコードを記述 }
else if (variationName.equals('Variation 1')){
// コード:'Variation 1'を処理するコードを記述 }
else if (variationName.equals('Variation 2')) {
// コード:'Variation 2'を処理するコードを記述 }
else if (variationName.equals('Variation 3')) {
// コード:'Variation 3'を処理するコードを記述 }
else{
// コード:ユーザーがフルスタックA/Bテストの対象外である場合。 }

このAPIの仕組み。

getVariationName 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. 「Variation 1」には、2,001~4,000のハッシュ範囲が割り当てられます。
  3. 「Variation 2」には、4,001~6,000のハッシュ範囲が割り当てられます。以降も同様です。
これらのハッシュ範囲は互いに重複しないため、ユーザーごとに1つのバリエーションのみが割り当てられます。また、テストに割り当てられたトラフィック範囲全体を網羅します。

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

戻り値

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

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

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

メソッド。

  1. String variationName = pageSenseClient.getVariationName(experimentName, userName);

パラメーターの詳細

パラメーター

種類

説明

experimentName

String

有効化されたテストの名前です。

userId

String

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


APIの仕組み

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