ユーザーの識別とバケット化
ユーザー ID
Adobe Target 内でユーザーを識別する方法は複数あります。 Target では、次の識別子を使用します。
tntID
tntId
は、ユーザーの Target のプライマリ識別子です。 この ID を指定できます。指定しない Target、リクエストに ID が含まれていない場合は自動生成されます。thirdPartyId
thirdPartyId
は、ユーザーに対する会社の識別子で、呼び出しごとに送信できます。 ユーザーが会社のサイトにログインすると、会社は通常、訪問者のアカウント、ロイヤルティカード、メンバーシップ番号、またはその会社に適用されるその他の識別子に関連付けられた ID を作成します。marketingCloudVisitorId
marketingCloudVisitorId
は、異なるAdobeソリューション間でデータを結合して共有するために使用されます。 marketingCloudVisitorId は、Adobe AnalyticsおよびAdobe Audience Managerとの統合に必要です。customerIds
Target ID (tntID)
Target ID または tntId
は、デバイス ID と見なすことができます。 この tntId
は、リクエストで指定されていない場合、Adobe Target によって自動的に生成されます。 同じユーザーが使用するデバイスに適切なコンテンツを配信するには、後続のリクエストでこの tntId
を含める必要があります。
次の呼び出し例は、tntId
が Target に渡されない状況を示しています。
code language-javascript line-numbers |
---|
|
code language-java line-numbers |
---|
|
tntId
がない場合、Adobe Target は tntId
を生成し、次のように応答で提供します。
{
"status": 200,
"requestId": "5b586f83-890c-46ae-93a2-610b1caa43ef",
"client": "acmeclient",
"id": {
"tntId": "10abf6304b2714215b1fd39a870f01afc.35_0"
},
"edgeHost": "mboxedge35.tt.omtrdc.net",
...
}
この例では、生成された tntId
は 10abf6304b2714215b1fd39a870f01afc.35_0
です。 この tntId
は、セッションをまたいで同じユーザーに対して使用する必要があることに注意してください。
サードパーティ ID (thirdPartyId)
組織が ID を使用して訪問者を識別する場合は、thirdPartyID
を使用してコンテンツを配信できます。 thirdPartyID
は、Web、モバイル、IoT チャネルのいずれかからビジネスとやり取りするかに関係なく、エンドユーザーを識別するためにビジネスで使用される永続的な ID です。 つまり、thirdPartyId
は、チャネルをまたいで利用できるユーザープロファイルデータを参照します。 ただし、行う Adobe Target Delivery API 呼び出しごとに thirdPartyID
を指定する必要があります。
次の呼び出し例では、thirdPartyId
の使用方法を示しています。
code language-javascript line-numbers |
---|
|
code language-java line-numbers |
---|
|
このシナリオでは、元の呼び出し Adobe Target 渡されなかったので、tntId
が生成され、指定された thirdPartyId
にマッピングされます。
Marketing Cloud訪問者 ID (marketingCloudVisitorId)
marketingCloudVisitorId
は、Adobe Experience Cloudのすべてのソリューションをまたいで訪問者を特定する、普遍的で永続的な ID です。 ID サービスを実装する場合、この ID を使用すると、Adobe Target、Adobe Analytics、Adobe Audience Managerなど、様々なExperience Cloudソリューションで同じサイト訪問者とそのデータを特定できます。 Target を Adobe Analytics および Adobe Audience Manager と統合する場合、marketingCloudVisitorId
が必要であることに注意してください。
次の呼び出し例は、Experience CloudID サービスから取得された marketingCloudVisitorId
を Target に渡す方法を示しています。
code language-javascript line-numbers |
---|
|
code language-java line-numbers |
---|
|
このシナリオでは、元の呼び出し Target 渡されなかったので、tntId
が生成され、指定された marketingCloudVisitorId
にマッピングされます。
顧客 ID (customerIds)
顧客 ID は、Experience Cloudの訪問者 ID に追加したり、関連付けたりできます。 customerIds
を送信する場合は常に、marketingCloudVisitorId
も指定する必要があります。 さらに、各訪問者毎に、各 customerId
と共に認証状況を提供することができる。 次の認証ステータスを使用できます。
unknown
authenticated
logged_out
customerId
ーザーが認証状態にある場合にのみ、customerId に保存およびリンクされているユーザープロファイルデータを参照で Target ます。 customerId
が不明な状態または logged_out
の状態の場合、無視され、その customerId
に関連付けられている可能性のあるユーザープロファイルデータは、オーディエンスのターゲティングに利用されません。
code language-javascript line-numbers |
---|
|
code language-java line-numbers |
---|
|
上の例は、authenticatedState
を持つ customerId
を送信する方法を示しています。 customerId
を送信する場合、integrationCode
、id
、authenticatedState
および marketingCloudVisitorId
が必要です。 integrationCode
は、CRS で指定した 顧客属性ファイルのエイリアスです。
結合プロファイル
tntId
、thirdPartyID
、marketingCloudVisitorId
を同じリクエストで組み合わせることができます。 このシナリオ Adobe Target は、これらすべての ID のマッピングを維持し、訪問者にピン留めします。 様々な識別子を使用してプロファイルを リアルタイムで結合および同期する方法について説明します。
code language-javascript line-numbers |
---|
|
code language-java line-numbers |
---|
|
上記の例は、tntId
、thirdPartyID
、marketingCloudVisitorId
を同じリクエストで組み合わせる方法を示しています。
バケット化
Adobe Target アクティビティの設定方法に応じて、ユーザーはエクスペリエンスの表示にバケット化されます。 Adobe Target では、バケット化は次のようになります。
- 決定論的:MurmurHash3 は、ユーザー ID が一貫している限り、ユーザーのバケット化を確実に行い、毎回適切なバリエーションを表示するために使用されます。
- スティッキー:Adobe Target は、ユーザーに表示されるバリエーションをユーザープロファイルに保存し、セッションやチャネルをまたいでバリエーションが一貫してユーザーに表示されるようにします。 サーバー側の決定を使用する場合、バリエーションと粘着性が保証されます。 オンデバイス判定を使用すると、べたつきが保証されません。
エンドツーエンドのバケット化ワークフロー
実際のバケット化アルゴリズムを詳しく説明する前に、トラフィック割り当ての割合に基づいてアクティビティを選択する場合と、アクティビティ内のエクスペリエンスを選択する場合の両方で同様の手順が使用されていることをハイライトしておくことが重要です。
アクティビティ選択手順
- デバイス ID (通常は UUID)を生成します
- クライアントコードの取得
- アクティビティ ID の取得
- salt (通常は「activity」のような文字列)を取得します。
- MurmurHash3 を使用してハッシュを計算
- ハッシュの絶対値を取得します
- ハッシュの絶対値を 10000 で除算します
- 残りを 10000 で割ると、0 ~ 1 の値が得られます
- 結果に 100% を掛けます
- アクティビティのトラフィック割り当ての割合を、取得した割合と比較します。 トラフィック配分の割合が低い場合は、アクティビティが選択されます。 それ以外の場合は、アクティビティはスキップされます。
エクスペリエンス選択手順
- デバイス ID (通常は UUID)を生成します
- クライアントコードの取得
- アクティビティ ID の取得
- 塩を入手します。通常は「経験」のような文字列です
- MurmurHash3 を使用してハッシュを計算
- ハッシュの絶対値を取得します
- ハッシュの絶対値を 10000 で除算します
- 残りを 10000 で割ると、0 ~ 1 の値が得られます
- 結果にアクティビティ内のエクスペリエンスの合計数を掛けます
- 結果を丸めます。 これにより、エクスペリエンスインデックスが生成されます。
例
次の例を想定します。
- クライアント コード
acmeclient
を使用するクライアント C - ID
1111
と 3 つのエクスペリエンス(E1
、E2
、E3
)を持つアクティビティ A - エクスペリエンスの配分は、
E1
~ 33%、E2
~ 33%、E3
~ 34% です。
選択フローは次のようになります。
- デバイス ID
702ff4d0-83b1-4e2e-a0a6-22cbe460eb15
- クライアントコード
acmeclient
- アクティビティ ID
1111
- 塩
experience
- ハッシュ値
acmeclient.1111.702ff4d0-83b1-4e2e-a0a6-22cbe460eb15.experience
、ハッシュ値-919077116
- ハッシュ
919077116
の絶対値 - 10000、
7116
で除算した後の剰余 - 剰余の後の値を 10000、
0.7116
で割る - エクスペリエンスの合計数に値を乗じた結果
3 * 0.7116 = 2.1348
- エクスペリエンスインデックスは
2
です。これは、0
ベースのインデックスを使用しているので、3 番目のエクスペリエンスを意味します。