Suivi des données d’événement

Découvrez comment suivre les événements dans une application mobile.

L’extension Edge Network fournit une API pour envoyer des événements d’expérience à Platform Edge Network. Un événement d’expérience est un objet contenant des données conformes à la définition de schéma XDM ExperienceEvent. Plus simplement, ces événements capturent ce que les gens font dans votre application mobile. Une fois que Platform Edge Network a reçu des données, ces données peuvent être transférées vers les applications et services configurés dans votre flux de données, tels qu’Adobe Analytics et Experience Platform. En savoir plus sur le Événements d’expérience dans la documentation du produit.

Conditions préalables

  • Toutes les dépendances de package sont configurées dans votre projet Xcode.
  • Extensions enregistrées dans AppDelegate.
  • Extension MobileCore configurée pour utiliser votre appId de développement.
  • SDK importés.
  • L’application a été créée et exécutée avec les modifications ci-dessus.

Objectifs d’apprentissage

Dans cette leçon, vous allez :

  • comprendre comment structurer les données XDM en fonction d’un schéma ;
  • Envoyez un événement XDM basé sur un groupe de champs standard.
  • Envoyer un événement XDM basé sur un groupe de champs personnalisés
  • Envoyez un événement d’achat XDM.
  • Effectuez la validation avec Assurance.

Création d’un événement d’expérience

L’extension Adobe Experience Platform Edge peut envoyer à Adobe Experience Platform Edge Network des événements qui suivent un schéma XDM défini précédemment.

Le processus se passe comme suit…

  1. Identifiez l’interaction de l’application mobile que vous essayez de suivre.

  2. Vérifiez votre schéma et identifiez l’événement approprié.

  3. Passez en revue votre schéma et identifiez les champs supplémentaires qui doivent être utilisés pour décrire l’événement.

  4. Créez et renseignez l’objet de données.

  5. Créer et envoyer un événement.

  6. Validez.

Groupes de champs standard

Pour les groupes de champs standard, le processus se présente comme suit :

  • Dans votre schéma, identifiez les événements que vous essayez de collecter. Dans cet exemple, vous effectuez le suivi d’événements d’expérience commerciale, par exemple un événement de consultation de produit (productViews).

    schéma d’affichage du produit {modal="regular"}

  • Pour construire un objet contenant les données d’événement d’expérience dans votre application, vous devez utiliser un code du type :

iOS
code language-swift
var xdmData: [String: Any] = [
    "eventType": "commerce.productViews",
    "commerce": [
        "productViews": [
        "value": 1
        ]
    ]
]

Dans ce code :

  • eventType : décrit l’événement qui s’est produit ; utilisez une valeur connue si possible.

  • commerce.productViews.value : valeur numérique ou booléenne de l’événement. S’il s’agit d’une valeur booléenne (ou « compteur » dans Adobe Analytics), la valeur est toujours définie sur 1. S’il s’agit d’un événement numérique ou monétaire, la valeur peut être > 1.

Android
code language-kotlin
val xdmData = mapOf(
    "eventType" to "commerce.productViews",
    "commerce" to mapOf(
        "productViews" to mapOf(
        "value": 1
        )
    )
)

Dans ce code :

  • eventType : décrit l’événement qui s’est produit ; utilisez une valeur connue si possible.

  • commerce.productViews.value : valeur numérique ou booléenne de l’événement. S’il s’agit d’une valeur booléenne (ou « compteur » dans Adobe Analytics), la valeur est toujours définie sur 1. S’il s’agit d’un événement numérique ou monétaire, la valeur peut être > 1.

  • Dans votre schéma, identifiez toutes les données supplémentaires associées à l’événement d’affichage du produit de commerce. Dans cet exemple, incluez productListItems qui est un ensemble standard de champs utilisés avec n’importe quel événement lié au commerce :

    schéma des éléments de la liste de produits {modal="regular"}

    * Notez que **productListItems** est un tableau, de sorte que plusieurs produits peuvent être fournis.

  • Pour ajouter ces données, développez votre objet xdmData afin d’inclure des données supplémentaires :

