Customer Impact

Daten & Tracking

Data Layer: was sie ist und wie Sie sie für GTM und GA4 aufsetzen

Für KI kopieren

Eine Data Layer ist ein JavaScript-Objekt auf Ihrer Website, in dem Sie strukturierte Informationen für Google Tag Manager und den Google-Tag bereitstellen. Statt dass GTM erraten muss, was auf einer Seite passiert, indem es auf Buttons und Texte schaut, sagt Ihre Website es selbst: “Eine Angebotsanfrage wurde gesendet, für Leistung X, über Formular Y”. Das macht Ihr Tracking verlässlicher, besser testbar und weniger anfällig für jede Änderung an Ihrer Website. In diesem Artikel lesen Sie, wie eine Data Layer funktioniert, wie Sie sie aufsetzen und welche Fehler Sie vermeiden.

Was ist eine Data Layer?

Google beschreibt dieses Objekt in seiner Dokumentation für Tag Manager als “ein Objekt, das Google Tag Manager und gtag.js verwenden, um Informationen an Tags zu übergeben”. Ihre Website legt Daten und Events in diesem Objekt ab, GTM liest sie über Variablen aus und verwendet sie in Triggern und Tags.

Konkret ist es eine Liste (Array) mit dem Namen dataLayer. Jedes Mal, wenn etwas passiert, fügen Sie mit dataLayer.push() ein Objekt hinzu:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  'event': 'lead_submit',
  'form_id': 'angebot',
  'lead_type': 'angebotsanfrage',
  'service': 'tracking-audit'
});

Der Schlüssel event hat eine besondere Rolle: GTM nutzt ihn, um Tags auszulösen. Die anderen Schlüssel werden zu Variablen, die Sie an GA4, Google Ads oder Meta mitsenden können.

ARCHITEKTUR Die Data Layer als Vertrag 01 Website CMS, Formular, Shop 02 dataLayer Event + Parameter 03 Tag Manager Variablen, Trigger 04 Plattformen GA4, Ads, Meta Die Website sagt, was passiert ist, Tag Manager entscheidet, wohin es geht
Die Data Layer sitzt zwischen Ihrer Website und Ihren Tags: Die Website sagt, was passiert ist, GTM entscheidet, wohin es geht.

Warum eine Data Layer verwenden?

Ohne eine solche Schicht bauen Sie Ihr Tracking auf dem auf, was GTM auf der Seite sehen kann: ein Klick auf einen Button mit einem bestimmten Text, eine CSS-Klasse, eine Danke-Seiten-URL. Das funktioniert, bis jemand den Button-Text ändert, das Formular durch ein neues Plugin ersetzt oder die Danke-Seite entfernt. Dann stoppt Ihre Messung, oft ohne dass es jemand bemerkt.

Tracking auf der Seite (DOM)Tracking über die Data Layer
Quelle der DatenButtons, Texte, CSS-Klassen, URLsExplizite Pushes aus der Website
Anfällig für RedesignsHochGering, solange der Push bleibt
Zusätzliche InformationenNur, was sichtbar istAuch interne Werte: Leistung, Lead-Typ, Bestellwert
Test- und dokumentierbarSchwierigJa, es ist ein fester Vertrag
Aufwand für EntwicklerKeinerEinmalig, plus Wartung

Bei Suivo legte ein Formular-Update die Lead-Messung ohne Fehlermeldung still. Die Lösung war ein robuster Formular-Listener und eine saubere Schicht mit Events, sodass ein nächstes Update die Messung nicht erneut bricht. Bei Kaizo bekam die gebuchte Demo ein eigenes Event in der Data Layer, sodass GA4, Google Ads und Meta exakt dieselbe Conversion sehen.

Eine Data Layer in 6 Schritten aufsetzen

1. Schreiben Sie einen Messplan

Legen Sie zuerst fest, welche Aktionen Sie messen wollen und welche Informationen dazugehören. Für eine B2B-Website ist das oft: eine Angebotsanfrage, eine Demo-Buchung, ein Kontaktformular, ein Download, ein Klick auf eine Telefonnummer. Pro Event halten Sie den Namen und die Parameter fest, zum Beispiel lead_submit mit form_id, lead_type und service. Verwenden Sie, wo möglich, die empfohlenen Events von GA4, damit Ihre Berichte und Google Ads direkt damit arbeiten können.

