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…

  1. Identifiera den mobilappsinteraktion du försöker spåra.

  2. Granska ditt schema och identifiera rätt händelse.

  3. Granska ditt schema och identifiera eventuella ytterligare fält som ska användas för att beskriva händelsen.

  4. Skapa och fyll i dataobjektet.

  5. Skapa och skicka-händelse.

  6. 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).

    produktvyschema {modal="regular"}

  • Om du vill skapa ett objekt som innehåller händelsedata för upplevelsen i din app använder du kod som:

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

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.

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

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:

    objektschema för produktlista {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 xdmData så att det innehåller ytterligare data:

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
    )
)
  • Du kan nu använda den här datastrukturen för att skapa en ExperienceEvent:
iOS
code language-swift
let productViewEvent = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val productViewEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
  • Och skicka händelsen och data till Platform Edge Network med API:t sendEvent:
iOS
code language-swift
Edge.sendEvent(experienceEvent: productViewEvent)
Android
code language-kotlin
Edge.sendEvent(productViewEvent, null)

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å ShoppingCart på en produktinformationsskärm,
  • spara för senare: när en användare trycker på Heart / ThumbUp i en produktinformationsskärm,
  • köp: när en användare trycker på CreditCard 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:

iOS
  1. 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.
  2. Navigera till Luma > Luma > Views > Products > ProductView i Xcode Project navigator och lägg till olika anrop till funktionen sendCommerceExperienceEvent:

    1. Vid modifieraren .task, inom stängningen av ATTrackingManager.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)
      
    2. För var och en av knapparna ( Heart , ShoppingCart och CreditCard ) i verktygsfältet lägger du till det relevanta anropet i ATTrackingManager.trackingAuthorizationStatus == .authorized -stängningen:

      1. För hjärta :

        code language-swift
        // Send saveForLater commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "saveForLaters", product: product)
        
      2. För Kundvagn :

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

        code language-swift
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
        
Android
  1. Navigera till Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK i Android Studio-navigatorn och lägg till följande i funktionen 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)
    

    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.
  2. 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:

    1. 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)
      
    2. För var och en av knapparna ( ThumbUp , ShoppingCart och CreditCard ) i verktygsfältet lägger du till det relevanta anropet i scope.launch i if (MobileSDK.shared.trackingEnabled == TrackingStatus.AUTHORIZED) statement :

      1. För ThumbUp :

        code language-kotlin
        // Send saveForLater commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("saveForLaters", product)
        
      2. För Kundvagn :

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

        code language-kotlin
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("purchases", product)
        
TIP
Om du utvecklar för Android™ använder du karta (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.
    appinteraktionsschema {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, _techmarketingdemos i det här exemplet.

  • För programinteraktionshändelsen skapar du ett objekt som:

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)
            )
        )
    )
)
  • För händelsen skärmspårning skapar du ett objekt som:
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)
            )
        )
    )
)
  • Du kan nu använda den här datastrukturen för att skapa en ExperienceEvent.
iOS
code language-swift
let event = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val event = ExperienceEvent(xdmData)
  • Skicka evenemanget och data till Platform Edge Network.
iOS
code language-swift
Edge.sendEvent(experienceEvent: event)
Android
code language-kotlin
Edge.sendEvent(event, null)

Implementera koden i projektet igen.

iOS
  1. 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.
  2. Navigera till Luma > Luma > Views > General > LoginSheet.

    1. Lägg till följande markerade kod i avslutningsknappen Inloggning:

      code language-swift
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
      
    2. 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")
      
Android
  1. För enkelhetens skull definierar du två funktioner i MobileSDK. Navigera till Android ChevronDown 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.
  2. Navigera till Android app>kotlin+java>com.adobe.luma.tutorial.android>views>LoginSheet.kt

    1. Lägg till följande markerade kod i händelsen Button onClick:

      code language-kotlin
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent("login")
      
    2. 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

  1. Granska avsnittet installationsanvisningar för att ansluta simulatorn eller enheten till Assurance.

    1. Flytta ikonen Assurance åt vänster.
    2. Välj Home i flikfältet och kontrollera att du ser en ECID, Email och CRM ID på hemskärmen.
    3. Välj Products i flikfältet.
    4. Välj en produkt.
    5. Välj Heart (iOS) eller ThumbUp (Android).
    6. Välj ShoppingCartAdd .
    7. Välj Kreditkort .
iOS
{width="300"}
Android
{width="278"}
  1. I Assurance UI söker du efter hitReceived-händelserna från com.adobe.edge.konductor-leverantören.

  2. Markera händelsen och granska XDM-data i objektet messages. Du kan också använda Kopiera Copy Raw Event och en text- eller kodredigerare som du föredrar för att klistra in och inspektera händelsen.

    datainsamlingsvalidering {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 sendAppInteractionEvent med rätt parameter för att spåra andra appinteraktioner av användaren.
  • Upprepa anropet till sendTrackScreenEvent med rätt parameter för att spåra skärmar som visas av användaren i appen.
TIP
Granska den färdiga appen för fler exempel.

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).

SUCCESS
Du har nu konfigurerat din app för att spåra händelser inom handel, appinteraktion och skärmspårning till Adobe Experience Platform Edge Network. Och till alla tjänster som du har definierat i din datastream.
Tack för att du har lagt ned din tid på att lära dig om Adobe Experience Platform Mobile SDK. Om du har frågor, vill dela allmän feedback eller har förslag på framtida innehåll kan du dela dem i det här Experience League Community-diskussionsinlägget.

Nästa: Hantera WebViews

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