Effiziente Datenintegration in Adobe Analytics: Ein Best Practices Anwendungsfall

Die einwandfreie Integration von Daten in Adobe Analytics ist ein entscheidender Schritt für datengetriebene Unternehmen, um personalisierte und effektive Kundenerlebnisse zu schaffen. Denn selbst das leistungsstärkste Analytics Tool kann nicht sein volles Potential entfalten, wenn es nicht mit den richtigen Daten gespeist wird. Werden Daten versehentlich in einer falschen Report Suite erfasst, besteht zudem die Möglichkeit der „Datennachversorgung“. Ein Prozess, in dem bereits erfasste Daten in Adobe Analytics extrahiert, aufgearbeitet und in eine andere Report Suite eingespeist werden, um eine saubere Datenbasis sicherzustellen. Dieses Vorgehen wird in der Praxis oftmals vernachlässigt, nimmt allerdings einen großen Einfluss auf die Genauigkeit und Relevanz der Analyseergebnisse. Die Daten können dabei aus einer Menge von Kanälen stammen, z.B. Websites, Apps, E-Mail-Marketing, soziale Medien sowie aus Offline-Datenquellen .

Zwei Tools, die bei der effizienten Datenintegration eine Rolle spielen und ebenso für den Anwendungsfall der „Datennachversorgung“ eingesetzt werden können, sind das Adobe Data Insertion API (API = Application Programming Interfaces) und das Bulk Data Insertion API. In unserem Blogbeitrag werfen wir einen Blick auf die Gemeinsamkeiten und Unterschiede zwischen diesen beiden Ansätzen und stellen Euch einen wahren Best Practices Anwendungsfall für eine gelungene Datenintegration bzw. -nachversorgung mithilfe eines Bulk Data Insertion APIs vor.

Gemeinsamkeiten

  1. Serverseitige Datenerfassung: Beide APIs dienen dem Zweck, Daten nahtlos in Adobe Analytics zu integrieren. Die Erfassung der Daten erfolgt bei beiden Alternativen serverseitig.
  2. Anwendbar für Live Daten oder historische Daten
  3. Verhält sich wie ein durch den Browser abgesetzter Request: Dies hat z.B. Einfluss auf die „Processing rules“ sowie die „Marketing Channel rules“.

Unterschiede

Während das Data Insertion API jeweils nur ein Event pro gesandter Request erfasst, ist beim Bulk Data Insertion API der Upload mehrerer Events via CSV-Datei ganz unkompliziert möglich.

Ein weiterer Unterschied zwischen den beiden APIs liegt in der Authentifizierung. Während bei dem Data Insertion API keine Authentifizierung seitens des Users erforderlich ist, ist bei dem Bulk Data Insertion API eine Authentifizierung notwendig.

Anwendungsfall Bulk Data Insertion API (BDIA)

Ausgangslage:

Über einen längeren Zeitraum wurden die gesamten Daten eines Kunden in der falschen Report Suite in Adobe Analytics erfasst. Der Umfang betrug knapp 100 Mio Hits. Die falsch erfassten Daten sollten von unserem erfahrenen Data Engineering Experten-Team isoliert und im Anschluss in die korrekte Report Suite übertragen werden.

Hierzu wurden die entsprechenden Daten zunächst via Data Feed exportiert und im Anschluss mithilfe des Bulk Data Insertion APIs in die korrekte Report Suite hochgeladen. Eine detaillierte Step-by-Step Anleitung für die Umsetzung dieses Best Practices Anwendungsfalls könnt Ihr dem nachfolgenden Absatz entnehmen.

Step-by-Step Umsetzung:

  • Step 1: Datafeed über den spezifischen Zeitraum exportieren und in Google Cloud Storage (GCS) speichern
  • Step 2: Daten mittels Dataproc (Pyspark Cluster) hinsichtlich relevanter Daten filtern und in GCS speichern
  • Step 3: Daten für Bulk Data Insertion API-Upload vorbereiten* (s. nachfolgenden Absatz im Detail)
  • Step 4: Daten in entsprechende, „verarbeitbare Batches“ aufteilen
  • Step 5: Zeitgesteuerte Bulk Data Insertion API-Uploads mithilfe des Cloud Schedulers planen
  • Step 6: Ausführen der Uploads via Cloud Functions
  • Step 7: Zu guter Letzt an die Qualitätssicherung (QS) in Workspace denken und prüfen, ob alle Daten korrekt eingelaufen sind.

Vorbereitung der Daten für den Bulk Data Insertion API-Import (*Step 3 im Detail): 

