activateExperiment() メソッドは、指定したユーザーに対して Full Stack A/B テストの実験を有効化するために使用します。このメソッドは、オーディエンスターゲティングルールに基づいてユーザーが実験の対象かどうかを判定し、対象である場合は対応するバリエーションを割り当てます。
メソッドの呼び出し
メソッドパラメーター
|
パラメーター |
種類 |
説明 |
|
experimentName |
string |
有効化する実験の名前。 |
|
userId |
string |
ユーザーを一意に識別する ID。 |
|
userAttributes |
array |
(任意) オーディエンスターゲティングおよびセグメンテーションに使用する、ユーザー属性の連想配列。 |
返される値
ユーザーが Full Stack A/B テストの対象となる場合、割り当てられたバリエーションの名前を返します。
ユーザーが実験の対象とならない場合は null を返します。これは、ユーザーが実験のオーディエンスターゲティングルールに一致しないか、実験に割り当てられたトラフィックの範囲外である場合に発生します。
使用例
activateExperiment() メソッドが呼び出されると、バリエーションをユーザーに割り当てるべきかどうかを判断するために、次の手順で処理が行われます。
まず API は、ユーザーが PageSense で定義された実験のオーディエンスターゲティングルールを満たしているかどうかを確認します。これらのルールには、ブラウザー、デバイスの種類、OS などのユーザー属性や、ユーザー属性で渡された任意のカスタムプロパティを含めることができます。
ユーザーの属性がオーディエンスターゲティング条件と一致する場合、評価は次のステップに進みます。
一致しない場合、API はnullをすぐに返し、そのユーザーがこの実験の対象外であることを示します。
ユーザー ストレージサービスは、データベース、Redis キャッシュ、ファイルシステムなど、ユーザーが用意したストレージレイヤーに、特定の実験に対してユーザーに割り当てられたバリエーションを保存します。これにより、異なるセッションやブラウザー間でも、同じ A/B テストに対して常に同じバリエーションがユーザーに割り当てられるようになります。
指定された実験のユーザー ID に対して、すでに保存済みのバリエーションが存在する場合は、ストレージから取得して返します。
存在しない場合、SDK はハッシュアルゴリズムを使用して新しいバリエーションを割り当てます。
ユーザー ID と実験キーを結合して一意のキーを作成し、この一意のキーに対して MurmurHash アルゴリズムを適用して、0 ~ 9999 の範囲の決定論的な数値を生成します。
このハッシュ値により、実験のトラフィック配分範囲におけるユーザーの位置が決まり、その位置に応じてバリエーションが割り当てられます。
MurmurHash は、同じユーザー ID と実験キーの組み合わせに対して、常に同じハッシュ値を生成します。
これにより、異なるセッションやブラウザー間でも、ユーザーは常に一貫したバリエーションが割り当てられます。
実験内の各バリエーションには、割り当てられたトラフィック割合(%)に基づいて値の範囲が設定されます。例えば、トラフィック配分 80% の A/B テスト実験で、4 つのバリエーションにそれぞれ 25% ずつトラフィックを割り当てる場合、4 つのバリエーションの値の範囲は次のようになります。
|
バリエーション |
値の範囲 |
|
元の内容 |
0 – 2000 |
|
Variation 1 |
2001 – 4000 |
|
Variation 2 |
4001 – 6000 |
|
Variation 3 |
6001 – 8000 |
これらの範囲は互いに重複せず、実験に割り当てられたトラフィック全体をカバーします。
ユーザーのハッシュ値が特定のバリエーションの範囲内に入る場合、そのバリエーションがユーザーに割り当てられます。
ユーザーのハッシュ値が、いずれのバリエーションにも割り当てられている範囲外の場合は、ユーザーにはバリエーションが割り当てられず、そのユーザーは実験の対象外となり、バリエーションとしては NULL が返されます。
バリエーションが割り当てられると、次の処理が行われます。
API は PageSense へのユーザー訪問のトラッキング処理を開始し、実験名、ユーザー ID、バリエーション名、および(渡された場合は)ユーザー属性の詳細を記録します。
|
結果 |
返される値 |
|
ユーザーが条件を満たし、バリエーションが割り当てられた場合 |
バリエーション名を返します |
|
ユーザーがオーディエンスターゲティングルールに一致しない場合 |
NULL を返します |
|
ユーザーがトラフィック配分の範囲外である場合 |
NULL を返します |
メソッドの呼び出し
動作方法
必須なのは、実験名とユーザー ID のみです。
オーディエンスターゲティングは引き続き評価されます。ただし、
実験のターゲットが「すべての訪問者」の場合、そのユーザーは実験の対象になります。
実験に特定のオーディエンスターゲティング条件が含まれている場合は、ユーザー属性が指定されていないため、そのユーザーは実験の対象外となります。
その後、API は MurmurHash アルゴリズムを適用して、割り当てるバリエーションを決定します。
ユーザーのハッシュ値がいずれかのバリエーションの定義済み範囲内に入る場合は、その一致したバリエーションが返されます。そうでない場合は、バリエーションとしてNULLが返されます。
常に一貫性のある一意のユーザー ID(例:ログイン ID、メールアドレスなど)を使用してください。ユーザー ID にセッション ID を使用すると、頻繁に変更されるため、セッションごとに異なるバリエーションが配信されてしまう可能性があります。
常に NULL の返却を適切に処理してください。バリエーションが NULL として返された場合に備えて、フォールバック実装を追加しておきます。
頻繁にアクセスするユーザーについては、ハッシュの再評価を避けるために、バリエーションの割り当て結果をキャッシュすることをおすすめします。
アプリケーション全体で、ユーザー属性のキーには同じ名前を使用し、オーディエンスターゲティングとレポートのセグメントの一貫性を確保してください。
本ドキュメントが、お客様の作業の一助となれば幸いです。さらに説明が必要な場合やご不明な点がありましたら、いつでも support@zohopagesense.com までメールでお問い合わせください。
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。