iOS
code language-swift
var xdmData: [String: Any] = [
    "eventType": "commerce.productViews",
    "commerce": [
        "productViews": [
            "value": 1
        ]
    ],
    "productListItems": [
        [
            "name":  productName,
            "SKU": sku,
            "priceTotal": priceString,
            "quantity": 1
        ]
    ]
]
Android
code language-kotlin
val xdmData = mapOf(
    "eventType" to "commerce.productViews",
    "commerce" to mapOf(
        "productViews" to mapOf(
        "value": 1
        )
    ),
    "productListItems" to mapOf(
        "name": productName,
        "SKU": sku,
        "priceTotal", priceString,
        "quantity", 1
    )
)
  • Vous pouvez désormais utiliser cette structure de données pour créer un ExperienceEvent :
iOS
code language-swift
let productViewEvent = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val productViewEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
  • Et envoyez l’événement et les données à Platform Edge Network à l’aide de l’API sendEvent :
iOS
code language-swift
Edge.sendEvent(experienceEvent: productViewEvent)
Android
code language-kotlin
Edge.sendEvent(productViewEvent, null)

L’API Edge.sendEvent est l’équivalent du SDK Mobile AEP des appels API MobileCore.trackAction et MobileCore.trackState. Consultez Migration de l’extension mobile Analytics vers Adobe Experience Platform Edge Networkpour plus d’informations.

Vous êtes sur le point d’implémenter ce code dans votre projet.
Votre application comporte différentes actions liées à des produits commerciaux et vous souhaitez envoyer des événements en fonction de ces actions, telles qu’elles sont effectuées par l’utilisateur :

  • afficher : se produit lorsqu’un utilisateur ou une utilisatrice consulte un produit spécifique,
  • ajouter au panier : lorsqu’un utilisateur appuie sur ShoppingCart dans l’écran des détails du produit,
  • enregistrer pour plus tard : lorsqu’un utilisateur clique sur Cœur / ThumbUp dans l’écran des détails du produit,
  • achat : lorsqu’un utilisateur clique sur Carte de crédit dans l’écran des détails du produit.

Pour implémenter l’envoi d’événements d’expérience liés au commerce de manière réutilisable, vous utilisez une fonction dédiée :

iOS
  1. Accédez à Luma > Luma > Utils > MobileSDK dans le navigateur de projet Xcode, puis ajoutez les éléments suivants à la fonction func sendCommerceExperienceEvent(commerceEventType: String, product: Product).

    code language-swift
    // Set up a data dictionary, create an experience event and send the event.
    let xdmData: [String: Any] = [
        "eventType": "commerce." + commerceEventType,
        "commerce": [
            commerceEventType: [
                "value": 1
            ]
        ],
        "productListItems": [
            [
                "name": product.name,
                "priceTotal": product.price,
                "SKU": product.sku
            ]
        ]
    ]
    
    let commerceExperienceEvent = ExperienceEvent(xdm: xdmData)
    Edge.sendEvent(experienceEvent: commerceExperienceEvent)
    

    Cette fonction prend le type d’événement d’expérience commerciale et le produit comme paramètres et

    • configure la payload XDM sous la forme d’un dictionnaire, à l’aide des paramètres de la fonction ,
    • configure un événement d’expérience à l’aide du dictionnaire ;
    • envoie l’événement d’expérience à l’aide de l’API Edge.sendEvent.
  2. Accédez à Luma > Luma > Views > Products > ProductView dans le navigateur de projet Xcode et ajoutez divers appels à la fonction sendCommerceExperienceEvent :

    1. Au niveau du modificateur .task, dans la fermeture ATTrackingManager.trackingAuthorizationStatus. Ce modificateur de .task est appelé lors de l'initialisation et de l'affichage de la vue de produit. Vous souhaitez donc envoyer un événement de vue de produit à ce moment précis.

      code language-swift
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productViews", product: product)
      
    2. Pour chacun des boutons ( Cœur , Panier et Carte de crédit ) de la barre d’outils, ajoutez l’appel correspondant à la fermeture du ATTrackingManager.trackingAuthorizationStatus == .authorized :

      1. Pour Cœur :

        code language-swift
        // Send saveForLater commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "saveForLaters", product: product)
        
      2. Pour ShoppingCart :

        code language-swift
        // Send productListAdds commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productListAdds", product: product)
        
      3. Pour CreditCard :

        code language-swift
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
        
