Verfolgen von Ereignisdaten

Erfahren Sie, wie Sie Ereignisse in einer Mobile App verfolgen.

Die Edge Network-Erweiterung bietet eine API zum Senden von Erlebnisereignissen an Platform Edge Network. Ein Erlebnisereignis ist ein Objekt, das Daten enthält, die der Schemadefinition von XDM ExperienceEvent entsprechen. Einfach ausgedrückt, erfassen diese Ereignisse, was Menschen in Ihrer App tun. Nachdem Platform Edge Network Daten erhalten hat, können diese Daten an Programme und Services weitergeleitet werden, die in Ihrem Datenstrom konfiguriert sind, z. B. Adobe Analytics und Experience Platform. Weitere Informationen zu Erlebnisereignissen finden Sie in der Produktdokumentation.

Voraussetzungen

  • Alle Paketabhängigkeiten werden in Ihrem Xcode-Projekt konfiguriert.
  • Registrierte Erweiterungen in AppDelegate.
  • MobileCore-Erweiterung zur Verwendung Ihrer appId konfiguriert.
  • SDKs importiert.
  • Die App mit den oben genannten Änderungen wurde erfolgreich erstellt und ausgeführt.

Lernziele

In dieser Lektion werden Sie

  • Erfahren Sie, wie Sie XDM-Daten basierend auf einem Schema strukturieren.
  • Senden Sie ein XDM-Ereignis basierend auf einer Standardfeldgruppe.
  • Senden Sie ein XDM-Ereignis basierend auf einer benutzerdefinierten Feldergruppe.
  • Senden Sie ein XDM-Kaufereignis.
  • Validieren mit Assurance.

Erstellen eines Erlebnisereignisses

Die Adobe Experience Platform Edge-Erweiterung kann Ereignisse, die einem zuvor definierten XDM-Schema folgen, an Adobe Experience Platform Edge Network senden.

Der Prozess läuft so ab…

  1. Identifizieren Sie die Mobile-App-Interaktion, die Sie verfolgen möchten.

  2. Prüfen Sie Ihr Schema und ermitteln Sie das entsprechende Ereignis.

  3. Prüfen Sie Ihr Schema und identifizieren Sie alle zusätzlichen Felder, die zur Beschreibung des Ereignisses verwendet werden sollten.

  4. Erstellen und Auffüllen des Datenobjekts.

  5. Ereignis erstellen und senden.

  6. Validieren.

Standardfeldgruppen

Für die Standardfeldgruppen sieht der Prozess wie folgt aus:

  • Identifizieren Sie in Ihrem Schema die Ereignisse, die Sie erfassen möchten. In diesem Beispiel verfolgen Sie Commerce-Erlebnisereignisse, z. B. ein Produktansichtsereignis productViews.

    Produktansichtsschema {modal="regular"}

  • Um ein -Objekt zu erstellen, das die Erlebnisereignisdaten in Ihrer App enthält, verwenden Sie Code wie den folgenden:

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

In diesem Code:

  • eventType: Beschreibt das aufgetretene Ereignis. Verwenden Sie nach Möglichkeit einen bekannten".

  • commerce.productViews.value: Der numerische oder boolesche Wert des Ereignisses. Wenn es sich um einen booleschen Wert (oder „Zähler“ in Adobe Analytics) handelt, wird der Wert immer auf 1 festgelegt. Wenn es sich um ein numerisches oder ein Währungsereignis handelt, kann der Wert > 1 sein.

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

In diesem Code:

  • eventType: Beschreibt das aufgetretene Ereignis. Verwenden Sie nach Möglichkeit einen bekannten".

  • commerce.productViews.value: Der numerische oder boolesche Wert des Ereignisses. Wenn es sich um einen booleschen Wert (oder „Zähler“ in Adobe Analytics) handelt, wird der Wert immer auf 1 festgelegt. Wenn es sich um ein numerisches oder ein Währungsereignis handelt, kann der Wert > 1 sein.

  • Identifizieren Sie in Ihrem Schema alle zusätzlichen Daten, die mit dem Commerce-Produktansichtsereignis verknüpft sind. In diesem Beispiel schließen Sie productListItems ein. Dies ist ein Standardsatz von Feldern, die mit jedem Commerce-bezogenen Ereignis verwendet werden:

    Schema für Produktlistenelemente {modal="regular"}

    * Beachten Sie **dass „productListItems** ein Array ist, sodass mehrere Produkte bereitgestellt werden können.

  • Um diese Daten hinzuzufügen, erweitern Sie Ihr xdmData-Objekt, um zusätzliche Daten einzuschließen:

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
    )
)
  • Sie können jetzt diese Datenstruktur verwenden, um eine ExperienceEvent zu erstellen:
