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

モバイルアプリでプロファイルデータを収集する方法を説明します。

プロファイル拡張機能を使用して、クライアント上のユーザーに関する属性を保存できます。 この情報を後で使用すると、最適なパフォーマンスを得るためにサーバーに接続することなく、オンラインまたはオフラインのシナリオ中にメッセージをターゲットにしてパーソナライズできます。

プロファイル拡張機能は、クライアントサイド操作プロファイル(CSOP)の管理、API への対応方法の提供、ユーザープロファイル属性の更新、生成されたイベントとしてのシステムのその他の部分とのユーザープロファイル属性の共有を行います。

プロファイルデータは、他の拡張機能でプロファイル関連のアクションを実行する際に使用されます。 例えば、プロファイルデータを使用し、プロファイルデータに基づいてルールを実行するルールエンジン拡張機能があります。 プロファイル拡張機能について詳しくは、ドキュメントを参照してください

IMPORTANT
このレッスンで説明するプロファイル機能は、Adobe Experience Platformおよびプラットフォームベースのアプリケーションのリアルタイム顧客プロファイル機能とは別の機能です。

前提条件

  • SDK がインストールおよび設定された状態で、アプリケーションが正常に構築および実行されました。

学習目標

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

  • ユーザー属性を設定または更新します。
  • ユーザー属性を取得します。

ユーザー属性の設定と更新

これは、ユーザーが過去または最近に購入を行ったかどうかをアプリ内ですばやく把握できるので、ターゲティングとパーソナライゼーションに役立ちます。 これを Luma アプリで設定しましょう。

iOS
  1. Xcode プロジェクトナビゲーターで Luma/Luma/Utils/MobileSDK に移動し、func updateUserAttribute(attributeName: String, attributeValue: String) 関数を見つけます。 次のコードを追加します。

    code language-swift
    // Create a profile map, add attributes to the map and update profile using the map
    var profileMap = [String: Any]()
    profileMap[attributeName] = attributeValue
    UserProfile.updateUserAttributes(attributeDict: profileMap)
    

    このコード:

    1. profileMap という名前の空の辞書を設定します。

    2. attributeName (例:isPaidUser)および attributeValue (例:yes)を使用して、要素を辞書に追加します。

    3. profileMap ディクショナリを attributeDictUserProfile.updateUserAttributes API 呼び出しのパラメーターへの値として使用します。

  2. Xcode プロジェクトナビゲーターで Luma/Luma/Views/Products/ProductView に移動し、(購入のコード updateUserAttributesCreditCard ボタン内で) への呼び出しを見つけます。 次のコードを追加します。

    code language-swift
    // Update attributes
    MobileSDK.shared.updateUserAttribute(attributeName: "isPaidUser", attributeValue: "yes")
    
Android
  1. Android Studio ナビゲーターで Android ChevronDown /app/kotlin+java/com.adobe.luma.tutorial.android/models/MobileSDK に移動し、func updateUserAttribute(attributeName: String, attributeValue: String) 関数を見つけます。 次のコードを追加します。

    code language-kotlin
    // Create a profile map, add attributes to the map and update profile using the map
    val profileMap = mapOf(attributeName to attributeValue)
    UserProfile.updateUserAttributes(profileMap)
    

    このコード:

    1. profileMap という名前の空のマップを設定します。

    2. attributeName (例:isPaidUser)および attributeValue (例:yes)を使用して、マップに要素を追加します。

    3. profileMap マップを、attributeDictUserProfile.updateUserAttributes API 呼び出しのパラメーターへの値として使用します。

  2. Android ChevronDown /app/kotlin+java/com.adobe.luma.tutorial.android/views/ProductView.kt に移動し、(購入 updateUserAttributesCreditCard ボタンのコード内で) の呼び出しを見つけます。 次のコードを追加します。

    code language-kotlin
    // Update attributes
    MobileSDK.shared.updateUserAttribute("isPaidUser", "yes")
    

ユーザー属性の取得

