ID データの収集

モバイルアプリでID データを収集する方法について説明します。

Adobe Experience Platform Identity Serviceを利用すれば、顧客とその行動をより詳細に把握できます。 このサービスは、デバイスやシステムをまたいでIDを橋渡しし、インパクトのあるパーソナライズされたデジタル体験をリアルタイムで提供することを可能にします。 ID フィールドと名前空間は、様々なデータソースを結合し、360度のリアルタイム顧客プロファイルを構築するための接着剤です。

ID拡張機能とID サービス ​について詳しくは、ドキュメントを参照してください。

前提条件

  • SDKがインストールされ、設定されたアプリが正常に構築され、実行されました。

学習目標

このレッスンでは、次の操作を行います。

  • カスタム ID名前空間を設定します。
  • IDを更新します。
  • ID グラフを検証します。
  • ECIDと他のIDを取得します。

カスタム ID名前空間の設定

ID名前空間は、IDが関連するコンテキストの指標として機能するID サービス ​のコンポーネントです。 例えば、値name@email.comを電子メールアドレスとして、または443522を数値CRM IDとして区別します。

NOTE
Mobile SDKは、アプリのインストール時に、Experience Cloud ID (ECID)という名前の独自の名前空間で一意のIDを生成します。 このECIDは、モバイルデバイスの永続的なメモリに保存され、ヒットごとに送信されます。 ECIDは、ユーザーがアプリをアンインストールする場合、またはユーザーがMobile SDK グローバルプライバシーステータスをオプトアウトに設定する場合に削除されます。 サンプル Luma アプリでは、アプリを削除して再インストールし、独自のECIDを持つ新しいプロファイルを作成する必要があります。

新しいID名前空間を作成するには:

  1. データ収集インターフェイスで、左側のパネルのナビゲーションから「ID」を選択します。

  2. 「ID 名前空間を作成」を選択します。

  3. Luma CRM IDの​表示名、および​ ID シンボル ​の値lumaCRMIdを指定してください。

  4. クロスデバイス ID​を選択します。

  5. 「作成」を選択します。

    ID名前空間を作成 {modal="regular"}

IDを更新

ユーザーがアプリにログインしたときに、標準ID (電子メール)とカスタム ID (Luma CRM ID)の両方を更新する必要があります。

iOS
  1. Xcode プロジェクトナビゲーターの​Luma > Luma > Utils > MobileSDK​に移動して、func updateIdentities(emailAddress: String, crmId: String)関数の実装を見つけます。 関数に次のコードを追加します。

    code language-swift
    // Set up identity map, add identities to map and update identities
    let identityMap: IdentityMap = IdentityMap()
    
    let emailIdentity = IdentityItem(id: emailAddress, authenticatedState: AuthenticatedState.authenticated)
    let crmIdentity = IdentityItem(id: crmId, authenticatedState: AuthenticatedState.authenticated)
    identityMap.add(item:emailIdentity, withNamespace: "Email")
    identityMap.add(item: crmIdentity, withNamespace: "lumaCRMId")
    
    Identity.updateIdentities(with: identityMap)
    

    このコード:

    1. 空のIdentityMap オブジェクトを作成します。

      code language-swift
      let identityMap: IdentityMap = IdentityMap()
      
    2. 電子メールとCRM ID用にIdentityItem オブジェクトを設定します。

      code language-swift
      let emailIdentity = IdentityItem(id: emailAddress, authenticatedState: AuthenticatedState.authenticated)
      let crmIdentity = IdentityItem(id: crmId, authenticatedState: AuthenticatedState.authenticated)
      
    3. これらのIdentityItem オブジェクトをIdentityMap オブジェクトに追加します。

      code language-swift
      identityMap.add(item:emailIdentity, withNamespace: "Email")
      identityMap.add(item: crmIdentity, withNamespace: "lumaCRMId")
      
    4. Identity.updateIdentities API呼び出しの一部としてIdentityItem オブジェクトをEdge Networkに送信します。

      code language-swift
      Identity.updateIdentities(with: identityMap)
      
  2. Xcode プロジェクトナビゲーターの​Luma > Luma > Views > General > LoginSheet​に移動し、Login ボタンを選択するときに実行するコードを見つけます。 次のコードを追加します。

    code language-swift
    // Update identities
    MobileSDK.shared.updateIdentities(emailAddress: currentEmailId, crmId: currentCRMId)
    
Android
  1. Android Studio ナビゲーターの​Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK​に移動して、fun updateIdentities(emailAddress: String, crmId: String) 関数の実装を見つけます。 関数に次のコードを追加します。

    code language-kotlin
    // Set up identity map, add identities to map and update identities
    val identityMap = IdentityMap()
    
    val emailIdentity = IdentityItem(emailAddress, AuthenticatedState.AUTHENTICATED, true)
    val crmIdentity = IdentityItem(crmId, AuthenticatedState.AUTHENTICATED, true)
    identityMap.addItem(emailIdentity, "Email")
    identityMap.addItem(crmIdentity, "lumaCRMId")
    
    Identity.updateIdentities(identityMap)
    

    このコード:

    1. 空のIdentityMap オブジェクトを作成します。

      code language-kotlin
      val identityMap = IdentityMap()
      
    2. 電子メールとCRM ID用にIdentityItem オブジェクトを設定します。

      code language-kotlin
      val emailIdentity = IdentityItem(emailAddress, AuthenticatedState.AUTHENTICATED, true)
      val crmIdentity = IdentityItem(crmId, AuthenticatedState.AUTHENTICATED, true)
      
    3. これらのIdentityItem オブジェクトをIdentityMap オブジェクトに追加します。

      code language-kotlin
      identityMap.addItem(emailIdentity, "Email")
      identityMap.addItem(crmIdentity, "lumaCRMId")
      
    4. Identity.updateIdentities API呼び出しの一部としてIdentityItem オブジェクトをEdge Networkに送信します。

      code language-kotlin
      Identity.updateIdentities(identityMap)
      
  2. Android Studio ナビゲーターの​Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > views > LoginSheet.kt​に移動し、Login ボタンを選択するときに実行するコードを見つけます。 次のコードを追加します。

    code language-kotlin
    // Update identities
    MobileSDK.shared.updateIdentities(
       MobileSDK.shared.currentEmailId.value,
       MobileSDK.shared.currentCRMId.value
    )
    
