データ収集でのidentityMapの使用

identityMap ペイロードオブジェクトは、訪問者がデバイスレベル ECIDを超えているEdge Networkを識別する方法です。 訪問者がログインしたり、購入を完了したり、その他の方法で既知になったりすると、個人レベルのID (CRM ID、ハッシュメール、ロイヤルティ IDなど)をECIDと一緒に送信できます。 これらの個人レベルのIDは、下流のサービスに貴重な情報を提供し、次のことを可能にします。

  • 複数のデバイスとチャネルをまたいでアクティビティを個人に結び付けます。 ID サービス ​は、送信したIDをID グラフ ​にリンクし、匿名のデバイス レベルの動作を既知の人物に接続します。
  • 統合顧客プロファイルの構築。 ​ リアルタイム顧客プロファイル ​は、イベントと属性を単一のプロファイルに固定するために設定したプライマリ IDを使用し、個人レベルのセグメンテーションとオーディエンスの構築を可能にします。
  • 下流の宛先でオーディエンスをアクティブ化します。​多くの宛先では、オーディエンスをユーザーベースに一致させるために、解決された個人レベルのID (ハッシュ化された電子メール、電話番号など)が必要です。
  • クロスチャネルジャーニーのオーケストレーション。 Journey Optimizerは、解決済みのIDを使用して、訪問者の認証済みの行動に基づいて、電子メール、プッシュ通知、アプリ内チャネルをまたいでジャーニーをトリガーし、パーソナライズします。

このページでは、identityMap ペイロードを構築し、各IDに適切な設定を選択し、一般的な実装シナリオを処理する方法について説明します。

ペイロード構造 structure

identityMapはJSON オブジェクトです。各トップレベル キーは名前空間で、値はID記述子の配列です。 1つのペイロードに1つ以上の名前空間を含めることができ、各記述子にはidauthenticatedStateprimaryの3つのフィールドが含まれます。

{
  "identityMap": {
    "CRMID": [
      {
        "id": "abc-123-xyz",
        "authenticatedState": "authenticated",
        "primary": true
      }
    ]
  }
}
フィールド
タイプ
必須
説明
id
文字列
識別子の値(例:user@example.comまたはABC123)。
authenticatedState
文字列
このIDが訪問者のものであることを自信を持って知っています。 有効な値には、ambiguousauthenticatedおよびloggedOutが含まれます。
primary
ブール
このIDをイベントのプライマリ IDにするかどうか。 すべての名前空間に対して1つのIDを正確にマークする必要がありますprimary: true

以下のセクションでは、ペイロードの各部分について詳しく説明します。

名前空間キー namespace-keys

identityMapの各トップレベル キーはID名前空間です。識別子の種類を分類する文字列(CRMIDEmailPhone、またはLoyaltyIdなど)です。 名前空間は、ペイロードで参照する前にID サービスに存在する必要があります。 訪問者に複数の識別子がある場合、同じイベントに複数の名前空間キーを含めることができます。

ECIDを名前空間キーとして含める必要はありません。 Edge Networkは、ECIDをID ペイロードに自動的に追加します。 ECIDを明示的に含める場合は、個人レベルのIDも存在する場合は、primaryとしてマークしないでください。

id id

id フィールドは、識別子文字列自体です。このIDがどの特定の個人またはデバイスを表しているかをExperience Platformに伝える値です。 各ID名前空間には特定の値の形式が必要です。誤った形式で値を送信すると、正しい形式のバージョンと結合できない個別のIDが作成され、プロファイルが断片化されます。

identityMapに値を含める前に、ターゲット名前空間で想定される形式に従って値を準備します。

一般的な名前空間タイプ
価値創出のための準備方法
CRM / 内部ID
記録システムが割り当てた正確なIDを使用します。 すべてのイベント(大文字と小文字、先頭のゼロ、接頭辞)で形式の一貫性を維持します。
ABC-12345, 00098765
電子メール (未加工)
電子メールアドレス全体を小文字にし、先頭と末尾の空白をトリミングします。
user@example.com
電子メール (ハッシュ化)
最初にメールアドレスを小文字にしてトリミングし、次にSHA-256でハッシュします。 結果の64文字の16進文字列を送信します。 名前空間の定義が必要でない限り、saltを追加しないでください。
a1b2c3d4e5f6a7b8c9...
電話(E.164)
E.164の数値を書式設定します。先頭の+、国コード、およびスペースや句読点のない購読者番号を指定します。
+15551234567
FPID
UUIDv4文字列を生成します。 生成要件については、​ ファーストパーティデバイス IDを参照してください。
123e4567-e89b-42d3-9456-426614174000

標準の名前空間とその定義の完全なリストについては、ID名前空間の概要を参照してください。

