PageSenseのtrackGoal() メソッドは、目標コンバージョンをフルスタックA/Bテストで記録するために使用します。PageSenseでは、テストの対象となるユーザーのコンバージョンイベントのみが記録されます。
このAPIは、テストのオーディエンスターゲティングルールの設定に応じて、ユーザー属性を指定して、または指定せずに呼び出すことができます。
メソッドの呼び出し
メソッドのパラメーター
|
パラメーター |
種類 |
説明 |
|
experimentName |
文字列 |
目標が設定されているテスト名。 |
|
userId |
文字列 |
ユーザーを識別する一意のID。 |
|
goalName |
文字列 |
追跡する目標の名前。 |
|
userAttributes |
配列 |
(任意)オーディエンスのターゲティングとセグメント化に使用するユーザー属性の連想配列。 |
本APIメソッドを呼び出す際は、以下を確認してください。
目標を追跡するWebページで、テストが有効になっていること。
目標に関連付けられたコンバージョン条件を満たした場合にのみ、メソッドを呼び出すこと。
ユーザーがテストの対象となる場合、目標コンバージョンが記録され、PageSenseサーバーに送信されます。
ユーザーがテストの対象外である場合、またはテストのトラフィックの割り当て対象外である場合、APIはコンバージョン要求を通知せずに無視します。
サンプルコード
trackGoal()メソッドを呼び出すと、PageSenseに目標コンバージョンを記録する前に、一連の検証処理が実行されます。
PageSenseで定義されたオーディエンスターゲティング条件に基づき、ユーザーがテストの対象となるかどうかをAPIが確認します。
これらの条件には通常、ブラウザー、デバイスの種類、OS、またはユーザー属性で渡された個別指定の項目が含まれます。
ユーザー属性がオーディエンスターゲティング条件に一致する場合、評価が続行されます。
ユーザー属性がオーディエンスターゲティング条件に一致しない場合、目標コンバージョンの詳細はPageSenseに送信されません。
次にAPIは、ユーザーがテストのトラフィックの割り当て範囲内に該当するかどうかを確認します。
ユーザーストレージサービスが有効な場合、SDKはユーザーに以前割り当てられたバリエーションを取得します(セッションをまたいで一貫したトラッキングを行うためです)。
保存されたバリエーションがない場合、決定論的バケット割り当て(ハッシュに基づく)を使用して新規バリエーションが割り当てられます。
その後、SDKはMurmurHashアルゴリズムをユーザーID(userId)に適用し、0~9,999の数値ハッシュを生成します。
テスト内の各バリエーションには、そのトラフィックの割合(%)に対応する固有のハッシュ範囲が割り当てられます。
|
バリエーション |
ハッシュ範囲 |
|
オリジナル |
0 – 2,000 |
|
バリエーション1 |
2,001 – 4,000 |
|
バリエーション2 |
4,001 – 6,000 |
対象条件を満たし、目標条件がトリガーされると、次の処理が行われます。
SDKは、テスト名、ユーザーID、目標名、バリエーションIDをパッケージ化します。
このコンバージョンイベントを、安全なHTTPS要求を使用してPageSenseのバックエンドに送信します。
このデータは、テストのダッシュボードに表示されるコンバージョン指標、勝率、信頼度レポートに使用されます。
|
条件 |
SDKの動作 |
|
ユーザーが対象条件を満たし、目標が達成済み |
目標イベントをPageSenseに送信 |
|
ユーザーが対象条件を満たしていない |
通知せずに呼び出しを無視 |
|
ネットワークエラー/無効なSDKキー |
エラーをログに記録し(ログが有効な場合)、自動的には再試行しない |
ユーザー属性を指定せずにAPIを呼び出すこともできます。
メソッドの呼び出し
必要なのは、テスト名、ユーザーID、目標名のみです。
オーディエンスのターゲティングは引き続き実行されますが、ユーザーがテストの対象となるのは、オーディエンスのターゲティング条件が「すべての訪問者」の場合のみです。特定のオーディエンスターゲティングルール(例:デバイス=モバイル)が設定されたテストでは、ユーザー属性が渡されないため、ユーザーはテストの対象になりません。
ユーザーがテストの対象となる場合、APIはMurmurHashアルゴリズムを使用してバリエーションを決定し、割り当てられたバリエーションに対して目標を記録します。
ユーザーがテストの対象とならない場合、コンバージョンイベントは発生しません。
コンバージョンイベントの直後に、必ずtrackGoal()APIを呼び出します。
決定論的な動作を確保するため、すべてのSDKメソッドで同じユーザーID値を使用します。
バックエンドでジョブやキューを使用してコンバージョンを非同期に処理する場合は、後処理の段階にSDKの呼び出しを含めてください。
何も処理されない場合でも、適切に対応してください。すべてのユーザーが追跡の対象になるとは限りません。