実験の有効化

実験の有効化

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

Activate Experiment」手順では、ユーザーが Full Stack A/B テストの対象かどうかを判定し、それに応じてバリエーションを割り当てます。これは、アプリケーションがユーザーにどのエクスペリエンスを表示するかを決定するポイントです。

実験のアクティベーションロジックは、PageSense SDK を使用してサーバーサイドのみで実行されます。

これによりできること  

実験をアクティブ化すると、次のことができます。

  • ユーザーが Full Stack 実験の対象かどうかを確認する

  • 対象ユーザーに一貫したバリエーションを割り当てる

  • 割り当てられたバリエーションに基づいてアプリケーションの動作を制御する

  • 同じユーザーがセッションをまたいでも同じバリエーションを見続けられるようにする

実験をアクティブ化するタイミング  

次のタイミングで実験をアクティブ化してください。

  • SDK の初期化が正常に完了した後

  • ユーザーセッションの開始時、またはユーザー ID が利用可能になったタイミング

  • バリエーションごとのレンダリングやロジックを実行する前

メモ: アクティベーションは、SDK の初期化コールバックが完了する前に呼び出さないでください。

ユーザー属性を使用して実験をアクティブ化する  

ユーザー属性は、PageSense で定義されたオーディエンスターゲティングルールに基づき、ユーザーが実験の対象かどうかを判定するのに役立ちます。

KOTLIN

  1. com。Zoho。pagesense。android。abtesting。PageSenseClient をインポートします
  2. // ユーザー属性を保持するマップを作成します
  3. val userAttributes = mutableMapOf(
  4. 'DeviceType' to '電話番号',
  5. 'OS'to 'Android',
  6. 'OSVersion'to '14',
  7. 'DeviceModel'to 'Pixel 8 Pro'
  8. )
  9. // Full Stack A/B テスト実験をアクティブ化します
  10. val variationName = pageSenseClient。activateExperiment(
  11. experimentName,
  12. userId,
  13. userAttributes
  14. )
  15. // バリエーションごとのロジックを処理します
  16. if (variationName == '元の内容') {
  17. // 元の内容バリエーションを処理します
  18. } else if (variationName == 'Variation 1') {
  19. // Variation 1 を処理します
  20. } else if (variationName == 'Variation 2') {
  21. // Variation 2 を処理します
  22. } else if (variationName == 'Variation 3') {
  23. // Variation 3 を処理します
  24. } else {
  25. // ユーザーはこの実験の対象ではありません
  26. }

JAVA

  1. import com.zoho.pagesense.android.abtesting.PageSenseClient;
  2. import java.util.HashMap;
  3. // ユーザー属性を保持するマップを作成
  4. HashMap<String, String> userAttributes = new HashMap<>();
  5. userAttributes.put('DeviceType', 'Phone');
  6. userAttributes.put('OS', 'Android');
  7. userAttributes.put('OSVersion','14');
  8. userAttributes.put('DeviceModel', 'Pixel 8 Pro');
  9. // フルスタック A/B テストの実験を有効化
  10. String variationName = pageSenseClient.activateExperiment(
  11. experimentName,
  12. userId,
  13. userAttributes
  14. );
  15. // バリエーションごとのロジックを処理
  16. if ('Original'.equals(variationName)) {
  17. // Original バリエーションを処理
  18. } else if ('Variation 1'.equals(variationName)) {
  19. // Variation 1 を処理
  20. } else if ('Variation 2'.equals(variationName)) {
  21. // Variation 2 を処理
  22. } else if ('Variation 3'.equals(variationName)) {
  23. // Variation 3 を処理
  24. } else {
  25. // ユーザーが実験のいずれのバリエーションにも属していない場合の処理
  26. }

パラメーター

パラメーター

種類

必須

説明

experimentName

String

はい

PageSense で設定したフルスタック実験の名前。

userId

String

はい

ユーザーを一意かつ安定して識別する ID。セッションをまたいで一貫している必要があります。

userAttributes

Map<String, String>

いいえ

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

レスポンスの理解  

  • ユーザーが実験の条件を満たしている場合、API はユーザーに割り当てられたバリエーション名String 形式で返します。

  • ユーザーがオーディエンスターゲティングやトラフィック配分の条件を満たさない場合、API はnullを返します。

安全なフォールバック動作を確保するため、常にnullが返されるケースをハンドリングしてください。

例外ケース  

シナリオ

結果

実験が見つからない

null を返す

ユーザーがトラフィック配分の対象外

null を返す

オーディエンスターゲティングに失敗

null を返す

SDK が初期化されていない

動作は未定義(初期化が完了する前に呼び出さないでください)

API の動作  

activateExperiment() メソッドが呼び出されると、ユーザーにどのバリエーションを割り当てるかを判断するために、次の手順を実行します。

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

API はまず、ユーザーが PageSense で定義された実験のオーディエンスターゲティングルールを満たしているかどうかを確認します。これらのルールには、ブラウザー、デバイスの種類、OS、ユーザー属性で渡される任意のカスタムプロパティなどのユーザー属性を含めることができます。

  • ユーザーの属性がオーディエンスターゲティング条件と一致する場合、評価が続行されます。

  • 一致しない場合、API は直ちに null を返し、そのユーザーが実験の対象外であることを示します。

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

