Gebeurtenisgegevens bijhouden

Leer hoe u gebeurtenissen in een mobiele app kunt bijhouden.

De Edge Network-extensie biedt een API waarmee u ervaringsgebeurtenissen kunt verzenden naar het Platform Edge Network. Een ervaringsgebeurtenis is een object dat gegevens bevat die voldoen aan de XDM ExperienceEvent-schemadefinitie. Meer eenvoudig, deze gebeurtenissen vangen wat mensen in uw mobiele app doen. Zodra het Platform Edge Network gegevens ontving, kunnen die gegevens aan toepassingen en de diensten worden door:sturen die in uw gegevensstroom, zoals Adobe Analytics en Experience Platform worden gevormd. Leer meer over de Gebeurtenissen van de Ervaringin de productdocumentatie.

Vereisten

  • Alle pakketgebiedsdelen worden gevormd in uw project Xcode.
  • Geregistreerde extensies in AppDelegate .
  • De geconfigureerde MobileCore-extensie voor gebruik van uw ontwikkeling appId.
  • Geïmporteerde SDK's.
  • De app is gemaakt en uitgevoerd met de bovenstaande wijzigingen.

Leerdoelstellingen

In deze les zult u

  • Begrijp hoe te om XDM gegevens te structureren die op een schema worden gebaseerd.
  • Verzend een XDM-gebeurtenis op basis van een standaardveldgroep.
  • Verzend een XDM-gebeurtenis op basis van een aangepaste veldgroep.
  • Verzend een XDM-aankoopgebeurtenis.
  • Valideren met Assurance.

Een ervaringsgebeurtenis maken

De Adobe Experience Platform Edge-extensie kan gebeurtenissen die een eerder gedefinieerd XDM-schema volgen, naar Adobe Experience Platform Edge Network verzenden.

Het proces gaat als volgt…

  1. Identificeer de mobiele toepassingsinteractie die u probeert te volgen.

  2. Herzie uw schema en identificeer de aangewezen gebeurtenis.

  3. Controleer uw schema en identificeer om het even welke extra gebieden die zouden moeten worden gebruikt om de gebeurtenis te beschrijven.

  4. Hiermee wordt het gegevensobject samengesteld en gevuld.

  5. Maak en verzend gebeurtenis.

  6. Valideren.

Standaardveldgroepen

Voor de standaardveldgroepen ziet het proces er als volgt uit:

  • In uw schema, identificeer de gebeurtenissen die u probeert te verzamelen. In dit voorbeeld volgt u de gebeurtenissen van de handelservaring, bijvoorbeeld een gebeurtenis van de productmening (productViews).

    schema van de productmening {modal="regular"}

  • Als u een object wilt maken dat de ervaringsgebeurtenisgegevens in uw app bevat, gebruikt u de volgende code:

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

In deze code:

  • eventType: Beschrijft de gebeurtenis die voorkwam, gebruik a bekende waardewanneer mogelijk.

  • commerce.productViews.value : de numerieke of Booleaanse waarde van de gebeurtenis. Als het een Booleaanse waarde (of "Teller" in Adobe Analytics) is, wordt de waarde altijd ingesteld op 1. Als het een numerieke of valutagebeurtenis is, kan de waarde > 1 zijn.

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

In deze code:

  • eventType: Beschrijft de gebeurtenis die voorkwam, gebruik a bekende waardewanneer mogelijk.

  • commerce.productViews.value : de numerieke of Booleaanse waarde van de gebeurtenis. Als het een Booleaanse waarde (of "Teller" in Adobe Analytics) is, wordt de waarde altijd ingesteld op 1. Als het een numerieke of valutagebeurtenis is, kan de waarde > 1 zijn.

  • In uw schema, identificeer om het even welke extra gegevens verbonden aan de gebeurtenis van de de meningsmening van het handelsproduct. In dit voorbeeld neemt u productListItems op. Dit is een standaardset velden die worden gebruikt met aan handel gerelateerde gebeurtenissen:

    schema van de punten van de productlijst {modal="regular"}

    * **productListItems** is een array, zodat meerdere producten kunnen worden geleverd.

  • Als u deze gegevens wilt toevoegen, vouwt u het xdmData -object uit om aanvullende gegevens op te nemen:

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
    )
)
  • U kunt deze gegevensstructuur nu gebruiken om een ExperienceEvent te maken:
