Data LayerGTME-Commerce

Data Layer für E-Commerce: Best Practices für saubere Tracking-Daten

Attrifly

Was ist der Data Layer und warum sollte es dich interessieren?

Der Data Layer ist ein JavaScript-Objekt, das als Brücke zwischen deiner Website und deinen Tracking-Tools dient. Technisch gesehen ist es ein Array namens window.dataLayer, in das deine Website strukturierte Daten pusht. Der Google Tag Manager liest diese Daten aus und leitet sie an GA4, Meta, Google Ads und andere Plattformen weiter.

Klingt abstrakt. Deshalb ein Beispiel: Wenn ein Nutzer ein Produkt in den Warenkorb legt, pusht dein Shop folgendes in den Data Layer:

window.dataLayer.push({
  event: 'add_to_cart',
  ecommerce: {
    currency: 'EUR',
    value: 49.90,
    items: [{
      item_id: 'SKU-12345',
      item_name: 'Olivenöl Extra Vergine 500ml',
      price: 49.90,
      quantity: 1
    }]
  }
});

Der GTM erkennt das Event add_to_cart, nimmt die Produktdaten aus dem ecommerce-Objekt und sendet sie an alle konfigurierten Plattformen. Meta bekommt ein AddToCart-Event, GA4 ein add_to_cart-Event, jeweils mit den korrekten Produktdetails.

Warum nicht direkt Pixel-Code einbauen?

Du könntest theoretisch auf jeder Seite direkt den Meta Pixel und den Google Tag feuern, ohne Data Layer. Viele Shops machen das. Das Problem dabei:

  • Jede Plattform braucht eigenen Code. Bei Meta, Google, TikTok und Pinterest hast du vier verschiedene Scripts, die alle die gleichen Daten brauchen, aber in unterschiedlichen Formaten.
  • Änderungen sind aufwändig. Wenn sich dein Checkout ändert oder du ein Produkt-Feld ergänzen willst, musst du den Code an vier Stellen anpassen.
  • Fehler schleichen sich ein. Unterschiedliche Preisformate, fehlende Felder bei einer Plattform, Tippfehler in Event-Namen. Ohne zentrale Datenquelle passiert das ständig.

Der Data Layer löst das: Eine Quelle, viele Konsumenten. Du definierst einmal, welche Daten bei welchem Event verfügbar sind. Der GTM verteilt sie dann formatgerecht an alle Plattformen.

Die essenziellen E-Commerce-Events

Google hat mit GA4 einen Standard für E-Commerce-Events definiert, der sich als Industriestandard durchgesetzt hat. Wenn du diesen Standard im Data Layer implementierst, funktioniert dein Tracking mit GA4 nativ und lässt sich für Meta und andere Plattformen einfach mappen.

view_item: Produktseite aufgerufen

Feuert, wenn ein Nutzer eine Produktdetailseite öffnet. Entspricht ViewContent bei Meta.

window.dataLayer.push({
  event: 'view_item',
  ecommerce: {
    currency: 'EUR',
    value: 49.90,
    items: [{
      item_id: 'SKU-12345',
      item_name: 'Olivenöl Extra Vergine 500ml',
      item_category: 'Olivenöl',
      item_variant: '500ml',
      price: 49.90,
      quantity: 1
    }]
  }
});

add_to_cart: Produkt in den Warenkorb gelegt

Feuert beim Klick auf den Warenkorb-Button. Entspricht AddToCart bei Meta.

window.dataLayer.push({
  event: 'add_to_cart',
  ecommerce: {
    currency: 'EUR',
    value: 49.90,
    items: [{
      item_id: 'SKU-12345',
      item_name: 'Olivenöl Extra Vergine 500ml',
      item_category: 'Olivenöl',
      price: 49.90,
      quantity: 1
    }]
  }
});

begin_checkout: Checkout gestartet

Feuert, wenn der Nutzer den Checkout-Prozess beginnt. Entspricht InitiateCheckout bei Meta.