Android
  1. Accédez à Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK dans le navigateur d’Android Studio, puis ajoutez les éléments suivants à la fonction func sendCommerceExperienceEvent(commerceEventType: String, product: Product).

    code language-kotlin
    // Set up a data map, create an experience event and send the event.
    val xdmData = mapOf(
        "eventType" to "commerce.$commerceEventType",
        "commerce" to mapOf(commerceEventType to mapOf("value" to 1)),
        "productListItems" to listOf(
            mapOf(
                "name" to product.name,
                "priceTotal" to product.price,
                "SKU" to product.sku
            )
        )
    )
    val commerceExperienceEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
    Edge.sendEvent(commerceExperienceEvent, null)
    

    Cette fonction prend le type d’événement d’expérience commerciale et le produit comme paramètres et

    • configure la payload XDM en tant que mappage à l’aide des paramètres de la fonction ,
    • met en place un événement d’expérience à l’aide de la carte,
    • envoie l’événement d’expérience à l’aide de l’API Edge.sendEvent.
  2. Accédez à app > kotlin+java > com.adobe.luma.tutorial.android > views > ProductView.kt dans le navigateur d’Android Studio, puis ajoutez divers appels à la fonction sendCommerceExperienceEvent :

    1. Au niveau de la fonction composable LaunchedEffect(Unit), vous souhaitez envoyer un événement d’affichage de produit au moment spécifique où un produit est affiché.

      code language-kotlin
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent("productViews", product)
      
    2. Pour chacun des boutons ( ThumbUp , ShoppingCart et CreditCard ) de la barre d’outils, ajoutez l’appel correspondant à l’scope.launch du if (MobileSDK.shared.trackingEnabled == TrackingStatus.AUTHORIZED) statement :

      1. Pour ThumbUp :

        code language-kotlin
        // Send saveForLater commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("saveForLaters", product)
        
      2. Pour ShoppingCart :

        code language-kotlin
        // Send productListAdds commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("productListAdds", product)
        
      3. Pour CreditCard :

        code language-kotlin
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("purchases", product)
        
TIP
Si vous effectuez un développement pour Android™, utilisez Map (java.util.Map) comme interface de base pour créer votre payload XDM.

Groupes de champs personnalisés

Imaginez que vous souhaitiez effectuer le suivi des vues d’écran et des interactions dans l’application elle-même. N’oubliez pas que vous avez défini un groupe de champs personnalisé pour ce type d’événements.

  • Dans votre schéma, identifiez les événements que vous essayez de collecter.
    schéma d’interaction de l’application {modal="regular"}

  • Commencez à construire votre objet.

    note note
    NOTE
    • Les groupes de champs standard commencent toujours à la racine de l’objet.

    • Les groupes de champs personnalisés commencent toujours sous un objet unique à votre organisation Experience Cloud, _techmarketingdemos dans cet exemple.

  • Pour l’événement d’interaction de l’application, vous devez créer un objet du type :

iOS
code language-swift
let xdmData: [String: Any] = [
    "eventType": "application.interaction",
    "_techmarketingdemos": [
    "appInformation": [
        "appInteraction": [
            "name": "login",
            "appAction": [
                "value": 1
                ]
            ]
        ]
    ]
]
Android
code language-kotlin
val xdmData = mapOf(
    "eventType" to "application.interaction",
    "_techmarketingdemos" to mapOf(
        "appInformation" to mapOf(
            "appInteraction" to mapOf(
                "name" to "login",
                "appAction" to mapOf("value" to 1)
            )
        )
    )
)
  • Pour l’événement de suivi d’écran, vous devez construire un objet tel que :
iOS
code language-swift
var xdmData: [String: Any] = [
    "eventType": "application.scene",
    "_techmarketingdemos": [
        "appInformation": [
            "appStateDetails": [
                "screenType": "App",
                "screenName": "luma: content: ios: us: en: login",
                "screenView": [
                    "value": 1
                ]
            ]
        ]
    ]
]
Android
code language-kotlin
val xdmData = mapOf(
    "eventType" to "application.scene",
    tenant.value to mapOf(
        "appInformation" to mapOf(
            "appStateDetails" to mapOf(
                "screenType" to "App",
                "screenName" to stateName,
                "screenView" to mapOf("value" to 1)
            )
        )
    )
)
  • Vous pouvez désormais utiliser cette structure de données pour créer un ExperienceEvent.