TIP
id値では大文字と小文字が区別されます。 User@Example.comuser@example.comは2つの別々のIDとして扱われます。 値を送信する前にケーシングを正規化し(通常は電子メールを小文字にし、空白をトリミングします)、グラフに重複するIDが作成されないようにします。

実行時にidを収集しています collect-id

必要な識別子がページ上で直接利用可能になることはほとんどありません。 一般的な収集戦略には、次のものがあります。

  • データレイヤー:訪問者がログインした後、サイトのデータレイヤーから識別子を読み取ります。 この場所は、データレイヤーがアプリケーションのバックエンドによって入力され、認証済みセッションの状態を反映するため、最も信頼性の高いアプローチです。
  • 認証トークンまたはセッション Cookie:認証システムが設定したJWTまたはセッション Cookieから識別子をデコードまたは検索します。 値を使用する前に、トークンがまだアクティブであることを検証します。
  • サーバーサイドのエンリッチメント: Data Prep for Data Collectionまたは​ イベント転送ルール ​を使用して、EdgeでIDをマッピングまたは変換してから、ダウンストリームサービスに到達します。 この場所は、クライアントがサーバーサイドの内部IDにマッピングする不透明なセッショントークンのみを持っている場合に便利です。
TIP
指定されたid値が空の文字列、nullまたはundefinedに解決される場合、identityMapに名前空間を含めないでください。 空のidを送信すると、壊れたID レコードが作成されます。 ペイロードを構築する前に、チェックを行って実装を監視します。

authenticatedState authenticated-state

authenticatedState フィールドは、特定のIDにどの程度の信頼度を割り当てるかをダウンストリームサービスに伝えます。 このフィールドには次の値が有効です。

使用するタイミング
authenticated
訪問者は、現在のセッション中に積極的にIDを証明しました(資格情報を使用したログイン、MFAの完了、または同様の検証など)。
loggedOut
訪問者は以前に認証されましたが、その後ログアウトしています。 IDは引き続きデバイスに関連付けられますが、セッションはアクティブではありません。
ambiguous
IDが現在の訪問者に属していることを確認できません。 この値は、FPIDなどのデバイスレベルの識別子や、まだ認証が行われていない識別子に使用します。
TIP
authenticatedState値は、Adobe Experience Platform Identity ServiceがID グラフを構築および結合する方法に影響します。 確認されていないIDにauthenticatedを送信すると、取り消しにくい不正なクロスデバイスリンクが作成される可能性があります。

primary primary-identity

identityMap ペイロードごとに、primary: trueとしてマークされたIDを1つだけ持つ必要があります。 プライマリ IDは、Experience Platformでイベントのアンカーとして使用されるIDを決定します。

プライマリ IDを設定する場合は、次のガイドラインに従ってください。

  • 個人レベルのIDが使用可能な場合 (訪問者がログインしている場合)、個人レベルの名前空間をプライマリとして、ECIDを非プライマリとしてマークします。 これにより、Experience Platformは、デバイスではなく個人にイベントを固定するように指示されます。
  • デバイスレベルのIDのみが使用可能な場合 (訪問者が匿名の場合)、ECIDがプライマリ IDとして自動的に使用されます。 identityMapにECIDを含める必要はありません。Edge Networkが自動的に追加します。
{
  "identityMap": {
    "CRMID": [
      {
        "id": "abc-123-xyz",
        "authenticatedState": "authenticated",
        "primary": true
      }
    ],
    "Email": [
      {
        "id": "user@example.com",
        "authenticatedState": "authenticated",
        "primary": false
      }
    ]
  }
}

実装でのIDMapの送信 send-identity

JavaScript library

identityMap呼び出しのxdm オブジェクトにsendEventを渡します。

code language-js
alloy("sendEvent", {
  xdm: {
    identityMap: {
      CRMID: [
        {
          id: "abc-123-xyz",
          authenticatedState: "authenticated",
          primary: true
        }
      ]
    },
    eventType: "web.webpagedetails.pageViews"
  }
});
Web SDK タグ拡張機能

タグ UIでID ペイロードを構築するには、ID マップ ​ データ要素タイプを使用します。

  1. Adobe Experience Platform Web SDK​拡張機能と​Identity map データ要素タイプを使用してデータ要素を作成します。

  2. 名前空間、識別子に解決するデータ要素または値、および認証状態を指定して、IDを追加します。

  3. 1つのIDをプライマリとしてマークします。

  4. このデータ要素は、Send event​の下の​Identity map アクションで参照してください。

一般的なシナリオ common-scenarios

ログイン

訪問者がログインしたら、個人レベルのIDをauthenticatedState: "authenticated"primary: trueで送信します。 このIDは、認証後の最初のイベントおよびセッション内のその後のすべてのイベントに含めます。

