getVariationName() メソッドは、フルスタック A/B テスト実験で、指定したユーザーに割り当てられたバリエーション名を取得します。
この API は、ユーザーに割り当てられたバリエーションのみを返し、PageSense へのトラッキング処理は行いません。単にユーザーがどのバリエーションに割り当てられるべきかを知りたいだけで、アクティベーションイベントを発火させたくない場合に使用します。
メソッドの呼び出し
|
Parameter |
種類 |
説明 |
|
experimentName |
string |
バリエーションを取得する対象の実験名。 |
|
userId |
string |
ユーザーを一意に識別する ID。 |
|
userAttributes |
array |
(任意) オーディエンスのターゲティングとセグメンテーションに使用する、ユーザー属性の連想配列。 |
返される値
ユーザーがフルスタック A/B テストの対象となる場合、割り当てられたバリエーションの名前を返します。
ユーザーがオーディエンスのターゲティング条件を満たさない、または実験のトラフィック配分外である場合は、NULLを返します。
コード例
getVariationName() メソッドが呼び出されると、どのバリエーションをユーザーに割り当てるかを判断するために、一連のステップを実行します。
まず API は、ユーザーが PageSense で定義されたオーディエンスターゲティング条件を満たし、実験の対象となるかどうかを評価します。
ターゲティング条件には通常、ブラウザー、デバイス種別、オペレーティングシステム、または ユーザー属性 で渡す任意のカスタムユーザーデータなどの属性が含まれます。
ユーザーがターゲティング条件に一致する 場合 → 処理が続行されます。
ユーザーがターゲティング条件に一致しない 場合 → 返されるバリエーションは NULL になります。
ユーザーストレージサービスは、データベース、Redis キャッシュ、ファイルシステムなど、ユーザーが用意したストレージレイヤーに、特定の実験に対してユーザーに割り当てられたバリエーションを保存します。これにより、異なるセッションやブラウザー間でも、同じ A/B テストについてユーザーには常に同じバリエーションが割り当てられるようになります。
指定された実験の ユーザー ID に対して、すでに保存済みのバリエーションが存在する場合は、そのバリエーションがストレージから取得されて返されます。
存在しない場合、SDK はハッシュアルゴリズムを使用して新しいバリエーションを割り当てます。
ユーザー ID と実験キーを組み合わせて一意のキーを作成し、この一意のキーに対して API が MurmurHash アルゴリズム を適用して、0 〜 9999 の数値を生成します。
MurmurHash アルゴリズムは、同じ ユーザー ID と実験キー の組み合わせに対しては、常に同じハッシュ値を生成します。これにより、異なるセッションやブラウザー間でも、同じ実験についてユーザーには常に同じバリエーションが割り当てられることが保証されます。
生成されたハッシュ値は、その実験の合計トラフィック配分と、各バリエーションに割り当てられた個別トラフィックに基づいて、ユーザーがどのバリエーションに属するかを判定するために使用されます。
|
バリエーション |
ハッシュ値の範囲 |
|
元の内容 |
0 – 2000 |
|
バリエーション 1 |
2001 – 4000 |
|
バリエーション 2 |
4001 – 6000 |
|
バリエーション 3 |
6001 – 8000 |
ユーザーのハッシュ値がこれらの範囲のいずれかに入る場合 → そのバリエーションが返されます。
ユーザーのハッシュ値が定義されたすべての範囲外にある場合 → ユーザーは実験のいずれのバリエーションにも属さず、NULLが返されます。
|
シナリオ |
返される値 |
|
ユーザーが条件を満たし、バリエーションが割り当てられている |
バリエーション名 |
|
ユーザーがオーディエンスターゲティング条件を満たさない |
NULL |
|
ユーザーがトラフィック配分の範囲外にある |
NULL |
getVariationName() API は、ユーザー属性なしでも呼び出すことができます。現在、この種類の API 呼び出しは、「すべての訪問者」をターゲットにした実験でのみ使用できます。特定のオーディエンスターゲティング条件が設定されている実験では使用できません。これは、この API 呼び出しではユーザー属性が渡されないため、ユーザーがオーディエンスターゲティング条件に一致しないためです。
メソッドの呼び出し方法
動作方法
必須なのは、ExperimentName とユーザー ID のみです。
オーディエンスターゲティングは引き続き実行されますが、ユーザー属性が渡されないため:
ユーザーが対象となるのは、「すべての訪問者」をターゲットにした実験のみです。
ユーザーは、対象になりません ユーザー属性が利用できないため、特定のオーディエンスターゲティング条件が設定されている実験には参加できません。
ユーザーが対象となった後、API は MurmurHash ベースのバケッティングを使用して、割り当てるバリエーションを決定します。
ユーザーのハッシュ値が実験のトラフィック配分の範囲外にある場合 → NULLを返します。
常に一貫性があり一意なユーザー ID(例:ログイン ID、メールアドレスなど)を使用してください。ユーザー ID にセッション ID を使用することは避けてください。セッション ID は頻繁に変更されるため、セッションごとに異なるバリエーションがユーザーに配信されてしまいます。
NULL が返される場合を常に適切に処理してください。バリエーションが NULL として返された場合に備えて、フォールバック実装を追加しておきましょう。
頻繁にアクセスするユーザーについては、ハッシュの評価を繰り返さないよう、バリエーション割り当てをキャッシュすることを検討してください。
アプリケーション全体で一貫したオーディエンスターゲティングとレポートのセグメント化を行うために、ユーザー属性のキーには同じ名前を使用してください。
Web ページ上でバリエーションのみをレンダリングしたい場合は getVariationName() API を使用し、アクティベーションイベントもトラッキングしたい場合は activateExperiment() API を使用してください。
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。