Tracciare i dati dell’evento

Scopri come tracciare gli eventi in un’app mobile.

L’estensione Edge Network fornisce un’API per inviare eventi di esperienza a Platform Edge Network. Un evento esperienza è un oggetto che contiene dati conformi alla definizione dello schema XDM ExperienceEvent. Più semplicemente, questi eventi acquisiscono ciò che le persone fanno nella tua app mobile. Una volta che Platform Edge Network ha ricevuto i dati, questi possono essere inoltrati alle applicazioni e ai servizi configurati nel flusso di dati, come Adobe Analytics e Experience Platform. Ulteriori informazioni su Eventi esperienza nella documentazione del prodotto.

Prerequisiti

  • Tutte le dipendenze del pacchetto sono configurate nel progetto Xcode.
  • Estensioni registrate in AppDelegate.
  • Estensione MobileCore configurata per utilizzare il tuo sviluppo appId.
  • SDK importati.
  • L'app è stata creata ed eseguita correttamente con le modifiche precedenti.

Obiettivi di apprendimento

In questa lezione, potrai

  • Scopri come strutturare i dati XDM in base a uno schema.
  • Invia un evento XDM basato su un gruppo di campi standard.
  • Invia un evento XDM basato su un gruppo di campi personalizzato.
  • Invia un evento di acquisto XDM.
  • Convalida con Assurance.

Creazione di un evento esperienza

L’estensione Adobe Experience Platform Edge può inviare a Adobe Experience Platform Edge Network eventi che seguono uno schema XDM definito in precedenza.

Il processo è simile a questo…

  1. Identifica l’interazione con l’app mobile che stai tentando di tracciare.

  2. Esamina lo schema e identifica l’evento appropriato.

  3. Esamina lo schema e identifica eventuali campi aggiuntivi da utilizzare per descrivere l’evento.

  4. Costruisci e popola l’oggetto dati.

  5. Crea e invia evento.

  6. Convalida.

Gruppi di campi standard

Per i gruppi di campi standard, il processo è simile al seguente:

  • Nello schema, identifica gli eventi che stai tentando di raccogliere. In questo esempio stai tenendo traccia degli eventi di esperienza di e-commerce, ad esempio un evento di visualizzazione prodotto (productViews).

    schema visualizzazione prodotto {modal="regular"}

  • Per creare un oggetto contenente i dati dell’evento esperienza nell’app, puoi utilizzare un codice simile al seguente:

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

In questo codice:

  • eventType: descrive l'evento che si è verificato. Utilizzare un valore noto quando possibile.

  • commerce.productViews.value: valore numerico o booleano dell'evento. Se è un valore booleano (o "Contatore" in Adobe Analytics), il valore è sempre impostato su 1. Se è un evento numerico o di valuta, il valore può essere > 1.

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

In questo codice:

  • eventType: descrive l'evento che si è verificato. Utilizzare un valore noto quando possibile.

  • commerce.productViews.value: valore numerico o booleano dell'evento. Se è un valore booleano (o "Contatore" in Adobe Analytics), il valore è sempre impostato su 1. Se è un evento numerico o di valuta, il valore può essere > 1.

  • Nello schema, identifica eventuali dati aggiuntivi associati all’evento di visualizzazione del prodotto Commerce. In questo esempio, includi productListItems che è un set standard di campi utilizzati con qualsiasi evento relativo a e-commerce:

    schema elementi elenco prodotti {modal="regular"}

    * **productListItems** è un array e pertanto è possibile specificare più prodotti.

  • Per aggiungere questi dati, espandere l'oggetto xdmData per includere dati supplementari:

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
    )
)
  • È ora possibile utilizzare questa struttura dati per creare un ExperienceEvent:
iOS
code language-swift
let productViewEvent = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val productViewEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
  • E invia l'evento e i dati a Platform Edge Network utilizzando l'API sendEvent:
iOS
code language-swift
Edge.sendEvent(experienceEvent: productViewEvent)
Android
code language-kotlin
Edge.sendEvent(productViewEvent, null)

L'API Edge.sendEvent è l'equivalente di AEP Mobile SDK alle chiamate API MobileCore.trackAction e MobileCore.trackState. Per ulteriori informazioni, consulta Migrare dall'estensione per dispositivi mobili Analytics a Adobe Experience Platform Edge Network.

Ora stai per implementare questo codice nel tuo progetto.
Nell’app sono presenti diverse azioni relative al prodotto commerce e desideri inviare eventi, in base alle azioni eseguite dall’utente:

  • view: si verifica quando un utente visualizza un prodotto specifico,
  • aggiungi al carrello: quando un utente tocca ShoppingCart in una schermata di dettagli del prodotto,
  • salva per dopo: quando un utente tocca Heart / ThumbUp in una schermata di dettaglio del prodotto,
  • acquisto: quando un utente tocca Carta di credito in una schermata dei dettagli del prodotto.