iOS
code language-swift
let productViewEvent = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val productViewEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build()
  • und senden Sie das Ereignis und die Daten mithilfe der sendEvent-API an Platform Edge Network:
iOS
code language-swift
Edge.sendEvent(experienceEvent: productViewEvent)
Android
code language-kotlin
Edge.sendEvent(productViewEvent, null)

Die Edge.sendEvent-API entspricht der AEP Mobile SDK den MobileCore.trackAction- und MobileCore.trackState-API-Aufrufen. Weitere finden Sie unter „Migrieren von der Analytics Mobile-ErweiterungAdobe Experience Platform Edge Network".

Sie werden diesen Code jetzt in Ihrem Projekt implementieren.
Sie haben verschiedene Commerce-produktbezogene Aktionen in Ihrer App und möchten Ereignisse senden, die auf diesen Aktionen basieren und vom Benutzer ausgeführt werden:

  • Ansicht: Tritt auf, wenn ein Benutzer ein bestimmtes Produkt anzeigt,
  • Zum Warenkorb hinzufügen: Wenn ein Benutzer auf Warenkorb in einem Produktdetailbildschirm tippt,
  • Für später speichern: Wenn ein Benutzer in einem Produktdetailbildschirm auf Herz / Daumen hoch tippt,
  • Kauf: Wenn ein Benutzer auf Kreditkarte in einem Produktdetailbildschirm tippt.

Um den wiederverwendbaren Versand von Commerce-bezogenen Erlebnisereignissen zu implementieren, verwenden Sie eine dedizierte Funktion:

iOS
  1. Navigieren Sie im Xcode-Projekt-Luma zu Luma > Utils > > MobileSDK) und fügen Sie Folgendes zur func sendCommerceExperienceEvent(commerceEventType: String, product: Product) hinzu.

    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)
    

    Diese Funktion akzeptiert den Ereignistyp und das Produkt des Commerce-Erlebnisses als Parameter und

    • richtet die XDM-Payload mithilfe der Parameter aus der -Funktion als Wörterbuch ein,
    • ein Erlebnisereignis mithilfe des Wörterbuchs einrichtet,
    • sendet das Erlebnisereignis über die Edge.sendEvent-API.
  2. Navigieren Sie im Xcode-Projekt-Navigator zu Luma > Luma > Views > Products > ProductView und fügen Sie verschiedene Aufrufe an die sendCommerceExperienceEvent Funktion hinzu:

    1. Am Modifikator .task innerhalb des ATTrackingManager.trackingAuthorizationStatus. Dieser .task wird aufgerufen, wenn die Produktansicht initialisiert und angezeigt wird. Daher möchten Sie zu diesem Zeitpunkt ein Produktansichtsereignis senden.

      code language-swift
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productViews", product: product)
      
    2. Fügen Sie für jede der Schaltflächen ( Herz , Warenkorb und Kreditkarte ) in der Symbolleiste den entsprechenden Aufruf innerhalb des ATTrackingManager.trackingAuthorizationStatus == .authorized hinzu:

      1. Für Herz :

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

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

        code language-swift
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
        
Android
  1. Navigieren Sie im Android Studio-Navigator zu Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK und fügen Sie Folgendes zur func sendCommerceExperienceEvent(commerceEventType: String, product: Product) hinzu.

    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)
    

    Diese Funktion akzeptiert den Ereignistyp und das Produkt des Commerce-Erlebnisses als Parameter und

    • richtet die XDM-Payload mithilfe der Parameter aus der -Funktion als Zuordnung ein,
    • ein Erlebnisereignis mithilfe der Zuordnung einrichtet,
    • sendet das Erlebnisereignis über die Edge.sendEvent-API.
  2. Android Navigieren Sie im Studio-Navigator zu app > kotlin+java > com.adobe.luma.tutorial. > views > ProductView.kt und fügen Sie der sendCommerceExperienceEvent verschiedene Aufrufe hinzu:

    1. Bei der LaunchedEffect(Unit) zusammensetzbaren Funktion möchten Sie ein Produktansichtsereignis zum Zeitpunkt der Anzeige eines Produkts senden.

      code language-kotlin
      // Send productViews commerce experience event
      MobileSDK.shared.sendCommerceExperienceEvent("productViews", product)
      
    2. Fügen Sie für jede der Schaltflächen ( ThumbUp , ShoppingCart und CreditCard ) in der Symbolleiste den entsprechenden Aufruf in der scope.launch der if (MobileSDK.shared.trackingEnabled == TrackingStatus.AUTHORIZED) statement hinzu:

      1. Für ThumbUp :

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

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

        code language-kotlin
        // Send purchase commerce experience event
        MobileSDK.shared.sendCommerceExperienceEvent("purchases", product)
        
