Was wird geprüft
Der Check liest im ausgelieferten HTML, ob window.dataLayer angelegt wird und ob mindestens ein push() darauf folgt. Beide Schreibweisen zählen: das explizite window.dataLayer = window.dataLayer || [] und das w[l]=w[l]||[] aus dem offiziellen GTM-Snippet. Ein push ohne sichtbare Initialisierung gilt als befüllt, denn ohne Initialisierung würde der Browser einen Fehler werfen.
Was der Scan nicht sieht: Pushes aus nachgeladenen JavaScript-Bundles, Events, die erst nach Klicks entstehen, und die Frage, ob die Parameter zur GA4-Schreibweise passen. Dafür braucht es einen Browser: im Tiefenscan für view_item auf Shops, für alles andere den Audit.
Warum ist das wichtig
Der dataLayer ist der Vertrag zwischen Website und Tag Manager. Ohne ihn hängen Trigger an CSS-Klassen und DOM-Pfaden. Das funktioniert genau bis zum nächsten Redesign, dann bricht die Conversion-Messung, und niemand merkt es, weil GA4 einfach weniger zählt. Mit einem dataLayer bleiben die Events stabil, egal wie das Frontend aussieht. Aufbau und Namenskonventionen erklärt der Leitfaden Was ist ein dataLayer?
Häufige Ursachen
- GTM wurde ohne dataLayer-Konzept eingebaut, alle Trigger hängen an Klick-Selektoren statt an Events.
- Das Theme initialisiert den dataLayer nach dem GTM-Snippet und überschreibt dabei die bereits gesammelten Events.
- Ein Shop-System bringt einen eigenen dataLayer mit anderem Namen mit, GTM hört auf den Standard-Namen.
- Events werden nur auf einzelnen Templates gepusht, Checkout oder Formulare bleiben stumm.