Per implementare l’invio di eventi di esperienza relativi al commercio in modo riutilizzabile, utilizza una funzione dedicata:

iOS
  1. Passa a Luma > Luma > Utils > MobileSDK nel navigatore progetti Xcode e aggiungi quanto segue alla funzione 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)
    

    Questa funzione considera il tipo di evento e il prodotto dell’esperienza di e-commerce come parametri e

    • imposta il payload XDM come dizionario, utilizzando i parametri della funzione,
    • configura un evento esperienza utilizzando il dizionario,
    • invia l'evento esperienza utilizzando l'API Edge.sendEvent.
  2. Passa a Luma > Luma > Views > Products > ProductView nel Navigator dei progetti Xcode e aggiungi varie chiamate alla funzione sendCommerceExperienceEvent:

    1. Nel modificatore .task, entro la chiusura di ATTrackingManager.trackingAuthorizationStatus. Questo modificatore .task viene chiamato quando la visualizzazione prodotto viene inizializzata e visualizzata, quindi si desidera inviare un evento di visualizzazione prodotto in quel momento specifico.

      code language-swift
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productViews", product: product)
      
    2. Per ciascuno dei pulsanti ( Heart , ShoppingCart e CreditCard ) nella barra degli strumenti, aggiungi la chiamata pertinente all'interno della chiusura di ATTrackingManager.trackingAuthorizationStatus == .authorized:

      1. Per Cuore :

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

        code language-swift
        // Send productListAdds commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productListAdds", product: product)
        
      3. Per carta di credito :

        code language-swift
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
        
Android
  1. Passa a Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK nel navigatore di Android Studio e aggiungi quanto segue alla funzione 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)
    

    Questa funzione considera il tipo di evento e il prodotto dell’esperienza di e-commerce come parametri e

    • imposta il payload XDM come mappa, utilizzando i parametri della funzione,
    • configura un evento esperienza utilizzando la mappa;
    • invia l'evento esperienza utilizzando l'API Edge.sendEvent.
  2. Passa a app > kotlin+java > com.adobe.luma.tutorial.android > visualizzazioni > ProductView.kt nel navigatore di Android Studio e aggiungi varie chiamate alla funzione sendCommerceExperienceEvent:

    1. Nella funzione componibile LaunchedEffect(Unit), si desidera inviare un evento di visualizzazione prodotto nel momento specifico in cui viene visualizzato un prodotto.

      code language-kotlin
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent("productViews", product)
      
    2. Per ciascuno dei pulsanti ( ThumbUp , ShoppingCart e CreditCard ) nella barra degli strumenti, aggiungi la chiamata pertinente all'interno di scope.launch di if (MobileSDK.shared.trackingEnabled == TrackingStatus.AUTHORIZED) statement:

      1. Per la miniatura :

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

        code language-kotlin
        // Send productListAdds commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("productListAdds", product)
        
      3. Per carta di credito :

        code language-kotlin
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("purchases", product)
        
TIP
Se stai sviluppando per Android™, utilizza Map (java.util.Map) come interfaccia fondamentale per creare il payload XDM.

Gruppi di campi personalizzati

Immagina di voler tenere traccia delle visualizzazioni a schermo e delle interazioni nell’app stessa. Ricorda di aver definito un gruppo di campi personalizzato per questo tipo di eventi.

  • Nello schema, identifica gli eventi che stai tentando di raccogliere.
    schema interazione app {modal="regular"}

  • Inizia a costruire l'oggetto.

    note note
    NOTE
    • I gruppi di campi standard iniziano sempre nella radice dell'oggetto.

    • I gruppi di campi personalizzati iniziano sempre con un oggetto univoco per la tua organizzazione Experience Cloud, _techmarketingdemos in questo esempio.

  • Per l’evento di interazione dell’app, puoi costruire un oggetto come:

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)
            )
        )
    )
)
  • Per l’evento di tracciamento dello schermo, puoi costruire un oggetto come:
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)
            )
        )
    )
)
  • È ora possibile utilizzare questa struttura dati per creare un ExperienceEvent.
iOS
code language-swift
let event = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val event = ExperienceEvent(xdmData)
  • Invia l’evento e i dati a Platform Edge Network.
iOS
code language-swift
Edge.sendEvent(experienceEvent: event)
Android
code language-kotlin
Edge.sendEvent(event, null)

Di nuovo, implementa questo codice nel progetto.