iOS
code language-swift
let event = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val event = ExperienceEvent(xdmData)
  • Envoyez l’événement et les données à Platform Edge Network.
iOS
code language-swift
Edge.sendEvent(experienceEvent: event)
Android
code language-kotlin
Edge.sendEvent(event, null)

Là encore, implémentez ce code dans votre projet.

iOS
  1. Pour des raisons pratiques, définissez deux fonctions dans MobileSDK. Accédez à Luma > Luma > Utils > MobileSDK dans le navigateur de votre projet Xcode.

    • Une pour les interactions avec l’application. Ajoutez ce code à la fonction func sendAppInteractionEvent(actionName: String) :

      code language-swift
      // Set up a data dictionary, create an experience event and send the event.
      let xdmData: [String: Any] = [
          "eventType": "application.interaction",
          tenant : [
              "appInformation": [
                  "appInteraction": [
                      "name": actionName,
                      "appAction": [
                          "value": 1
                      ]
                  ]
              ]
          ]
      ]
      let appInteractionEvent = ExperienceEvent(xdm: xdmData)
      Edge.sendEvent(experienceEvent: appInteractionEvent)
      

      Cette fonction utilise le nom de l’action comme paramètre et

      • configure la payload XDM en tant que dictionnaire, à l’aide du paramètre de la fonction ;
      • configure un événement d’expérience à l’aide du dictionnaire ;
      • envoie l’événement d’expérience à l’aide de l’API Edge.sendEvent.
    • Et une pour le suivi d’écran. Ajoutez ce code à la fonction func sendTrackScreenEvent(stateName: String) :

      code language-swift
      // Set up a data dictionary, create an experience event and send the event.
      let xdmData: [String: Any] = [
          "eventType": "application.scene",
          tenant : [
              "appInformation": [
                  "appStateDetails": [
                      "screenType": "App",
                      "screenName": stateName,
                      "screenView": [
                          "value": 1
                      ]
                  ]
              ]
          ]
      ]
      let trackScreenEvent = ExperienceEvent(xdm: xdmData)
      Edge.sendEvent(experienceEvent: trackScreenEvent)
      

      Cette fonction utilise le nom de l’état comme paramètre et

      • configure la payload XDM en tant que dictionnaire, à l’aide du paramètre de la fonction ;
      • configure un événement d’expérience à l’aide du dictionnaire ;
      • envoie l’événement d’expérience à l’aide de l’API Edge.sendEvent.
  2. Accédez à Luma > Luma > Views > General > Feuille de connexion.

    1. Ajoutez le code en surbrillance suivant à la fermeture du bouton de connexion :

      code language-swift
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
      
    2. Ajoutez le code en surbrillance suivant au modificateur onAppear :

      code language-swift
      // Send track screen event
      MobileSDK.shared.sendTrackScreenEvent(stateName: "luma: content: ios: us: en: login")
      