TIP
Wenn Sie eine Entwicklung für Android™ durchführen, verwenden Sie Map (java.util.Map) als grundlegende Schnittstelle zum Erstellen Ihrer XDM-Payload.

Benutzerdefinierte Feldergruppen

Angenommen, Sie möchten Bildschirmansichten und Interaktionen in der App selbst verfolgen. Denken Sie daran, dass Sie eine benutzerdefinierte Feldergruppe für diesen Ereignistyp definiert haben.

  • Identifizieren Sie in Ihrem Schema die Ereignisse, die Sie erfassen möchten.
    App-Interaktionsschema {modal="regular"}

  • Beginnen Sie mit dem Aufbau Ihres -Objekts.

    note note
    NOTE
    • Standardfeldgruppen beginnen immer im Objektstamm.

    • Benutzerdefinierte Feldergruppen beginnen immer unter einem Objekt, das für Ihre Experience Cloud-Organisation eindeutig ist, _techmarketingdemos in diesem Beispiel.

  • Für das Ereignis „App Interaction“ würden Sie ein -Objekt wie das folgende erstellen:

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 das Bildschirm-Tracking-Ereignis würden Sie ein Objekt wie das folgende erstellen:
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)
            )
        )
    )
)
  • Sie können diese Datenstruktur jetzt verwenden, um eine ExperienceEvent zu erstellen.
iOS
code language-swift
let event = ExperienceEvent(xdm: xdmData)
Android
code language-kotlin
val event = ExperienceEvent(xdmData)
  • Senden Sie das Ereignis und die Daten an Platform Edge Network.
iOS
code language-swift
Edge.sendEvent(experienceEvent: event)
Android
code language-kotlin
Edge.sendEvent(event, null)

Implementieren Sie diesen Code erneut in Ihrem Projekt.

iOS
  1. Zur Vereinfachung definieren Sie zwei Funktionen in MobileSDK. Navigieren Sie in Ihrem Xcode-Projekt Luma Navigator zu Luma > Utils > > MobileSDK.

    • Eines für App-Interaktionen. Fügen Sie den folgenden Code zur func sendAppInteractionEvent(actionName: String) hinzu:

      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)
      

      Diese Funktion verwendet den Aktionsnamen als Parameter und

      • richtet die XDM-Payload mithilfe des Parameters aus der -Funktion als Wörterbuch ein,
      • ein Erlebnisereignis mithilfe des Wörterbuchs einrichtet,
      • sendet das Erlebnisereignis über die Edge.sendEvent-API.
    • Und einen für Bildschirmverfolgung. Fügen Sie den folgenden Code zur func sendTrackScreenEvent(stateName: String) hinzu:

      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)
      

      Diese Funktion verwendet den Statusnamen als Parameter und

      • richtet die XDM-Payload mithilfe des Parameters aus der -Funktion als Wörterbuch ein,
      • ein Erlebnisereignis mithilfe des Wörterbuchs einrichtet,
      • sendet das Erlebnisereignis über die Edge.sendEvent-API.
  2. Navigieren Sie zu Luma > Luma > Views > General > LoginSheet.

    1. Fügen Sie den folgenden hervorgehobenen Code zum Schließen der Schaltfläche „Anmelden“ hinzu:

      code language-swift
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
      
    2. Fügen Sie den folgenden hervorgehobenen Code zu onAppear Modifikator hinzu:

      code language-swift
      // Send track screen event
      MobileSDK.shared.sendTrackScreenEvent(stateName: "luma: content: ios: us: en: login")
      