iOS
  1. Per comodità, puoi definire due funzioni in MobileSDK. Passa a Luma > Luma > Utils > MobileSDK nel navigatore dei progetti Xcode.

    • Uno per le interazioni tra app. Aggiungi questo codice alla funzione 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)
      

      Questa funzione utilizza il nome dell’azione come parametro e

      • imposta il payload XDM come dizionario, utilizzando il parametro della funzione,
      • configura un evento esperienza utilizzando il dizionario,
      • invia l'evento esperienza utilizzando l'API Edge.sendEvent.
    • E uno per il tracciamento dello schermo. Aggiungi questo codice alla funzione 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)
      

      Questa funzione utilizza il nome dello stato come parametro e

      • imposta il payload XDM come dizionario, utilizzando il parametro della funzione,
      • configura un evento esperienza utilizzando il dizionario,
      • invia l'evento esperienza utilizzando l'API Edge.sendEvent.
  2. Passa a Luma > Luma > Views > General > Foglio di accesso.

    1. Aggiungi il seguente codice evidenziato alla chiusura del pulsante di accesso:

      code language-swift
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
      
    2. Aggiungi il seguente codice evidenziato al modificatore onAppear:

      code language-swift
      // Send track screen event
      MobileSDK.shared.sendTrackScreenEvent(stateName: "luma: content: ios: us: en: login")
      
Android
  1. Per comodità, puoi definire due funzioni in MobileSDK. Vai a Android ChevronDown app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK nel tuo navigatore Android Studio.

    • Uno per le interazioni tra app. Aggiungi questo codice alla funzione 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)
      

      Questa funzione utilizza il nome dell’azione come parametro e

      • imposta il payload XDM come mappa, utilizzando il parametro della funzione,
      • configura un evento esperienza utilizzando la mappa;
      • invia l'evento esperienza utilizzando l'API Edge.sendEvent.
    • E uno per il tracciamento dello schermo. Aggiungi questo codice alla funzione 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)
      

      Questa funzione utilizza il nome dello stato come parametro e

      • imposta il payload XDM come mappa, utilizzando il parametro della funzione,
      • configura un evento esperienza utilizzando la mappa;
      • invia l'evento esperienza utilizzando l'API Edge.sendEvent.
  2. Passa a Android ChevronDown app>kotlin+java>com.adobe.luma.tutorial.android>​ visualizzazioni ​>​ LoginSheet.kt ​

    1. Aggiungi il seguente codice evidenziato all'evento Button onClick:

      code language-kotlin
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent("login")
      
    2. Aggiungere il codice evidenziato seguente alla funzione componibile LaunchedEffect(Unit):

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

Convalida

  1. Consulta la sezione istruzioni di installazione per collegare il simulatore o il dispositivo con Assurance.

    1. Sposta l’icona Assurance a sinistra.
    2. Seleziona Home nella barra delle schede e verifica di visualizzare un ECID, E-mail e un ID CRM nella schermata iniziale.
    3. Selezionare Products nella barra delle schede.
    4. Seleziona un prodotto.
    5. Seleziona Heart (iOS) o ThumbUp (Android).
    6. Selezionare ShoppingCartAdd .
    7. Seleziona Carta di credito .
iOS
{width="300"}
Android
{width="278"}
  1. Nell'interfaccia utente di Assurance, cerca gli eventi hitReceived del fornitore com.adobe.edge.konductor.

  2. Seleziona l'evento e controlla i dati XDM nell'oggetto messages. In alternativa, puoi utilizzare Copia Copia evento non elaborato e utilizzare un editor di testo o di codice di tua preferenza per incollare e ispezionare l'evento.

    convalida raccolta dati {modal="regular"}

Passaggi successivi

Ora dovresti disporre di tutti gli strumenti necessari per iniziare ad aggiungere la raccolta dati all’app. Puoi aggiungere più informazioni sul modo in cui l’utente interagisce con i prodotti nell’app e più chiamate di interazione app e tracciamento dello schermo all’app:

  • Implementa l’ordine, il pagamento, il carrello vuoto e altre funzionalità nell’app e aggiungi eventi di esperienza di e-commerce pertinenti a questa funzionalità.
  • Ripetere la chiamata a sendAppInteractionEvent con il parametro appropriato per tenere traccia delle altre interazioni dell'app da parte dell'utente.
  • Ripeti la chiamata a sendTrackScreenEvent con il parametro appropriato per tenere traccia delle schermate visualizzate dall'utente nell'app.
TIP
Rivedi l'app completata per altri esempi.

Inviare eventi ad Analytics e Platform

Dopo aver raccolto gli eventi e averli inviati a Platform Edge Network, vengono inviati alle applicazioni e ai servizi configurati nel flusso di dati. Nelle lezioni successive, mappi questi dati a Adobe Analytics, Adobe Experience Platform e altre soluzioni Adobe Experience Cloud (come Adobe Target e Adobe Journey Optimizer).

SUCCESS
Ora hai configurato l’app per monitorare gli eventi di e-commerce, interazione tra app e tracciamento dello schermo nell’Edge Network di Adobe Experience Platform. E a tutti i servizi definiti nel flusso di dati.
Grazie per aver dedicato tempo all'apprendimento di Adobe Experience Platform Mobile SDK. Se hai domande, vuoi condividere commenti generali o suggerimenti su contenuti futuri, condividili in questo post di discussione della community Experience League.

Successivo: Gestione visualizzazioni Web

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