iOS
code language-swift
let productViewEvent = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val productViewEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
  • En verzend de gebeurtenis en de gegevens naar Platform Edge Network met behulp van de sendEvent API:
iOS
code language-swift
Edge.sendEvent(experienceEvent: productViewEvent)
Android
code language-kotlin
Edge.sendEvent(productViewEvent, null)

De Edge.sendEventAPI is de AEP Mobile SDK equivalent aan de MobileCore.trackActionen MobileCore.trackStateAPI vraag. Zie van de mobiele uitbreiding van Analytics aan Adobe Experience Platform Edge Networkvoor meer informatie migreren.

U gaat nu deze code in uw project uitvoeren.
U hebt verschillende acties met betrekking tot handelsproducten in uw app en u wilt gebeurtenissen verzenden op basis van deze acties die door de gebruiker worden uitgevoerd:

  • weergave: vindt plaats wanneer een gebruiker een specifiek product weergeeft,
  • toevoegen aan kar: wanneer een gebruiker ShoppingCart in het scherm van het productdetail tikt,
  • sparen voor later: wanneer een gebruiker Hart / ThumbUp in het scherm van het productdetail tikt,
  • aankoop: wanneer een gebruiker CreditCard in het scherm van het productdetail tikt.

Om het verzenden van aan handel gerelateerde ervaringsgebeurtenissen op een herbruikbare manier uit te voeren, gebruikt u een specifieke functie:

iOS
  1. Navigeer naar Luma > Luma > Utils > MobileSDK in Xcode Project navigator en voeg het volgende toe aan de func sendCommerceExperienceEvent(commerceEventType: String, product: Product) functie.

    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)
    

    Deze functie neemt het type en het product van de handelservaring als parameters en

    • stelt de XDM-payload in als een woordenboek, waarbij de parameters van de functie worden gebruikt;
    • stelt een ervaringsgebeurtenis op met behulp van het woordenboek;
    • verzendt de ervaringsgebeurtenis gebruikend Edge.sendEventAPI.
  2. Navigeer naar Luma > Luma > Views > Products > ProductView in de Xcode-projectnavigator en voeg verschillende aanroepen toe aan de functie sendCommerceExperienceEvent :

    1. Bij de .task -modifier, binnen de ATTrackingManager.trackingAuthorizationStatus -closure. Deze optie .task wordt aangeroepen wanneer de productweergave wordt geïnitialiseerd en weergegeven, zodat u op dat specifieke moment een productweergave-gebeurtenis wilt verzenden.

      code language-swift
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productViews", product: product)
      
    2. Voor elk van de knopen ( Hart , ShoppingCart , en CreditCard ) in de toolbar, voeg de relevante vraag binnen de ATTrackingManager.trackingAuthorizationStatus == .authorized sluiting toe:

      1. Voor Hart :

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

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

        code language-swift
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
        
Android
  1. Navigeer aan Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK in de navigator van Android Studio, en voeg het volgende aan de func sendCommerceExperienceEvent(commerceEventType: String, product: Product) functie toe.

    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)
    

    Deze functie neemt het type en het product van de handelservaring als parameters en

    • stelt de XDM nuttige lading als kaart, gebruikend de parameters van de functie op;
    • stelt een ervaringsgebeurtenis op met behulp van de kaart;
    • verzendt de ervaringsgebeurtenis gebruikend Edge.sendEventAPI.
  2. Navigeer naar app > kotlin+java > com.adobe.luma.tutorial.android > views > ProductView.kt in de Android Studio-navigator en voeg verschillende aanroepen toe aan de functie sendCommerceExperienceEvent :

    1. Bij de functie LaunchedEffect(Unit) composable wilt u een productweergave-gebeurtenis verzenden op het specifieke moment dat een product wordt weergegeven.

      code language-kotlin
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent("productViews", product)
      
    2. Voor elk van de knopen ( ThumbUp , ShoppingCart , en CreditCard ) in de toolbar, voeg de relevante vraag binnen scope.launch van if (MobileSDK.shared.trackingEnabled == TrackingStatus.AUTHORIZED) statement toe:

      1. Voor ThumbUp :

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

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

        code language-kotlin
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("purchases", product)
        