code language-json
{
  "identityMap": {
    "CRMID": [
      {
        "id": "abc-123-xyz",
        "authenticatedState": "authenticated",
        "primary": true
      }
    ]
  }
}
ログアウト

訪問者がログアウトしたら、同じIDを維持しながらauthenticatedStateloggedOutに更新します。 これにより、デバイスとユーザーとの関連付けが保持され、セッションがアクティブでなくなったことを示します。

code language-json
{
  "identityMap": {
    "CRMID": [
      {
        "id": "abc-123-xyz",
        "authenticatedState": "loggedOut",
        "primary": false
      }
    ]
  }
}

ログアウト後、ECIDは有効なプライマリ IDに戻ります(Edge Networkでは自動的に適用されます)。 訪問者が別のアカウントでログインしない限り、別の個人レベル IDをプライマリとしてマークしないでください。

note important
IMPORTANT
ログアウト後にIDの送信を完全に停止しないでください。 authenticatedからloggedOutに切り替えると、セッションが終了したことをダウンストリームサービスに伝えます。 識別子を完全に省略すると、ID グラフにギャップが残り、プロファイルが断片化する可能性があります。
複数の名前空間

同じイベントで複数のID名前空間を送信できます。 このシナリオは、訪問者がログインしており、複数の識別子(CRM ID、ハッシュ化された電子メール、ロイヤルティ IDなど)が使用可能な場合に一般的です。 すべての既知のIDを含め、1つのみをプライマリとしてマークし、他のIDをprimary: falseに設定します。

code language-json
{
  "identityMap": {
    "CRMID": [
      {
        "id": "abc-123-xyz",
        "authenticatedState": "authenticated",
        "primary": true
      }
    ],
    "Email_LC_SHA256": [
      {
        "id": "a1b2c3d4e5f6...",
        "authenticatedState": "authenticated",
        "primary": false
      }
    ],
    "LoyaltyId": [
      {
        "id": "LOY-98765",
        "authenticatedState": "authenticated",
        "primary": false
      }
    ]
  }
}
note tip
TIP
同じイベントで同じauthenticatedStateを持つ複数の名前空間を送信すると、ID サービスは、これらのIDをリンクするための最も強力なシグナルを提供します。 利用可能なすべての識別子を、別々のイベントに分散させるのではなく、認証の時点で含めます。
匿名の訪問者
匿名の訪問者の場合、通常はidentityMapを送信する必要はありません。 Edge NetworkはECIDを自動的に割り当て、プライマリ IDとして使用します。 ​ ファーストパーティデバイス IDを使用する場合、匿名の訪問者に含める必要があるIDはFPIDのみです。

identityMapがID グラフに与える影響 identity-graph

Experience Platformに到達するidentityMap個のペイロードはID サービス ​によって処理され、送信したIDがID グラフ ​にリンクされます。 どの名前空間を含めるか、どのようにauthenticatedStateを設定するか、そしてどのIDをprimaryとしてマークするかは、Identity Serviceがそれらのグラフを構築および結合する方法を直接形作ります。

注意すべき主な行動:

  • 同じイベントで送信された​ IDはリンクされています。 ​同じsendEvent呼び出しにCRMIDとメール名前空間を含める場合、ID サービスはこれらの2つのID間のリンクを作成します。 識別子を別々のイベントに分散させると、リンクが弱くなり、グラフが断片化する可能性があります。
  • primary IDは、リアルタイム顧客プロファイルでイベントを固定します。 プロファイルは、プライマリ IDを使用して、イベントがどのプロファイルに属しているかを判断します。 誤ったIDをプライマリとしてマークする(例えば、個人レベル IDが使用可能な場合にECIDをプライマリとして設定する)と、個人レベルのプロファイルではなく、デバイスレベルのプロファイルに対してイベントが保存される可能性があります。
  • authenticatedStateはグラフの信頼性に影響します。​実際に確認されていないIDに対してauthenticatedを送信すると、取り消しにくい不正なクロスデバイスリンクが作成される可能性があります。 訪問者が現在のセッション中に積極的にIDを証明した場合にのみauthenticatedを使用します。

実装でID グラフ リンク ルール ​ (名前空間の優先順位やID最適化アルゴリズムなど)を使用している場合は、実装ガイド ​を参照して、これらのルールがidentityMapを通じて送信するIDとどのように相互作用するかを理解してください。

NOTE
identityMapは、Web SDKが訪問者の同意状態によってゲートされるEdge Networkにリクエストを行った場合にのみ送信されます。 実装でdefaultConsent: "pending"を使用している場合、同意が付与されるまでIDは送信されません。 詳しくは、同意とIDを参照してください。
recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1