Spåra händelsedata
Lär dig spåra händelser i en mobilapp.
Edge Network-tillägget innehåller ett API för att skicka upplevelsehändelser till Platform Edge Network. En upplevelsehändelse är ett objekt som innehåller data som överensstämmer med XDM ExperienceEvent-schemadefinitionen. De här händelserna fångar mer enkelt vad andra gör i mobilappen. När Platform Edge Network har tagit emot data kan dessa data vidarebefordras till program och tjänster som har konfigurerats i datastream, som Adobe Analytics och Experience Platform. Läs mer om Experience Events i produktdokumentationen.
Förhandskrav
- Alla paketberoenden är konfigurerade i Xcode-projektet.
- Registrerade tillägg i AppDelegate.
- MobileCore-tillägget har konfigurerats för att använda din utveckling
appId. - Importerade SDK:er.
- Programmet har skapats och körts med ändringarna ovan.
Utbildningsmål
I den här lektionen ska du
- Lär dig strukturera XDM-data baserat på ett schema.
- Skicka en XDM-händelse baserad på en standardfältgrupp.
- Skicka en XDM-händelse baserad på en anpassad fältgrupp.
- Skicka en XDM-köphändelse.
- Validera med Assurance.
Skapa en upplevelsehändelse
Adobe Experience Platform Edge-tillägget kan skicka händelser som följer ett tidigare definierat XDM-schema till Adobe Experience Platform Edge Network.
Processen går så här…
-
Identifiera den mobilappsinteraktion du försöker spåra.
-
Granska ditt schema och identifiera rätt händelse.
-
Granska ditt schema och identifiera eventuella ytterligare fält som ska användas för att beskriva händelsen.
-
Skapa och fyll i dataobjektet.
-
Skapa och skicka-händelse.
-
Validera.
Standardfältgrupper
För standardfältgrupperna ser processen ut så här:
-
Identifiera de händelser som du försöker samla in i ditt schema. I det här exemplet spårar du händelser för e-handelsupplevelser, till exempel en produktvyhändelse (productViews).
{modal="regular"}
-
Om du vill skapa ett objekt som innehåller händelsedata för upplevelsen i din app använder du kod som:
| code language-swift |
|---|
|
I koden:
-
eventType: Beskriver händelsen som inträffade, använd ett känt värde när det är möjligt. -
commerce.productViews.value: händelsens numeriska eller booleska värde. Om det är ett booleskt värde (eller "Räknare" i Adobe Analytics) är värdet alltid 1. Om det är en numerisk händelse eller valutakändelse kan värdet vara > 1.
| code language-kotlin |
|---|
|
I koden:
-
eventType: Beskriver händelsen som inträffade, använd ett känt värde när det är möjligt. -
commerce.productViews.value: händelsens numeriska eller booleska värde. Om det är ett booleskt värde (eller "Räknare" i Adobe Analytics) är värdet alltid 1. Om det är en numerisk händelse eller valutakändelse kan värdet vara > 1.
-
Identifiera eventuella ytterligare data som är associerade med händelsen för e-handelsproduktvyn i ditt schema. I det här exemplet inkluderar du productListItems, som är en standarduppsättning med fält som används med alla e-handelsrelaterade händelser:
{modal="regular"} * Observera att **productListItems** är en matris så att flera produkter kan anges.
-
Om du vill lägga till dessa data expanderar du objektet
xdmDataså att det innehåller ytterligare data:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Du kan nu använda den här datastrukturen för att skapa en
ExperienceEvent:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Och skicka händelsen och data till Platform Edge Network med API:t
sendEvent:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
API:t Edge.sendEvent är AEP Mobile SDK som motsvarar API-anropen MobileCore.trackAction och MobileCore.trackState. Mer information finns i Migrera från mobiltillägget Analytics till Adobe Experience Platform Edge Network.
Du kommer nu att implementera den här koden i ditt projekt.
Du har olika affärsproduktrelaterade åtgärder i din app och du vill skicka händelser baserat på de åtgärder som användaren har utfört:
- vy: inträffar när en användare tittar på en viss produkt,
- lägg till i kundvagnen: när en användare trycker på
på en produktinformationsskärm, - spara för senare: när en användare trycker på
/ i en produktinformationsskärm, - köp: när en användare trycker på
på en produktinformationsskärm.
Om du vill implementera sändning av e-handelsrelaterade upplevelsehändelser på ett återanvändbart sätt använder du en dedikerad funktion:
-
Navigera till Luma > Luma > Utils > MobileSDK i Xcode Project navigator och lägg till följande i funktionen
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)Den här funktionen tar händelsetypen och produkten för upplevelseupplevelsen som parametrar och
- ställer in XDM-nyttolasten som en ordlista med hjälp av funktionens parametrar,
- ställer in en upplevelsehändelse med hjälp av ordlistan,
- skickar upplevelsehändelsen med API:t
Edge.sendEvent.
-
Navigera till Luma > Luma > Views > Products > ProductView i Xcode Project navigator och lägg till olika anrop till funktionen
sendCommerceExperienceEvent:-
Vid modifieraren
.task, inom stängningen avATTrackingManager.trackingAuthorizationStatus. Den här.task-modifieraren anropas när produktvyn initieras och visas, så du vill skicka en produktvyhändelse vid det tillfället.code language-swift // Send productViews commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productViews", product: product) -
För var och en av knapparna (
, och ) i verktygsfältet lägger du till det relevanta anropet iATTrackingManager.trackingAuthorizationStatus == .authorized-stängningen:-
För
:code language-swift // Send saveForLater commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "saveForLaters", product: product) -
För
:code language-swift // Send productListAdds commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productListAdds", product: product) -
För
:code language-swift // Send purchase commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
-
-
-
Navigera till Android
> app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK i Android Studio-navigatorn och lägg till följande i funktionenfunc 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)Den här funktionen tar händelsetypen och produkten för upplevelseupplevelsen som parametrar och
- ställer in XDM-nyttolasten som en karta med hjälp av funktionens parametrar,
- ställer in en upplevelsehändelse med hjälp av kartan,
- skickar upplevelsehändelsen med API:t
Edge.sendEvent.
-
Navigera till app > kotlin+java > com.adobe.luma.tutorial.android > views > ProductView.kt i Android Studio-navigatorn och lägg till olika anrop till funktionen
sendCommerceExperienceEvent:-
Vid den sammansatta funktionen
LaunchedEffect(Unit)vill du skicka en produktvyhändelse när en produkt visas.code language-kotlin // Send productViews commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("productViews", product) -
För var och en av knapparna (
, och ) i verktygsfältet lägger du till det relevanta anropet iscope.launchiif (MobileSDK.shared.trackingEnabled == TrackingStatus.AUTHORIZED) statement:-
För
:code language-kotlin // Send saveForLater commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("saveForLaters", product) -
För
:code language-kotlin // Send productListAdds commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("productListAdds", product) -
För
:code language-kotlin // Send purchase commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("purchases", product)
-
-
java.util.Map) som grundgränssnitt för att skapa din XDM-nyttolast.Anpassade fältgrupper
Tänk dig att du vill spåra skärmvisningar och interaktioner i själva appen. Kom ihåg att du har definierat en anpassad fältgrupp för den här typen av händelser.
-
Identifiera de händelser du försöker samla in i ditt schema.
{modal="regular"}
-
Börja konstruera objektet.
note note NOTE -
Standardfältgrupper börjar alltid i objektroten.
-
Anpassade fältgrupper börjar alltid under ett objekt som är unikt för din Experience Cloud-organisation,
_techmarketingdemosi det här exemplet.
-
-
För programinteraktionshändelsen skapar du ett objekt som:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- För händelsen skärmspårning skapar du ett objekt som:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Du kan nu använda den här datastrukturen för att skapa en
ExperienceEvent.
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Skicka evenemanget och data till Platform Edge Network.
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
Implementera koden i projektet igen.
-
För enkelhetens skull definierar du två funktioner i MobileSDK. Navigera till Luma > Luma > Utils > MobileSDK i Xcode Project-navigatorn.
-
Ett för appinteraktioner. Lägg till den här koden i funktionen
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)Den här funktionen använder åtgärdsnamnet som en parameter och
- ställer in XDM-nyttolasten som en ordlista med hjälp av parametern från funktionen,
- ställer in en upplevelsehändelse med hjälp av ordlistan,
- skickar upplevelsehändelsen med API:t
Edge.sendEvent.
-
Och en för skärmspårning. Lägg till den här koden i funktionen
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)Den här funktionen använder lägesnamnet som en parameter och
- ställer in XDM-nyttolasten som en ordlista med hjälp av parametern från funktionen,
- ställer in en upplevelsehändelse med hjälp av ordlistan,
- skickar upplevelsehändelsen med API:t
Edge.sendEvent.
-
-
Navigera till Luma > Luma > Views > General > LoginSheet.
-
Lägg till följande markerade kod i avslutningsknappen Inloggning:
code language-swift // Send app interaction event MobileSDK.shared.sendAppInteractionEvent(actionName: "login") -
Lägg till följande markerade kod i modifieraren
onAppear:code language-swift // Send track screen event MobileSDK.shared.sendTrackScreenEvent(stateName: "luma: content: ios: us: en: login")
-
-
För enkelhetens skull definierar du två funktioner i MobileSDK. Navigera till Android
app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK i Android Studio-navigatorn.-
Ett för appinteraktioner. Lägg till den här koden i funktionen
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)Den här funktionen använder åtgärdsnamnet som en parameter och
- ställer in XDM-nyttolasten som en karta med parametern från funktionen,
- ställer in en upplevelsehändelse med hjälp av kartan,
- skickar upplevelsehändelsen med API:t
Edge.sendEvent.
-
Och en för skärmspårning. Lägg till den här koden i funktionen
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)Den här funktionen använder lägesnamnet som en parameter och
- ställer in XDM-nyttolasten som en karta med parametern från funktionen,
- ställer in en upplevelsehändelse med hjälp av kartan,
- skickar upplevelsehändelsen med API:t
Edge.sendEvent.
-
-
Navigera till Android
app>kotlin+java>com.adobe.luma.tutorial.android>views>LoginSheet.kt-
Lägg till följande markerade kod i händelsen Button onClick:
code language-kotlin // Send app interaction event MobileSDK.shared.sendAppInteractionEvent("login") -
Lägg till följande markerade kod i den sammansatta funktionen
LaunchedEffect(Unit):code language-kotlin // Send track screen event MobileSDK.shared.sendTrackScreenEvent("luma: content: android: us: en: login")
-
Validering
-
Granska avsnittet installationsanvisningar för att ansluta simulatorn eller enheten till Assurance.
- Flytta ikonen Assurance åt vänster.
- Välj Home i flikfältet och kontrollera att du ser en ECID, Email och CRM ID på hemskärmen.
- Välj Products i flikfältet.
- Välj en produkt.
- Välj
(iOS) eller (Android). - Välj
. - Välj
.
-
I Assurance UI söker du efter hitReceived-händelserna från com.adobe.edge.konductor-leverantören.
-
Markera händelsen och granska XDM-data i objektet messages. Du kan också använda
Copy Raw Event och en text- eller kodredigerare som du föredrar för att klistra in och inspektera händelsen. {modal="regular"}
Nästa steg
Nu bör du ha alla verktyg du behöver för att börja lägga till datainsamling i appen. Du kan lägga till mer information om hur användaren interagerar med dina produkter i appen och du kan lägga till fler appinteraktioner och skärmsspårningsanrop till appen:
- Implementera beställning, utcheckning, tom varukorg och andra funktioner i appen och lägg till relevanta händelser för e-handelsupplevelser i den här funktionen.
- Upprepa anropet till
sendAppInteractionEventmed rätt parameter för att spåra andra appinteraktioner av användaren. - Upprepa anropet till
sendTrackScreenEventmed rätt parameter för att spåra skärmar som visas av användaren i appen.
Skicka händelser till Analytics och Platform
Nu när du har samlat in händelserna och skickat dem till Platform Edge Network skickas de till de program och tjänster som konfigurerats i datastream. I senare lektioner mappar du dessa data till Adobe Analytics, Adobe Experience Platform och andra Adobe Experience Cloud-lösningar (som Adobe Target och Adobe Journey Optimizer).
Nästa: Hantera WebViews