Tracciare i dati dell’evento
Scopri come tracciare gli eventi in un’app mobile.
L’estensione Edge Network fornisce un’API per inviare eventi Experience all’Edge Network Platform. Un Experience Event è un oggetto che contiene dati conformi alla definizione dello schema XDM ExperienceEvent. Più semplicemente, acquisiscono ciò che le persone fanno nella tua app mobile. Una volta ricevuti i dati dall’Edge Network di Platform, 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 presenti 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 gli eventi che seguono uno schema XDM definito in precedenza.
Il processo è simile a questo…
-
Identifica l’interazione con l’app mobile che stai tentando di tracciare.
-
Esamina lo schema e identifica l’evento appropriato.
-
Esamina lo schema e identifica eventuali campi aggiuntivi da utilizzare per descrivere l’evento.
-
Costruisci e popola l’oggetto dati.
-
Crea e invia evento.
-
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).
-
Per creare un oggetto contenente i dati dell’evento esperienza nell’app, puoi utilizzare un codice come:
code language-swift var xdmData: [String: Any] = [ "eventType": "commerce.productViews", "commerce": [ "productViews": [ "value": 1 ] ] ]
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:
- productListItems è un array e pertanto è possibile specificare più prodotti.
-
Per aggiungere questi dati, espandere l'oggetto
xdmData
per includere dati supplementari:code language-swift var xdmData: [String: Any] = [ "eventType": "commerce.productViews", "commerce": [ "productViews": [ "value": 1 ] ], "productListItems": [ [ "name": productName, "SKU": sku, "priceTotal": priceString, "quantity": 1 ] ] ]
-
È ora possibile utilizzare questa struttura dati per creare un
ExperienceEvent
:code language-swift let productViewEvent = ExperienceEvent(xdm: xdmData)
-
E invia l'evento e i dati all'Edge Network di Platform utilizzando l'API
sendEvent
:code language-swift Edge.sendEvent(experienceEvent: productViewEvent)
L'API Edge.sendEvent
è l'SDK di AEP Mobile equivalente alle chiamate API MobileCore.trackAction
e MobileCore.trackState
. Per ulteriori informazioni, consulta Migrare dall'estensione per dispositivi mobili Analytics all'Edge Network di Adobe Experience Platform.
Ora stai per implementare effettivamente questo codice nel tuo progetto Xcode.
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
{width="20"}
in una schermata dei dettagli del prodotto,
-
salva per dopo: quando un utente tocca
{width="15"}
in una schermata dei dettagli del prodotto,
-
acquisto: quando un utente tocca
{width="20"}
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:
-
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
.
-
Passa a Luma > Luma > Views > Products > ProductView nel Navigator dei progetti Xcode e aggiungi varie chiamate alla funzione
sendCommerceExperienceEvent
:-
Nel modificatore
.task
, entro la chiusura diATTrackingManager.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)
-
Per ciascuno dei pulsanti ( {width="15"}, {width="20"} e {width="20"}) nella barra degli strumenti, aggiungi la chiamata pertinente entro la chiusura di
ATTrackingManager.trackingAuthorizationStatus == .authorized
:-
Per {width="15"}
code language-swift // Send saveForLater commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "saveForLaters", product: product)
-
Per {width="20"}
code language-swift // Send productListAdds commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productListAdds", product: product)
-
Per {width="20"}
code language-swift // Send purchase commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
-
-
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.
-
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 l'organizzazione di Experienci Cloud,
_techmarketingdemos
in questo esempio.
Per l’evento di interazione dell’app, puoi costruire un oggetto come:
code language-swift let xdmData: [String: Any] = [ "eventType": "application.interaction", "_techmarketingdemos": [ "appInformation": [ "appInteraction": [ "name": "login", "appAction": [ "value": 1 ] ] ] ] ]
Per l’evento di tracciamento dello schermo, puoi costruire un oggetto come:
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 ] ] ] ] ]
-
-
È ora possibile utilizzare questa struttura dati per creare un
ExperienceEvent
.code language-swift let event = ExperienceEvent(xdm: xdmData)
-
Invia l’evento e i dati all’Edge Network di Platform.
code language-swift Edge.sendEvent(experienceEvent: event)
Di nuovo, possiamo implementare questo codice nel progetto Xcode.
-
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
.
-
-
Passa a Luma > Luma > Views > General > Foglio di accesso.
-
Aggiungi il seguente codice evidenziato alla chiusura del pulsante di accesso:
code language-swift // Send app interaction event MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
-
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")
-
Convalida
-
Consulta la sezione istruzioni di installazione per collegare il simulatore o il dispositivo con Assurance.
-
Sposta l’icona Assurance a sinistra.
-
Seleziona Home nella barra delle schede e verifica di visualizzare un ECID, E-mail e un ID CRM nella schermata iniziale.
-
Selezionare Products nella barra delle schede.
-
Seleziona un prodotto.
-
Seleziona {width="15"}.
-
Seleziona {width="20"}.
-
Seleziona {width="15"}.
{width="300"}
-
-
Nell'interfaccia utente di Assurance, cerca gli eventi hitReceived del fornitore com.adobe.edge.konductor.
-
Seleziona l'evento e controlla i dati XDM nell'oggetto messages. In alternativa, puoi utilizzare Copia evento non elaborato e utilizzare un editor di testo o di codice di tua preferenza per incollare e ispezionare l'evento.
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.
Inviare eventi ad Analytics e Platform
Dopo aver raccolto gli eventi e averli inviati all'Edge Network di Platform, 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.
Successivo: Gestione visualizzazioni Web