TIP
Voor het geval u voor Android™ ontwikkelt, gebruik Kaart (java.util.Map) als stichtingsinterface om uw nuttige lading XDM te construeren.

Aangepaste veldgroepen

Stel dat u schermweergaven en interacties wilt bijhouden in de app zelf. U hebt een aangepaste veldgroep voor dit type gebeurtenissen gedefinieerd.

  • In uw schema, identificeer de gebeurtenissen u probeert te verzamelen.
    schema van de toepassingsinteractie {modal="regular"}

  • Constructie van het object beginnen.

    note note
    NOTE
    • Standaardveldgroepen beginnen altijd in de hoofdmap van het object.

    • Groepen met aangepaste velden beginnen altijd onder een object dat uniek is voor uw Experience Cloud-organisatie, _techmarketingdemos in dit voorbeeld.

  • Voor de toepassingsinteractiegebeurtenis maakt u een object als:

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)
            )
        )
    )
)
  • Voor de gebeurtenis screen tracking zou u een object maken zoals:
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)
            )
        )
    )
)
  • U kunt deze gegevensstructuur nu gebruiken om een ExperienceEvent te maken.
iOS
code language-swift
let event = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val event = ExperienceEvent(xdmData)
  • Verzend de gebeurtenis en gegevens naar Platform Edge Network.
iOS
code language-swift
Edge.sendEvent(experienceEvent: event)
Android
code language-kotlin
Edge.sendEvent(event, null)

Implementeer deze code opnieuw in uw project.

iOS
  1. Voor het gemak definieert u twee functies in MobileSDK . Navigeer naar Luma > Luma > Utils > MobileSDK in de Xcode-projectnavigator.

    • Een voor app-interacties. Voeg deze code toe aan de functie 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)
      

      Deze functie gebruikt de naam van de handeling als parameter en

      • stelt de XDM-payload in als een woordenboek, waarbij de parameter van de functie wordt gebruikt;
      • stelt een ervaringsgebeurtenis op met behulp van het woordenboek;
      • verzendt de ervaringsgebeurtenis gebruikend Edge.sendEventAPI.
    • En één voor het volgen van het scherm. Voeg deze code toe aan de functie 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)
      

      Deze functie gebruikt de statusnaam als parameter en

      • stelt de XDM-payload in als een woordenboek, waarbij de parameter van de functie wordt gebruikt;
      • stelt een ervaringsgebeurtenis op met behulp van het woordenboek;
      • verzendt de ervaringsgebeurtenis gebruikend Edge.sendEventAPI.
  2. Navigeer naar Luma > Luma > Views > General > LoginSheet .

    1. Voeg de volgende gemarkeerde code toe aan de knop Aanmelden:

      code language-swift
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
      
    2. Voeg de volgende gemarkeerde code toe aan de optie onAppear :

      code language-swift
      // Send track screen event
      MobileSDK.shared.sendTrackScreenEvent(stateName: "luma: content: ios: us: en: login")
      