ユーザーストレージサービスは、データベース、Redis キャッシュ、ファイルシステムなど、ユーザーが用意したストレージレイヤーに、特定の実験でユーザーに割り当てられたバリエーションを保存します。これにより、異なるセッションやブラウザー間でも、同じ A/B テストに対して常に同じバリエーションがユーザーに割り当てられるようになります。

  • 対象のユーザー ID と実験に対して、すでに保存済みのバリエーションが存在する場合は、ストレージから取得され、そのまま返されます。

  • 存在しない場合、SDK はハッシュアルゴリズムを使用して新しいバリエーションの割り当てを行います。

3. MurmurHash によるハッシュ化   

ユーザー ID と実験キーを結合して一意のキーを作成し、この一意のキーに MurmurHash アルゴリズムを適用して、0 ~ 9999 の範囲の決定論的な数値を生成します。

このハッシュ値によって、実験のトラフィック配分範囲内でのユーザーの位置が決まり、割り当てるバリエーションが決定されます。

  • MurmurHash は、同じユーザー ID と実験キーの組み合わせに対して、常に同じハッシュ値を生成します。

  • これにより、異なるセッションやブラウザー間でも、ユーザーは常に一貫したバリエーションが割り当てられます。

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

実験内の各バリエーションには、割り当てられたトラフィック割合(%)に基づいて値の範囲が割り当てられます。例えば、トラフィック配分 80% の A/B テスト実験で、4 つのバリエーションにそれぞれ 25% ずつトラフィックを割り当てる場合、4 つのバリエーションの値の範囲は次のように割り当てられます。

バリエーション

値の範囲

元の内容

0 – 2000

Variation 1

2001 – 4000

Variation 2

4001 – 6000

Variation 3

6001 – 8000

 

これらの範囲は重複せず、実験に割り当てられたトラフィックの合計を網羅します。

  • ユーザーのハッシュ値が特定のバリエーションの範囲内に入る場合、そのバリエーションがユーザーに割り当てられます。

  • ユーザーのハッシュ値が、バリエーションに割り当てられたすべての範囲外である場合、ユーザーにはいずれのバリエーションも割り当てられず、そのユーザーは実験の対象外となり、バリエーションには NULL が返されます。

5. トラッキングと分析


バリエーションが割り当てられると、次の処理が行われます。

API は PageSense へのユーザー訪問のトラッキング処理を開始し、実験名、ユーザー ID、バリエーション名、および(渡された場合は)ユーザー属性の詳細を記録します。

6. 返される値  


結果

返される値

ユーザーが対象となり、バリエーションが割り当てられた場合

バリエーション名を返す

ユーザーがオーディエンスターゲティングルールに一致しない場合

NULL を返す

ユーザーがトラフィック配分の範囲外である場合

NULL を返す


ユーザー属性なしで実験をアクティブ化する  

場合によっては、ユーザー属性を渡さずにフルスタック実験をアクティブ化したいことがあります。これは次のような場合に便利です。

  • ユーザー属性がまだ利用できない場合

  • 実験のターゲットがすべての訪問者

  • バリエーションの割り当てに、ユーザー識別子だけを利用したい場合

ユーザー属性が指定されていない場合、SDK は追加のオーディエンス条件を必要としない実験に対してのみ、そのユーザーを評価します。

KOTLIN & JAVA

  1. // ユーザー属性なしでフルスタック A/B テスト実験をアクティブ化する
  2. val variationName = pageSenseClient。activateExperiment(
  3. experimentName,
  4. userId
  5. )

重要なメモ  

  • ユーザー属性が指定されていない場合に対象となるのは、すべての訪問者をターゲットにした実験のみです。

  • 同じユーザー ID に対するバリエーションの割り当ては決定的(再現性あり)なままです。

  • 安全なフォールバック動作を確保するため、常にnullの場合をハンドリングしてください。

ベストプラクティス  

  • (ユーザー ID やアカウント ID などの)安定したユーザー識別子を使用します。

  • ユーザー属性は、利用可能な場合にのみ渡してください。

  • 同じユーザーセッションに対して、activateExperimentを複数回呼び出すことは避けてください。

  • 実験の対象外となるユーザーも必ず考慮して処理してください。

 


    Zoho CRM 管理者向けトレーニング

    「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。

    日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。

    Zoho CRM Training



              Zoho Campaigns Resources

                Zoho WorkDrive Resources




                  • Desk Community Learning Series


                  • Digest


                  • Functions


                  • Meetups


                  • Kbase


                  • Resources


                  • Glossary


                  • Desk Marketplace


                  • MVP Corner


                  • Word of the Day


                  • Ask the Experts









                                  • Related Articles

                                  • AndroidフルスタックSDKの初期設定

                                    お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 PageSense Android フルスタック SDK をインストールしたら、次の手順としてプロジェクト設定を使って SDK を初期化します。初期化を行うことで、アプリが PageSense と接続され、実験を実行するために必要なフルスタックプロジェクト設定が読み込まれます。 ...
                                  • Android SDKのインストール方法

                                    お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 PageSense Android フルスタック SDK を使用すると、Android アプリケーションから直接、サーバーサイドの A/B テストを実行し、実験結果を計測できます。インストールが完了すると、アプリはフルスタック実験に参加し、主要な分析データの収集を開始できます。 ...

                                  Resources

                                  Videos

                                  Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                  eBooks

                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                  Webinars

                                  Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                  CRM Tips

                                  Make the most of Zoho CRM with these useful tips.