2. Erstellen Sie eine Spezifikation für Ihren Entwickler

Halten Sie pro Event in einem Dokument fest, wann der Push passieren muss (erst nach einer erfolgreichen Übermittlung, nicht beim Klick auf den Button), welche Schlüssel er enthält und welche Werte zulässig sind. Arbeiten Sie mit einem CMS oder CRM-Formularen, etwa WordPress mit Gravity Forms, HubSpot oder Formularen, die an Teamleader oder Odoo angebunden sind, notieren Sie auch, woher der Push technisch kommt.

3. Deklarieren Sie die Data Layer vor dem GTM-Snippet

Google empfiehlt, das Objekt zu deklarieren, bevor Tag Manager lädt, mit window.dataLayer = window.dataLayer || [];. So überschreiben Sie nie Daten, die bereits bereitstanden. Schreiben Sie also nie dataLayer = [...] weiter unten in Ihrem Code: Dann löschen Sie alles, was vorher darin stand.

4. Lassen Sie die Website die Events pushen

Der Entwickler fügt die Pushes zu den vereinbarten Zeitpunkten hinzu. Für E-Commerce folgen Sie der Struktur von GA4 E-Commerce. Google leert darin zuerst das vorherige E-Commerce-Objekt, damit alte Produktdaten nicht mit dem nächsten Event mitfahren:

window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  'event': 'purchase',
  'ecommerce': {
    'transaction_id': 'T_12345',
    'value': 72.05,
    'currency': 'EUR',
    'items': [{ 'item_id': 'SKU_1', 'item_name': 'Product', 'price': 72.05, 'quantity': 1 }]
  }
});

Für einen Kauf sind transaction_id, value, currency und items die Felder, die immer hineingehören. Eine fehlende currency ist ein Klassiker: Der Umsatz kommt dann nicht oder falsch an.

5. Bauen Sie Variablen und Trigger in Google Tag Manager

Legen Sie in GTM pro Schlüssel eine Variable vom Typ “Data Layer Variable” an (zum Beispiel form_id) und pro Event einen Trigger vom Typ “Custom Event” mit exakt demselben Namen wie im Push. Danach verknüpfen Sie diese mit Ihren Tags: einem GA4-Event, einer Google-Ads-Conversion, einem Meta-Event. Mehr zum Container selbst lesen Sie in unserem Beitrag über Google Tag Manager.

6. Testen und dokumentieren Sie

Öffnen Sie den Vorschaumodus und prüfen Sie im Google Tag Assistant im Tab Data Layer, ob der Push zum richtigen Zeitpunkt und mit den richtigen Werten ankommt. Schnell nachsehen können Sie auch in der Konsole Ihres Browsers: Tippen Sie dataLayer ein, und Sie sehen die vollständige Liste. In unseren Projekten halten wir das Ergebnis in einem gemeinsamen Dokument fest, damit alle, die später an der Website arbeiten, wissen, welche Pushes nicht wegfallen dürfen.

Die wichtigsten Regeln für eine saubere Data Layer

  • Groß- und Kleinschreibung beachten. Das Objekt heißt dataLayer, nicht datalayer. Auch Ihre Schlüssel und Event-Namen müssen exakt mit dem übereinstimmen, was GTM erwartet.
  • Anführungszeichen um Schlüssel verwenden. Google empfiehlt {'variable_name': 'value'}.
  • Pro Seite. Laut Google existiert eine solche Variable nur, solange die Besucher auf der aktuellen Seite bleiben. Brauchen Sie einen Wert auf jeder Seite, pushen Sie ihn bei jedem Seitenaufruf erneut.
  • Eine Data Layer pro Seite. Sie können das Objekt umbenennen, aber Google unterstützt nur ein dataLayer-Objekt pro Seite.
  • Feste Namen. Wählen Sie eine Namenskonvention (zum Beispiel Kleinbuchstaben mit Unterstrichen) und halten Sie sich in allen Events daran.

Keine personenbezogenen Daten aus Ihrer Data Layer an GA4