ユーザーの属性を更新すると、他のAdobe SDK で使用できるようになりますが、属性を明示的に取得して、アプリが思いどおりに動作するようにすることもできます。

iOS
  1. Xcode プロジェクトナビゲーターで Luma / Luma / Views / General / HomeView に移動し、.onAppear 修飾子を見つけます。 次のコードを追加します。

    code language-swift
    // Get attributes
    UserProfile.getUserAttributes(attributeNames: ["isPaidUser"]) { attributes, error in
        if attributes?.count ?? 0 > 0 {
            if attributes?["isPaidUser"] as? String == "yes" {
                showBadgeForUser = true
            }
            else {
                showBadgeForUser = false
            }
        }
    }
    

    このコード:

    1. UserProfile.getUserAttributes の属性名を持つisPaidUser API を attributeNames 配列の単一の要素として呼び出します。
    2. 次に、isPaidUser 属性の値をチェックし、yes 定すると、右上のツールバーにある UserCheckedOut アイコンにバッジが付きます。
Android
  1. Android Studio プロジェクトナビゲーターで Android ChevronDown /app/kotlin+java/com.adobe.luma.tutorial.androi/views/HomeView.kt に移動し、.onAppear 修飾子を見つけます。 次のコードを追加します。

    code language-kotlin
    // Get attributes
    UserProfile.getUserAttributes(listOf("isPaidUser")) { attributes ->
        showBadgeForUser = attributes?.get("isPaidUser") == "yes"
    }
    

    このコード:

    1. UserProfile.getUserAttributes の属性名を持つisPaidUser API を attributeNames 配列の単一の要素として呼び出します。
    2. 次に、isPaidUser 属性の値を確認します。 yes の場合、コードは右上のツールバーにある人物アイコンをバッジアイコンに置き換えます。

詳しくは、API リファレンスを参照してください。

Assurance での検証

  1. 設定手順の節を参照して、シミュレーターまたはデバイスをAssuranceに接続します。
  2. アプリを実行してログインし、製品とやり取りします。
iOS
  1. タブバーの ホーム を選択します。

  2. Assurance アイコンを左に移動します。

  3. ログインシートを開くには、「 ユーザー 」ボタンを選択します。

    {width="300"}

  4. ランダムなメールと顧客 ID を挿入するには、A | ボタン。

  5. ログイン を選択します。

    {width="300"}

  6. タブバーで「Products」を選択します。

  7. 製品を 1 つ選択します。

  8. ハート を選択します。

  9. ShoppingCart を選択します。

  10. CreditCard を選択します。

    {width="300"}

  11. ホーム 画面に戻ります。 バッジが追加された UserCheckedOut ことがわかります。

    {width="300"}

Android
  1. タブバーの ホーム を選択します。

  2. Assurance アイコンを左に移動します。

  3. ログインシートを開くには、「 ユーザー 」ボタンを選択します。

    {width="300"}

  4. ランダムなメールと顧客 ID を挿入するには、「ランダムなメールを生成」を選択します。

  5. ログイン を選択します。

    {width="300"}

  6. タブバーで「Products」を選択します。

  7. 製品を 1 つ選択します。

  8. ThumbUp 」を選択します。

  9. ShoppingCart を選択します。

  10. CreditCard を選択します。

    {width="300"}

  11. ホーム 画面に戻ります。 人物アイコンが更新されていることがわかります。

    {width="300"}

Assurance UI に、更新された 値を持つ UserProfileUpdate および getUserAttributesprofileMap イベントが表示されます。

プロファイルを検証 {modal="regular"}

SUCCESS
これで、Edge Network内および(設定時に)Adobe Experience Platformでプロファイルの属性を更新するアプリの設定が完了しました。
Adobe Experience Platform Mobile SDKの学習にご協力いただき、ありがとうございます。 ご不明な点がある場合や、一般的なフィードバックをお寄せになる場合、または今後のコンテンツに関するご提案がある場合は、この Experience League Community Discussion の投稿でお知らせください。

次のトピック:場所を使用

recommendation-more-help
9fed61f5-c338-47ad-8005-0b89a5f4af8b