Android
  1. Zur Vereinfachung definieren Sie zwei Funktionen in MobileSDK. Android Navigieren Sie in Ihrem Android -Navigator zu {} ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android models > MobileSDK .

    • Eines für App-Interaktionen. Fügen Sie den folgenden Code zur fun sendAppInteractionEvent(actionName: String) hinzu:

      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)
      

      Diese Funktion verwendet den Aktionsnamen als Parameter und

      • richtet die XDM-Payload mithilfe des Parameters aus der -Funktion als Zuordnung ein,
      • ein Erlebnisereignis mithilfe der Zuordnung einrichtet,
      • sendet das Erlebnisereignis über die Edge.sendEvent-API.
    • Und einen für Bildschirmverfolgung. Fügen Sie den folgenden Code zur fun sendTrackScreenEvent(stateName: String) hinzu:

      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)
      

      Diese Funktion verwendet den Statusnamen als Parameter und

      • richtet die XDM-Payload mithilfe des Parameters aus der -Funktion als Zuordnung ein,
      • ein Erlebnisereignis mithilfe der Zuordnung einrichtet,
      • sendet das Erlebnisereignis über die Edge.sendEvent-API.
  2. Navigieren Sie zu Android ChevronDown app>kotlin+java>com.adobe.luma.tutorial.android>​ views ​>​ LoginSheet.kt ​

    1. Fügen Sie den folgenden hervorgehobenen Code zum Ereignis Button onClick hinzu:

      code language-kotlin
      // Send app interaction event
      MobileSDK.shared.sendAppInteractionEvent("login")
      
    2. Fügen Sie den folgenden hervorgehobenen Code zur zusammensetzbaren Funktion LaunchedEffect(Unit) hinzu:

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

Validierung

  1. Lesen Sie den Abschnitt Setup-Anweisungen, um Ihren Simulator oder Ihr Gerät mit Assurance zu verbinden.

    1. Verschieben Sie das Assurance-Symbol nach links.
    2. Wählen Sie Startseite in der Registerkartenleiste aus und vergewissern Sie sich, dass ECID, E-Mail und CRM ID auf dem Startbildschirm angezeigt werden.
    3. Wählen Sie Products in der Registerkartenleiste aus.
    4. Produkt auswählen.
    5. Wählen Sie Herz (iOS) oder ThumbUp (Android) aus.
    6. Wählen Sie ShoppingCartAdd aus.
    7. Wählen Sie Kreditkarte aus.
iOS
{width="300"}
Android
{width="278"}
  1. Suchen Sie in der Assurance-Benutzeroberfläche nach den hitReceived-Ereignissen des Anbieters com.adobe.edge..

  2. Wählen Sie das Ereignis aus und überprüfen Sie die XDM-Daten im messages-Objekt. Alternativ können Sie Kopieren Rohereignis kopieren verwenden und einen Text- oder Code-Editor Ihrer Wahl verwenden, um das Ereignis einzufügen und zu überprüfen.

    Validierung der Datenerfassung {modal="regular"}

Nächste Schritte

Sie sollten jetzt über alle Tools verfügen, um mit dem Hinzufügen der Datenerfassung zu Ihrer App zu beginnen. Sie können die Interaktion der Benutzenden mit Ihren Produkten in der App intelligenter gestalten und der App weitere Interaktionen und Bildschirm-Tracking-Aufrufe hinzufügen:

  • Implementieren Sie die Bestellung, den Checkout, den leeren Warenkorb und andere Funktionen in der App und fügen Sie dieser Funktion relevante Commerce-Erlebnisereignisse hinzu.
  • Wiederholen Sie den Aufruf von sendAppInteractionEvent mit dem entsprechenden Parameter, um andere App-Interaktionen des Benutzers zu verfolgen.
  • Wiederholen Sie den Aufruf von sendTrackScreenEvent mit dem entsprechenden Parameter, um die vom Benutzer in der App angezeigten Bildschirme zu verfolgen.
TIP
Sehen Sie sich die fertige App an, um weitere Beispiele zu erhalten.

Senden von Ereignissen an Analytics und Platform

Nachdem Sie nun die Ereignisse erfasst und an Platform Edge Network gesendet haben, werden sie an die Programme und Services gesendet, die in Ihrem Datenstrom“ konfiguriert. In späteren Lektionen ordnen Sie diese Daten Adobe Analytics, Adobe Experience Platform und anderen Adobe Experience Cloud-Lösungen (wie Adobe Target und Adobe Journey Optimizer) zu.

SUCCESS
Sie haben jetzt Ihre App so eingerichtet, dass Commerce-, App-Interaktions- und Bildschirm-Tracking-Ereignisse über die Adobe Experience Platform Edge Network verfolgt werden. Und für alle -Services, die Sie in Ihrem Datenstrom definiert haben.
Vielen Dank, dass Sie sich Zeit genommen haben, um mehr über Adobe Experience Platform Mobile SDK zu erfahren. Wenn Sie Fragen haben, allgemeines Feedback geben möchten oder Vorschläge für zukünftige Inhalte haben, teilen Sie diese auf diesem Experience League Community-Diskussionsbeitrag.

Weiter: WebViews behandeln

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