Es ist verlockend, die E-Mail-Adresse oder Telefonnummer eines Leads mitzupushen. Für GA4 ist das nicht erlaubt: Googles Richtlinie zu personenbezogenen Daten legt fest, dass Sie keine Daten an Google senden, die Google als personenbezogen identifizierbar erkennen kann, darunter E-Mail-Adressen und Telefonnummern. Wollen Sie diese Daten für Enhanced Conversions in Google Ads nutzen, geschieht das über den dafür vorgesehenen, gehashten Weg, und nur mit Einwilligung. Beachten Sie auch den Consent: Ohne Einwilligung dürfen Ihre Tags die Daten nicht mit Cookies weitersenden, auch wenn sie im Objekt bereitstehen. Mehr dazu in unserem Beitrag zu Consent Mode v2 für Google Ads.

Häufige Fehler mit der Data Layer

  • Der Push passiert beim Klick, nicht nach der Übermittlung. Jedes fehlgeschlagene oder halb ausgefüllte Formular zählt dann als Lead.
  • Das Objekt wird nach dem GTM-Snippet überschrieben. Ein dataLayer = [] in einem Theme oder Plugin löscht alles, was vorher bereitstand.
  • Andere Namen im Push als in GTM. leadSubmit im Code, lead_submit im Trigger: Der Tag löst nie aus.
  • Alte E-Commerce-Daten, die hängen bleiben. Ohne ecommerce: null kann ein purchase Produkte aus einem vorherigen Schritt mitnehmen.
  • Single-Page-Apps ohne virtuelle Seitenaufrufe. Eine Website in React oder Vue lädt keine neuen Seiten, also müssen Sie bei jedem Routenwechsel selbst ein Event pushen.

Ähnliche Probleme auf der GA4-Seite lesen Sie in unserem Beitrag zu häufigen Fehlern im Google-Analytics-Tracking.

Häufig gestellte Fragen

Was ist der Unterschied zwischen einer Data Layer und Google Tag Manager?

Die Data Layer ist die Information, die Ihre Website bereitstellt. Google Tag Manager ist das Tool, das diese Information liest und entscheidet, welche Tags auslösen und was sie weitersenden. Das Objekt funktioniert auch ohne GTM mit dem Google-Tag (gtag.js), entfaltet seinen vollen Nutzen aber erst mit GTM.

Brauche ich einen Entwickler für eine Data Layer?

Für die Pushes aus Ihrer Website meistens schon, oder ein Plugin, das sie für Ihr CMS oder Ihren Webshop erzeugt. Die Variablen, Trigger und Tags in GTM kann ein Marketer oder Tracking-Spezialist selbst einrichten.

Wie sehe ich mir die Data Layer in Chrome an?

Öffnen Sie die Entwicklertools, gehen Sie zur Konsole und tippen Sie dataLayer ein. Sie sehen dann alle Pushes auf dieser Seite. Übersichtlicher ist der Vorschaumodus von GTM, in dem der Tab Data Layer pro Moment zeigt, was angekommen ist.

Was ist ein datalayer.push?

dataLayer.push() ist die Funktion, mit der Sie der Data Layer ein neues Objekt hinzufügen. Enthält dieses Objekt einen Schlüssel event, kann GTM darauf einen Trigger auslösen lassen.

Hat die Data Layer etwas mit einem Data Warehouse zu tun?

Nein. Im Data Engineering spricht man ebenfalls von “Data Layers” (zum Beispiel Bronze, Silver und Gold in einem Data Warehouse). Das ist ein anderer Begriff. Im Marketing-Tracking meinen wir das dataLayer-Objekt auf Ihrer Website.

Eine Data Layer aufsetzen lassen?

Eine gut aufgesetzte dataLayer ist das Fundament unter Ihrem GA4, Google Ads, Meta und Server-Side-Tracking. Unsere Tracking-Agentur schreibt den Messplan und die Spezifikation für Ihren Entwickler, baut den Container und testet jedes Event. Wollen Sie zuerst wissen, wie Ihr aktuelles Setup dasteht, beginnen Sie mit einem Tracking-Audit. Mehr zum Gesamtbild lesen Sie in Conversion-Tracking, oder nehmen Sie Kontakt auf.

Kostenloser Website-Scan

Geben Sie Ihre Website ein und erhalten Sie innerhalb weniger Minuten eine automatische Analyse mit konkreten technischen und SEO-Verbesserungen. Ohne Verkaufsgespräch.

Wohin dürfen wir Ihren Bericht schicken?

Wir verwenden Ihre Daten ausschließlich für Ihren Scan. Kein Spam, Abmeldung jederzeit möglich.