Android
  1. Pour des raisons pratiques, définissez deux fonctions dans MobileSDK. Accédez à Android ChevronDown app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK dans le navigateur d’Android Studio.

    • Une pour les interactions avec l’application. Ajoutez ce code à la fonction fun sendAppInteractionEvent(actionName: String) :

      code language-kotlin
      // Set up a data map, create an experience event and send the event.
      val xdmData = mapOf(
          "eventType" to "application.interaction",
          tenant.value to mapOf(
              "appInformation" to mapOf(
                  "appInteraction" to mapOf(
                      "name" to actionName,
                      "appAction" to mapOf("value" to 1)
                  )
              )
          )
      )
      val appInteractionEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
      Edge.sendEvent(appInteractionEvent, null)
      

      Cette fonction utilise le nom de l’action comme paramètre et

      • configure la payload XDM en tant que mappage, à l’aide du paramètre de la fonction ,
      • met en place un événement d’expérience à l’aide de la carte,
      • envoie l’événement d’expérience à l’aide de l’API Edge.sendEvent.
    • Et une pour le suivi d’écran. Ajoutez ce code à la fonction fun sendTrackScreenEvent(stateName: String) :

      code language-kotlin
      // Set up a data map, create an experience event and send the event.
      val xdmData = mapOf(
          "eventType" to "application.scene",
          tenant.value to mapOf(
              "appInformation" to mapOf(
                  "appStateDetails" to mapOf(
                      "screenType" to "App",
                      "screenName" to stateName,
                      "screenView" to mapOf("value" to 1)
                  )
              )
          )
      )
      val trackScreenEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
      Edge.sendEvent(trackScreenEvent, null)
      

      Cette fonction utilise le nom de l’état comme paramètre et

      • configure la payload XDM en tant que mappage, à l’aide du paramètre de la fonction ,
      • met en place un événement d’expérience à l’aide de la carte,
      • envoie l’événement d’expérience à l’aide de l’API Edge.sendEvent.
  2. Accédez à Android ChevronDown app>kotlin+java>com.adobe.luma.tutorial.android>​ views ​>​ LoginSheet.kt ​

    1. Ajoutez le code en surbrillance suivant à l’événement Button onClick :

      code language-kotlin
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent("login")
      
    2. Ajoutez le code en surbrillance suivant à la fonction composable LaunchedEffect(Unit) :

      code language-kotlin
      // Send track screen event
      MobileSDK.shared.sendTrackScreenEvent("luma: content: android: us: en: login")
      

Validation

  1. Consultez la section instructions de configuration pour connecter votre simulateur ou votre appareil à Assurance.

    1. Déplacez l’icône Assurance vers la gauche.
    2. Sélectionnez Accueil dans la barre d’onglets et vérifiez que vous voyez un ECID, E-mail et ID CRM sur l’écran d’accueil.
    3. Sélectionnez Products dans la barre d’onglets.
    4. Sélectionnez un produit.
    5. Sélectionnez Cœur (iOS) ou ThumbUp (Android).
    6. Sélectionnez ShoppingCartAdd .
    7. Sélectionnez Carte de crédit .
iOS
{width="300"}
Android
{width="278"}
  1. Dans l’interface utilisateur d’Assurance, recherchez les événements hitReceived du fournisseur com.adobe.edge.konductor.

  2. Sélectionnez l’événement et passez en revue les données XDM dans l’objet messages. Vous pouvez également utiliser Copier Copier l’événement brut et utiliser un éditeur de texte ou de code de votre choix pour coller et inspecter l’événement.

    validation de la collecte de données {modal="regular"}

Étapes suivantes

Vous devriez maintenant disposer de tous les outils nécessaires pour commencer à ajouter la collecte de données à votre application. Vous pouvez ajouter plus d’informations sur la manière dont l’utilisateur interagit avec vos produits dans l’application et vous pouvez ajouter d’autres interactions d’application et appels de suivi d’écran à l’application :

  • Mettez en œuvre la commande, le passage en caisse, le panier vide et d’autres fonctionnalités dans l’application et ajoutez des événements d’expérience commerciale pertinents à cette fonctionnalité.
  • Répétez l’appel à sendAppInteractionEvent avec le paramètre approprié pour suivre d’autres interactions de l’application par l’utilisateur.
  • Répétez l’appel à sendTrackScreenEvent avec le paramètre approprié pour effectuer le suivi des écrans affichés par l’utilisateur dans l’application.
TIP
Consultez la application terminée pour d’autres exemples.

Envoi d’événements à Analytics et Platform

Maintenant que vous avez collecté les événements et que vous les avez envoyés à Platform Edge Network, ils sont envoyés aux applications et services configurés dans votre flux de données. Dans les leçons ultérieures, vous mapperez ces données à Adobe Analytics, Adobe Experience Platform et à d’autres solutions Adobe Experience Cloud (comme Adobe Target et Adobe Journey Optimizer).

SUCCESS
Vous avez maintenant configuré votre application pour effectuer le suivi du commerce, des interactions de l’application et des événements de suivi d’écran vers Adobe Experience Platform Edge Network. Et à tous les services que vous avez définis dans votre flux de données.
Merci d’avoir consacré votre temps à découvrir Adobe Experience Platform Mobile SDK. Si vous avez des questions, souhaitez partager des commentaires généraux ou des suggestions sur le contenu futur, partagez-les dans ce article de discussion de la communauté Experience League.

Suivant : Gérer les vues web

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