Das Formular wird abgeschickt, die Anfrage landet im CRM, und in GA4 fehlt ein Teil der Absendungen. Im Vorschaumodus funktioniert alles, auf dem eigenen Rechner auch. Wenn ich solchen Lücken nachgehe, finde ich oft kein falsch gebautes Tag, sondern ein Timing-Problem: Das Event ist da, bevor der Listener im GTM zuhört.

Nach diesem Artikel wissen Sie, wann dataLayer-Events durch Verzögerung verloren gehen und wie ein Event Repeater das verhindert.

Warum verzögerte Events verpuffen

Der GTM selbst ist geduldig. Laut Google-Dokumentation zum dataLayer verarbeitet der Tag Manager beim Laden des Containers alle Pushes, die vorher eingereiht wurden. Ein dataLayer.push, der früh kommt, geht also nicht verloren, solange niemand das Objekt neu zuweist. Auch davor warnt Google ausdrücklich.

Anders sieht es bei Events aus, die nicht direkt im dataLayer landen. Formular-Widgets, Buchungstools oder Chat-Komponenten melden Absendungen oft über eigene Browser-Events oder Callbacks. Im GTM fängt ein Listener sie ab, meist ein benutzerdefiniertes HTML-Tag, und übersetzt sie in einen Push. Wird dieser Listener erst registriert, nachdem das Event ausgelöst wurde, hört niemand zu. Typisch ist das bei Single-Page-Apps, nachgeladenen Komponenten und Consent-Tools, die spät initialisieren und Tags verzögert freigeben.

Woran Sie es erkennen

Timing-Fehler sind im Vorschaumodus selten sichtbar, weil Ihre Testumgebung schnell und gecacht ist. Prüfen Sie deshalb:

  1. Weichen die Zahlen in GA4 dauerhaft von den Daten im CRM oder im Formular-Tool ab?
  2. Stellen Sie in den Entwicklertools eine langsame Verbindung ein. Kommt das Event in der Vorschau dann vor dem Listener oder gar nicht an?
  3. Wird der Listener erst nach der Einwilligung oder auf „Fenster geladen“ ausgelöst?
  4. Gibt es Code, der dataLayer = [] statt window.dataLayer = window.dataLayer || [] setzt?

Lösung: Events mit einem Event Repeater zwischenspeichern

Ein Event Repeater ist ein kleines Skript, das möglichst früh im Quellcode lädt. Es fängt die relevanten Events ab, sobald sie entstehen, und legt sie in einem Zwischenspeicher ab. Ist der Listener im GTM bereit, spielt der Repeater alle gespeicherten Events nacheinander als dataLayer.push aus und reicht neue Events danach direkt durch. Damit geht kein Event verloren, nur weil das Timing nicht gepasst hat.

Wichtig ist, dass jedes Event nur einmal ausgespielt wird und der Repeater Consent respektiert. Wo Sie Einfluss auf den Code haben, ist ein direkter Push mit eigenem Event-Namen noch robuster, weil der GTM ihn selbst nachverarbeitet. Wie das Zusammenspiel mit Einwilligung und Consent-Tool funktioniert, beschreibe ich im Ratgeber zum Consent Mode v2.

Nächster Schritt

Diese Punkte können Sie selbst prüfen:

  • Abgleich: Passen Formularabsendungen in GA4 zu den Einträgen im CRM?
  • Langsame Verbindung: Kommt das Event in der Vorschau auch bei gedrosselter Verbindung an?
  • Listener: Welche Events laufen über benutzerdefinierte HTML-Listener statt über den dataLayer?
  • dataLayer-Objekt: Wird es irgendwo im Code neu zugewiesen statt erweitert?

Weitere typische Fehler finden Sie im Ratgeber zu den häufigsten Conversion-Tracking-Fehlern. Wenn Sie Lücken in Ihren Daten aufklären wollen, können Sie ein Erstgespräch buchen.

Dieser Beitrag ist keine Rechtsberatung. Benjamin Juling ist kein Rechtsexperte für Datenschutz. Wir empfehlen, die Umsetzung vor dem Einsatz mit einem Datenschutz-Experten oder einem Datenschutz-Anwalt zu prüfen.