window.dataLayer.push({
  event: 'begin_checkout',
  ecommerce: {
    currency: 'EUR',
    value: 89.80,
    items: [
      {
        item_id: 'SKU-12345',
        item_name: 'Olivenöl Extra Vergine 500ml',
        price: 49.90,
        quantity: 1
      },
      {
        item_id: 'SKU-67890',
        item_name: 'Balsamico di Modena 250ml',
        price: 39.90,
        quantity: 1
      }
    ]
  }
});

purchase: Kauf abgeschlossen

Feuert auf der Bestellbestätigungsseite. Das wichtigste Event, die Conversion.

window.dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'ORD-2026-4521',
    currency: 'EUR',
    value: 89.80,
    tax: 14.35,
    shipping: 4.90,
    items: [
      {
        item_id: 'SKU-12345',
        item_name: 'Olivenöl Extra Vergine 500ml',
        item_category: 'Olivenöl',
        price: 49.90,
        quantity: 1
      },
      {
        item_id: 'SKU-67890',
        item_name: 'Balsamico di Modena 250ml',
        item_category: 'Essig',
        price: 39.90,
        quantity: 1
      }
    ]
  }
});

Wichtig: Die transaction_id ist Pflicht. Sie verhindert, dass ein Kauf doppelt gezählt wird, wenn der Nutzer die Bestätigungsseite neu lädt.

Pflichtfelder pro Event: Was wirklich zählen muss

Nicht alle Parameter sind gleich wichtig. Hier die Übersicht, was jedes Event mindestens enthalten muss:

Parameterview_itemadd_to_cartbegin_checkoutpurchase
eventPflichtPflichtPflichtPflicht
currencyPflichtPflichtPflichtPflicht
valuePflichtPflichtPflichtPflicht
transaction_id---Pflicht
items[].item_idPflichtPflichtPflichtPflicht
items[].item_namePflichtPflichtPflichtPflicht
items[].pricePflichtPflichtPflichtPflicht
items[].quantityPflichtPflichtPflichtPflicht
shipping---Empfohlen
tax---Empfohlen
items[].item_categoryEmpfohlenEmpfohlenEmpfohlenEmpfohlen
items[].item_variantOptionalOptionalOptionalOptional

Die Grundregel: Lieber mehr Daten als weniger. Felder wie item_category, item_brand und item_variant kosten nichts extra und machen deine GA4-Reports deutlich aussagekräftiger.

Data Layer auf Shopify einrichten

Shopify hat kein natives Data Layer Feature. Du musst es selbst implementieren. Es gibt drei Wege:

Option 1: Custom Liquid Code

Du fügst Data Layer Pushes direkt in deine Shopify Theme-Templates ein. In der theme.liquid initialisierst du den Data Layer, in den Product Templates pushst du view_item, und auf der Thank-You-Page pushst du purchase.

Vorteil: Volle Kontrolle, keine Abhängigkeit von Drittanbietern. Nachteil: Erfordert Liquid- und JavaScript-Kenntnisse. Muss bei Theme-Updates manuell geprüft werden.

Option 2: Shopify Custom Pixels (Web Pixels API)

Seit 2023 bietet Shopify die Web Pixels API, mit der du eigene Pixel-Scripts registrieren kannst. Diese laufen in einer Sandbox und haben Zugriff auf Shopify-Events wie product_viewed, product_added_to_cart und checkout_completed.

Vorteil: Zukunftssicher, von Shopify unterstützt. Nachteil: Die Sandbox hat Einschränkungen. Der window.dataLayer der Hauptseite ist nicht direkt zugänglich. Du brauchst Workarounds oder sendest Events direkt an den sGTM.

Option 3: Third-Party Apps

Apps wie Elevar, Analyzify oder GTM4Shopify implementieren den Data Layer automatisch. Sie erkennen Shopify-Events und pushen sie im GA4-Format in den Data Layer.

Vorteil: Schnelles Setup, wenig Entwicklungsaufwand. Nachteil: Laufende Kosten (20-150 Euro/Monat), Abhängigkeit vom Anbieter, eingeschränkte Anpassbarkeit.

Unsere Empfehlung: Für Shops mit weniger als 500 Bestellungen pro Monat sind Apps ein pragmatischer Start. Ab einer gewissen Größe lohnt sich ein Custom Setup, weil du volle Kontrolle brauchst.

Testen mit dem GTM Preview Mode

