Implementierung eines benutzerdefinierten Google Tag Manager-Triggers zur Erfassung von Formularübermittlungen innerhalb eines iFrames
In der dynamischen Welt des digitalen Marketings ist die Erfassung von Nutzerinteraktionen auf Websites entscheidend für die Leistungsanalyse und die Optimierung von Strategien. Vor kurzem stand ich vor einer interessanten Herausforderung: Ein Kunde musste die Formularübermittlungen innerhalb eines iframes auf einer Website eines Drittanbieters erfassen, auf die er keinen direkten Zugriff hatte. In diesem Beitrag beschreibe ich die Schritte, die ich unternommen habe, um dieses Problem mithilfe von Google Tag Manager (GTM) zu lösen.
Die Herausforderung
Der Kunde versuchte, den Standard-Trigger „Element-Sichtbarkeit“ in GTM zu verwenden. Dieser Ansatz schlug jedoch fehl, da Elemente innerhalb des iframes nicht erkannt werden konnten. Nach einigen Untersuchungen stellte ich fest, dass die Formularübermittlung innerhalb des iframes ein bestimmtes postMessage mit data.code = "success" bei erfolgreicher Formularübermittlung. Dies lieferte den notwendigen Ansatzpunkt für unsere Tracking-Lösung.
Entdeckung der „PostMessage“
Um die spezifische postMessage zu ermitteln, das vom iframe verwendet wurde, nutzte ich das Inspektor-Tool von Chrome. So bin ich vorgegangen:
- Chrome-Inspector öffnen: Mit der rechten Maustaste auf die Seite klicken und „Inspect“ auswählen oder
Ctrl+Shift+I, um die Chrome-Entwicklertools zu öffnen. - Zur Konsole wechseln: Navigieren Sie in den Entwicklertools zur Registerkarte „Konsole“.
- Füge einen Ereignis-Listener hinzu: Um alle
postMessageEreignisse zu erfassen, habe ich das folgende Skript in die Konsole eingefügt:window.addEventListener('message', console.log);Dieses Skript protokolliert alle eingehendenpostMessageEreignisse in der Konsole. - Formular absenden: Anschließend habe ich mit dem Formular im Iframe interagiert und die Konsole beobachtet, um den
postMessageenthaltenendata.code = "success".
Mit dieser Methode stellte ich fest, dass beim Absenden des Formulars ein postMessage mit den Schlüsselinformationen, die zum Erstellen eines benutzerdefinierten Ereignisses in GTM erforderlich sind.
Die Lösung
Um das Formular-Absende-Ereignis zu erfassen, habe ich in GTM ein benutzerdefiniertes HTML-Tag implementiert, das auf das spezifische postMessage aus dem Iframe abfängt. Hier ist die Schritt-für-Schritt-Anleitung:
- Identifizieren der PostMessage: Beim Absenden des Formulars sendet der Iframe eine
postMessagemitdata.code = "success". Wir können diese Nachricht nutzen, um unser benutzerdefiniertes Ereignis in GTM auszulösen. - Erstellen eines benutzerdefinierten HTML-Tags: Fügen Sie in GTM ein neues Tag vom Typ „Benutzerdefiniertes HTML“ mit dem folgenden Skript hinzu:
<script> window.addEventListener('message', function(event) { if (event.origin === "https://converto.simplebooking.it" && event.data.code === "success") { window.dataLayer.push({ "event": "simplebooking_success" }); } }); </script>Dieses Skript überwachtpostMessageEreignisse. Wenn es eine Nachricht von der spezifischen Quellehttps://converto.simplebooking.itmitdata.code„success“, überträgt es ein benutzerdefiniertes Ereignis (simplebooking_success) an die Datenebene. - Konfigurieren Sie das benutzerdefinierte HTML-Tag
:
- Auslöser: Stellen Sie den Auslöser auf „Alle Seiten“ ein, damit das Skript auf jeder Seite ausgeführt wird, auf der der Iframe geladen werden könnte.
- Priorität der Tag-Auslösung: Stellen Sie sicher, dass dieses Tag vor allen zugehörigen Conversion-Tags ausgelöst wird, um das Ereignis korrekt zu erfassen.
- Erstellen Sie einen benutzerdefinierten Ereignis-Trigger: Um auf das
simplebooking_successEreignis zu reagieren, erstellen Sie einen neuen Trigger:- Triggertyp: Benutzerdefiniertes Ereignis
- Ereignisname:
simplebooking_success - Dieser Trigger wird ausgelöst bei: Alle benutzerdefinierten Ereignisse
- Konversions-Tags verknüpfen: Nachdem der benutzerdefinierte Ereignis-Trigger eingerichtet ist, können Sie nun Ihre Konversions-Tags (z. B. für Facebook und Google) mit diesem Trigger verknüpfen. Diese Einrichtung stellt sicher, dass die Konversions-Tags ausgelöst werden, sobald das Formularabsendungsereignis erkannt wird.
Abschließende Einrichtung
Nachdem Sie die oben genannten Schritte durchgeführt haben, sollte Ihre GTM-Konfiguration in etwa so aussehen:
- Benutzerdefiniertes HTML-Tag: Enthält das
postMessageListener-Skript. - Benutzerdefinierter Ereignis-Trigger: Benannt als
simplebooking_success. - Conversion-Tags: So konfiguriert, dass sie beim
simplebooking_successEreignis ausgelöst wird.
Testen und Überprüfen
- Vorschau-Modus: Verwenden Sie den Vorschau-Modus von GTM, um die Implementierung zu testen. Senden Sie das Formular innerhalb des iframe ab und prüfen Sie, ob das
simplebooking_successEreignis in der GTM-Debug-Konsole angezeigt wird. - Browser-Konsole: Öffnen Sie die Browser-Konsole und lösen Sie das
postMessageEreignis aus, um sicherzustellen, dass das Skript das Ereignis korrekt an die Datenebene übermittelt. - Tag-Auslösung überprüfen: Stellen Sie sicher, dass die Conversion-Tags wie erwartet ausgelöst werden, wenn das
simplebooking_successEreignis erkannt wird.
Wenn Sie diese Schritte befolgen, können Sie Formularübermittlungen innerhalb eines iframes mithilfe von Google Tag Manager erfolgreich nachverfolgen, auch wenn Sie keinen direkten Zugriff auf den Inhalt des iframes haben. Dieser Ansatz stellt sicher, dass Sie wertvolle Konversionsdaten erfassen und Ihre Marketingmaßnahmen effektiv optimieren können.