Android
  1. Voor het gemak definieert u twee functies in MobileSDK . Navigeer aan Android ChevronDown app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK in uw navigator van Android Studio.

    • Een voor app-interacties. Voeg deze code toe aan de functie 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)
      

      Deze functie gebruikt de naam van de handeling als parameter en

      • stelt de XDM nuttige lading als kaart, gebruikend de parameter van de functie op;
      • stelt een ervaringsgebeurtenis op met behulp van de kaart;
      • verzendt de ervaringsgebeurtenis gebruikend Edge.sendEventAPI.
    • En één voor het volgen van het scherm. Voeg deze code toe aan de functie 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)
      

      Deze functie gebruikt de statusnaam als parameter en

      • stelt de XDM nuttige lading als kaart, gebruikend de parameter van de functie op;
      • stelt een ervaringsgebeurtenis op met behulp van de kaart;
      • verzendt de ervaringsgebeurtenis gebruikend Edge.sendEventAPI.
  2. Ga aan Android ChevronDown app>kotlin+java>com.adobe.luma.tutorial.android>views>LoginSheet.kt

    1. Voeg de volgende gemarkeerde code toe aan de gebeurtenis Button onClick :

      code language-kotlin
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent("login")
      
    2. Voeg de volgende gemarkeerde code toe aan de functie LaunchedEffect(Unit) composable:

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

Validatie

  1. Herzie de sectie van opstellingsinstructiesom uw simulator of apparaat met Assurance te verbinden.

    1. Het Assurance-pictogram naar links verplaatsen.
    2. Selecteer Home in de tabbalk en controleer of de ECID , Email en CRM ID in het scherm Home worden weergegeven.
    3. Selecteer Products in de tabbalk.
    4. Selecteer een product.
    5. Selecteer Hart (iOS) of ThumbUp (Android).
    6. Selecteer ShoppingCartAdd .
    7. Selecteer CreditCard .
iOS
{width="300"}
Android
{width="278"}
  1. Zoek in de gebruikersinterface van Assurance naar de hitReceived -gebeurtenissen van de com.adobe.edge.konductor -leverancier.

  2. Selecteer de gebeurtenis en bekijk de XDM-gegevens in het messages -object. Alternatief, kunt u Exemplaar gebruiken Copy Raw Event en een tekst of coderedacteur van uw voorkeur gebruiken om de gebeurtenis te kleven en te inspecteren.

    de bevestiging van de gegevensinzameling {modal="regular"}

Volgende stappen

U moet nu over alle gereedschappen beschikken om gegevensverzameling aan uw app toe te voegen. U kunt meer informatie toevoegen over de manier waarop de gebruiker in de app met uw producten werkt en u kunt meer oproepen voor interactie tussen de apps en het bijhouden van schermen toevoegen aan de app:

  • Implementeer de opdracht, kassa, lege mand en andere functionaliteit van de app en voeg relevante gebeurtenissen uit de handelservaring toe aan deze functionaliteit.
  • Herhaal de aanroep van sendAppInteractionEvent met de juiste parameter om andere toepassingsinteracties van de gebruiker bij te houden.
  • Herhaal de aanroep van sendTrackScreenEvent met de juiste parameter om schermen bij te houden die door de gebruiker in de app worden weergegeven.
TIP
Herzie voltooide appvoor meer voorbeelden.

Gebeurtenissen verzenden naar Analytics en Platform

Nu u de gebeurtenissen hebt verzameld en hen verzonden naar Platform Edge Network, worden zij verzonden naar de toepassingen en de diensten die in uw worden gevormd datastream. In recentere lessen, brengt u deze gegevens in kaart aan Adobe Analytics, Adobe Experience Platform, en andere oplossingen van Adobe Experience Cloud (als Adobe Targeten Adobe Journey Optimizer).

SUCCESS
U hebt nu uw app ingesteld om gebeurtenissen op het gebied van handel, interactie tussen apps en het bijhouden van schermen bij te houden op de Adobe Experience Platform Edge Network. En aan alle diensten die u in uw gegevensstroom hebt bepaald.
Bedankt dat je tijd hebt geïnvesteerd in het leren van Adobe Experience Platform Mobile SDK. Als u vragen hebt, algemene terugkoppelen willen delen, of suggesties over toekomstige inhoud hebben, hen op deze Communautaire besprekingspost van Experience Leaguedelen.

Volgende: Handle WebViews

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