Ein Data Layer, der nicht getestet ist, ist wertlos. Der GTM Preview Mode ist dein wichtigstes Debug-Tool.

So testest du:

  1. Öffne den GTM und klick auf “Preview”
  2. Gib die URL deines Shops ein
  3. Navigiere durch den Shop: Produktseite besuchen, Produkt in den Warenkorb legen, Checkout starten, Testbestellung abschließen
  4. Im Preview Panel siehst du jeden Data Layer Push und welche Tags gefeuert haben

Prüfe bei jedem Event:

  • Wird das Event ausgelöst? Der Event-Name muss im linken Panel erscheinen.
  • Sind alle Parameter vorhanden? Klick auf das Event und prüfe den Data Layer Tab.
  • Stimmen die Werte? Preis, Währung, Produkt-ID und Menge müssen zu dem passen, was auf der Seite steht.
  • Feuern die richtigen Tags? Unter “Tags Fired” siehst du, welche Tags auf das Event reagiert haben.

Die häufigsten Data-Layer-Fehler

Fehlende Item-Level-Daten

Viele Setups pushen zwar das purchase-Event, aber ohne das items-Array. GA4 braucht die Item-Daten, um Produktberichte zu füllen. Meta braucht sie für Dynamic Product Ads. Ohne Items ist dein Tracking nur halb so viel wert.

Falsche Währung oder fehlendes Currency-Feld

Wenn currency fehlt oder auf USD steht, obwohl du in Euro verkaufst, sind alle Umsatzdaten in GA4 falsch. Dieser Fehler fällt oft erst Wochen später auf, wenn jemand die Revenue-Reports prüft.

Kein ecommerce-Reset zwischen Events

Der Data Layer ist kumulativ. Wenn du ein view_item-Event pushst und danach ein add_to_cart, enthält der zweite Push noch die Daten des ersten, falls du das ecommerce-Objekt nicht zurücksetzt.

Die Lösung: Vor jedem E-Commerce-Push ein Reset einfügen:

window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'add_to_cart',
  ecommerce: { /* ... */ }
});

Fehlende user_data für Enhanced Matching

Auf der Bestätigungsseite hast du Zugriff auf die E-Mail-Adresse des Käufers. Diese sollte gehasht im Data Layer verfügbar sein, damit der GTM sie für Enhanced Matching an Meta und Google senden kann.

window.dataLayer.push({
  event: 'purchase',
  user_data: {
    email: 'sha256-hash-der-email',
    phone: 'sha256-hash-der-telefonnummer'
  },
  ecommerce: { /* ... */ }
});

Wie der sGTM den Data Layer nutzt

Wenn du einen Server-side GTM einsetzt, wird der Data Layer noch wichtiger. Der sGTM empfängt die Events vom Client-side GTM und verarbeitet sie weiter. Dabei gilt:

  • Der sGTM erhält nur die Daten, die im Data Layer stehen. Was nicht gepusht wurde, existiert serverseitig nicht.
  • Du kannst im sGTM zusätzliche Daten anreichern: Marge pro Produkt aus einer Lookup-Tabelle, Customer Lifetime Value aus deiner Datenbank, Kundengruppe aus deinem CRM.
  • Der sGTM leitet die angereicherten Events an alle Plattformen weiter: GA4 Measurement Protocol, Meta Conversions API, Google Ads Enhanced Conversions, TikTok Events API.

Der Data Layer ist damit die Single Source of Truth für dein gesamtes Tracking-Ökosystem. Wenn die Daten im Data Layer stimmen, stimmen sie überall. Wenn sie dort falsch sind, pflanzt sich der Fehler durch alle Plattformen fort.

Fazit

Der Data Layer ist kein optionales Feature für fortgeschrittene Nutzer. Er ist das Fundament, auf dem jedes seriöse Tracking-Setup steht. Ohne sauberen Data Layer baust du auf Sand.

Investiere die Zeit, ihn richtig aufzusetzen: Alle vier E-Commerce-Events, alle Pflichtparameter, mit Reset zwischen den Pushes und mit User Data für Enhanced Matching. Teste alles im GTM Preview Mode. Und dann hast du eine Grundlage, auf der dein gesamtes Marketing-Tracking zuverlässig funktioniert.