Enhanced Ecommerce, auch erweiterte E-Commerce Berichte genannt, ist eine verbesserte Version des standardisierten E-Commerce Tracking von Google Analytics. In diesem Artikel geht es nicht um die Vorteile von Enhanced Ecommerce im Vergleich zum Standard E-Commerce oder welche zusätzlichen Reports damit einhergehen. Wie der Titel schon andeutet, geht es um die Implementierung von Enhanced Ecommerce Tracking mit Hilfe des sogenannten semantic dataLayer.
Standardmäßig fragt jeder Google Tag Manager (GTM) Tag mit aktiviertem Enhanced Ecommerce die E-Commerce-Daten über dataLayer Variablen ab. Damit dieser Tag die E-Commerce-Daten verarbeiten und an die jeweilige Google Analytics Property übermitteln kann, müssen alle relevanten Daten auf eine bestimmte Art formatiert werden (diese wird im Developer Guide von Google beschrieben).
Hier ein Beispiel, wie solch ein dataLayer aussehen könnte:
dataLayer.push({ 'ecommerce': { 'purchase': { 'actionField': { 'id': 'T12345', 'revenue': '246' }, 'products': [{ 'name': 'the best hotel', 'id': 'H123', 'price': '123', 'brand': 'Google', 'category': 'netherlands/nederlandse kust/wasenaar', 'variant': 'adults', 'quantity': 2, 'dimension1': '4', 'dimension2': 'pool|bar|airco' }] } } });
Diese Struktur ist sehr spezifisch für jedes einzelne Enhanced Ecommerce Ereignis definiert – von der Product Impression bis hin zum Purchase. Dabei ist die Struktur jedoch nur bei Übermittlung von E-Commerce Daten von GTM an Google Analytics erforderlich. Das wird besonders deutlich, wenn produktbezogene benutzerdefinierte Dimensionen und Messwerte hinzugefügt werden (im oberen Beispiel als dimension1 und dimesion2 erkennbar).
GTM wird jedoch auch genutzt, um Daten an andere Plattformen zu übermitteln und nicht nur an Google Analytics. Genau dabei kann es zu Problemen kommen. Durch die komplexe Struktur des dataLayer wird es fast unmöglich die Informationen für andere Tags außerhalb von Google Analytics zu nutzen.
Der Grundgedanke des semantic dataLayer ist Daten (in diesem Fall dataLayer Variablen) von den spezifischen Anforderungen der verschiedenen Plattformen (zumeist Google Analytics) zu trennen. Ziel ist es, eine verschachtelte Datenstruktur so frei wie möglich zu erstellen. Den dataLayer also so zu nutzen, wie es gedacht ist – als Schicht zur Datenspeicherung zwischen Backend der Website und dem GTM.
Der Hauptvorteil eines semantic dataLayer ist, das sich eine eigene Datenstruktur erstellen lässt in der keine Syntax-Anforderungen von bestimmten Plattformen erfüllt werden müssen.
Aber wie sieht ein semantic dataLayer nun aus?
dataLayer.push({ ‚event‘: ‚ecomPurchase‘, ‚purchase‘: ‚id‘: ‚T12345‘ }, ‚holiday‘: { ‚accommodation‘: { ’name‘: ‚the best hotel‘ ‚id‘: ‚H123‘, ‚type‘: ‚hotel‘, ’stars‘: ‚4‘, ‚facilities‘:‚pool|bar|airco‘ }, ‚destination‘: { ‚country‘: ’netherlands‘, ‚region‘: ’nederlandse kust‘, ‚city‘: ‚wassenaar‘ }, ‚products‘: [{ ‚variant‘: ‚adults‘, ‚quantity‘: ‚2‘, ‚price‘: ‚123‘ }] } } });
Jedoch kann dieser dataLayer nicht als Quelle für Enhanced Ecommerce Tags genutzt werden, da er nicht die erforderliche Struktur aufweist. Alle relevanten Werte aus dem dataLayer müssen also in eine neue E-Commerce JavaScript Variable übertragen werden. Diese sollte wie folgt aussehen:
function (){ // create object for Purchase var ecomObj = { ecommerce: { purchase: { actionField: { id: {{DL - purchase.id}}, revenue: {{DL - purchase.revenue}}, tax: {{DL - purchase.tax}}, affiliation: {{DL - purchase.affiliation}} }, products: productArray } } }; return ecomObj; }
Wichtig: Zu beachten ist, dass das obere Code-Snippet nicht absolut korrekt ist, es dient lediglich als Vorlage, wie eine E-Commerce Variable aussehen sollte. Der Code der Variable verändert sich basierend auf der Syntax des semantic dataLayer, gibt aber das gesamte E-Commerce Objekt so wie es im Developer Guide von Google definiert ist zurück.
Anschließend wird diese Variable als Quelle für die Enhanced Ecommerce Tags im GTM genutzt. Dafür muss in den Tag-Einstellungen die Variable als Basis ausgewählt werden. Nicht der dataLayer wird zum Datenauslesen genutzt, sondern der Tag nutzt die zuvor definierte JavaScript Variable:
Der semantic dataLayer bietet demnach mehr Kontrolle über die E-Commerce Datenübermittlung an Google Analytics. Da alle notwendigen Daten vorhanden sind, muss der dataLayer nicht verändert werden, wenn es Veränderungen in benutzerdefinierten Dimensionen oder Messwerten gibt. Einzig die E-Commerce Variable wird angepasst. Dadurch spart man sich die Erstellung einer aufwendigen Implementierungs-Guideline für das Entwickler-Team und das darauffolgende Prüfen der Implementierung entfällt ebenfalls. So wird der Aufwand erheblich verringert.
Zudem werden Daten so in einer sehr verständlichen Struktur gelagert, in der einfach nachzuvollziehen ist, welches Feld welche Daten beinhaltet. Daten aus dem dataLayer können ebenfalls für andere GTM Tags genutzt werden – dazu wird einfach eine neue dataLayer Variable nach der klassischen Dot-Struktur erstellt, um die gewünschten Werte zu erhalten.