Ist der Data Feed Export erfolgreich abgeschlossen, können die Daten entsprechend für den Bulk Data Insertion API-Import vorbereitet werden. Hierbei sind folgende Schritte zu beachten und zu verfolgen:

Folgende Punkte beschreiben Step 3 (s. oben) im Detail:

  • Step 1: Dateien „entpacken“ und lesen
  • Step 2: Mapping der Dimensionswerte mittels Lookup-Tabellen
  • Step 3: Custom- & Standard Events mappen (inkl. Zuordnung der Anzahl)
  • Step 4: Spalten korrekt benennen
  • Step 5: ggf. Context Data Objekt erstellen
  • Step 6: Nicht benötigte Daten und Spalten entfernen
  • Step 7: Ggf. Daten manipulieren bzw. anreichern, wenn nötig (z.B. ‚-bdia‘-suffix, Report Suite, o.Ä.)
  • Step 8: Fehlerhafte Zeilen entfernen (z.B. Fehlende Werte in benötigten Feldern)
  • Step 9: Daten nach Timestamp sortieren und speichern.

Limitationen:

Bei der Durchführung des Bulk Data Insertion API-Imports in unserem Fallbeispiel sind wir an ein paar Grenzen gestoßen, die wir gerne mit Euch teilen. Beispielsweise liegt in dem Fall das Maximum bei 50.000 Zeilen oder max. 20 Megabyte (MB) Größe pro Datei (komprimiert als gzip).

⚠️ Hinweis: Theoretisch sind die Limits etwas höher, praktisch wurden uns aber diese Werte von Adobe empfohlen.

Unsere Empfehlung ist es, Requests nicht direkt hintereinander rauszuschicken, sondern parallele Requests mittels Visitor Groups zu senden. Hierzu solltet Ihr die Daten auf Basis der Visitor-IDs in (beliebig viele) verschiedene Gruppen aufteilen. Jede Visitor ID sollte dabei immer einer festen Gruppe zugeordnet werden, z.B. gerade / ungerade IDs à zwei Visitor Groups. Somit könnt ihr am Ende einen Request pro Gruppe abschicken und sendet damit mehrere Requests gleichzeitig.

⚠️  Zur Erstellung der verschiedenen Visitor Groups empfehlen wir euch die Nutzung von Modulo. Modulo ist eine Rechenoperation. Sie wird für zahlreiche Verschlüsselungsverfahren sowie für Schlüsselaustausch-Verfahren benötigt. Mit Modulo (mod) wird der Rest der ganzzahligen Division bezeichnet.

Fazit & Pitfalls

Bei der Sortierung der Daten zur Vorbereitung für den Bulk Data Insertion API-Import ist es sehr wichtig, dass die Timestamps immer in aufsteigender Reihenfolge sortiert und gespeichert werden, da sonst fehlerhafte Daten resultieren. Außerdem spielt der Verarbeitungszeitpunkt beim Import eine entscheidende Rolle. Wenn ein Nutzer oder eine Nutzerin gerade aktiv ist und gleichzeitig dessen historische Daten (zugeordnete Visior ID) via Bulk Data Insertion API hochgeladen werden, wird die aktive Session um die hochgeladenen Hits (z.B. Timestamp) erweitert. Wie in unserem Best Practices Beispiel, macht es definitiv Sinn, den Job zu planen, wenn wenig Traffic ist, z.B. nachts.

Im Falle von mobilen Report Suites werden keine sogenannten „post_“-Spalten im Data Feed bereitgestellt. Dies hängt insbesondere mit einer abweichenden Prozessierung von mobilen Daten zusammen. Entsprechend müssen die Spaltennamen bei der Vorbereitung berücksichtigt werden.
Zusätzlich gibt es im mobilen Kontext das „Context Data Object“, das zusätzliche Informationen enthalten kann, die es im Web-Kontext nicht gibt.

Grundsätzlich bieten sowohl das Adobe Data Insertion API als auch das Bulk Data Insertion API leistungsfähige Tools für die nahtlose Integration bzw. Nachversorgung von Daten in Adobe Analytics. Unternehmen sollten ihre individuellen Ziele und Bedürfnisse sorgfältig evaluieren, um die passende Lösung für ihre Datenintegrationsstrategie zu wählen.

Unsere Date Engineering Experten unterstützen Euch gerne bei der Konzeption und Umsetzung Eurer individuellen Automatisierungs- und Datenstrategie für einen nachhaltigen Wettbewerbsvorteil. Sprecht uns an!

Feedback

Wir freuen uns über Feedback und weiteren Austausch zu den Data Insertion APIs Alternativen.