NOTE
1回のupdateIdentities呼び出しで複数のIDを送信できます。 また、以前に送信したIDを変更することもできます。

IDの削除

Identity.removeIdentity APIを使用して、保存されているクライアントサイド ID マップからIDを削除できます。 ID拡張機能は、Edge NetworkへのIDの送信を停止します。 このAPIを使用しても、サーバーサイド ID グラフから識別子が削除されません。 ID グラフについて詳しくは、ID グラフの表示を参照してください。

iOS
  1. Xcode プロジェクトナビゲーターの​Luma > Luma > Utils > MobileSDK​に移動し、次のコードをfunc removeIdentities(emailAddress: String, crmId: String)関数に追加します。

    code language-swift
    // Remove identities and reset email and CRM Id to their defaults
    Identity.removeIdentity(item: IdentityItem(id: emailAddress), withNamespace: "Email")
    Identity.removeIdentity(item: IdentityItem(id: crmId), withNamespace: "lumaCRMId")
    currentEmailId = "testUser@gmail.com"
    currentCRMId = "b642b4217b34b1e8d3bd915fc65c4452"
    
  2. Xcode プロジェクトナビゲーターの​Luma > Luma > Views > General > LoginSheet​に移動し、ログアウト ボタンを選択するときに実行するコードを見つけます。 次のコードを追加します。

    code language-swift
    // Remove identities
    MobileSDK.shared.removeIdentities(emailAddress: currentEmailId, crmId: currentCRMId)
    
Android
  1. Android Studio ナビゲーターの​Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK​に移動し、fun removeIdentities(emailAddress: String, crmId: String)関数に次のコードを追加します。

    code language-kotlin
    // Remove identities and reset email and CRM Id to their defaults
    Identity.removeIdentity(IdentityItem(emailAddress), "Email")
    Identity.removeIdentity(IdentityItem(crmId), "lumaCRMId")
    currentEmailId.value = "testUser@gmail.com"
    currentCRMId.value = "112ca06ed53d3db37e4cea49cc45b71e"
    

1.Android Studio ナビゲーターの​app > kotlin+java > com.adobe.luma.tutorial.android > 表示 > LoginSheet.kt​に移動し、ログアウト ボタンを選択するときに実行するコードを見つけます。 次のコードを追加します。

code language-kotlin
// Remove identities
MobileSDK.shared.removeIdentities(
   MobileSDK.shared.currentEmailId.value,
   MobileSDK.shared.currentCRMId.value
)

Assurance での検証

  1. シミュレーターまたはデバイスをAssuranceに接続するには、設定の手順 セクションを確認してください。

  2. Luma アプリで

    1. 「ホーム」タブを選択し、Assurance アイコンを左に動かします。
    2. 右上の「 ​ ユーザー 」アイコンを選択します。
iOS
{width="300"}
Android
{width="300"}

ID​画面で、次の操作を行います。

  1. 電子メールアドレスとCRM IDを指定する、または
  2. A | (iOS)または​ランダムな電子メールを生成 (Android)を選択すると、電子メール​と​ CRM ID ​がランダムに生成されます。
  3. 「ログイン」を選択します。
iOS
{width="300"}
Android
{width="300"}

Assuranceに戻る:

  1. com.adobe.griffon.mobile ベンダーから​Edge ID Update Identities イベントのAssurance web インターフェイスを調べます。
  2. イベントを選択し、ACPExtensionEventData オブジェクト内のデータを確認します。 更新したIDが表示されます。
    IDの更新を検証 {modal="regular"}

ID グラフを使用した検証

Experience Platform レッスン ​の手順を完了すると、Experience Platform ID グラフビューアでID キャプチャを確認できます。

  1. データ収集UIで「ID」を選択します。

  2. 上部バーから「ID グラフ」を選択します。

  3. Luma CRM IDを​ ID名前空間 ​として入力し、CRM ID (例:24e620e255734d8489820e74f357b5c8)を​ ID値 ​として入力します。

  4. リストに​ Id ​が表示されます。

    ID グラフの検証 {modal="regular"}

INFO
アプリにECIDをリセットするコードがありません。 アプリケーションのアンインストールと再インストールを通じてのみ、ECIDをリセットできます(新しいECIDで新しいプロファイルを効果的に作成できます)。 識別子のリセットを実装するには、Identity.resetIdentitiesおよびMobileCore.resetIdentities API呼び出しを参照してください。 プッシュ通知識別子(​ プッシュ通知の送信を参照)を使用すると、その識別子はデバイス上の別の「スティッキー」プロファイル識別子になります。
SUCCESS
これで、Edge NetworkでIDを更新するようにアプリを設定し、Adobe Experience PlatformでIDを更新するように設定しました。
Adobe Experience Platform Mobile SDKについて学ぶために時間を割いていただきありがとうございます。 ご質問がある場合、一般的なフィードバックを共有したい場合、または今後のコンテンツに関する提案がある場合は、このExperience League コミュニティ ディスカッション投稿で共有してください

次:プロファイルデータの収集

recommendation-more-help
platform-learn-help-tutorial-mobile-sdk