Guide · Tracking

Cross-Domain-Tracking für Funnels, Iframes und Checkouts: So verlierst du keinen Lead

Warum Leads aus Heyflow, Perspective, Typeform, ClickFunnels, Calendly oder Digistore24 ihre Quelle verlieren und wie du die Session über Domains, Iframes und Checkouts weitergibst.

Daniel Kalcher7 Min. Lesezeit

Die Meta-Anzeige läuft, die Landingpage konvertiert, und trotzdem stehen im CRM Leads ohne Quelle, Verkäufe aus dem Checkout erscheinen als „direkt“ und Terminbuchungen tauchen in keinem Report auf. Der Grund ist fast immer derselbe: Irgendwo auf dem Weg wechselt der Besucher die Domain, und das Tracking verliert ihn.

Dieser Guide richtet sich an Performance-Marketer, Agenturen und Coaches mit Funnel-Setups. Danach weißt du, warum Funnel-Builder, Iframes und Checkout-Seiten das Tracking brechen, welche Wege es gibt, die Session weiterzugeben, und wie du Heyflow, Perspective, Typeform, ClickFunnels, Calendly sowie Digistore24 und CopeCart konkret anbindest.

Warum Leads beim Domainwechsel ihre Quelle verlieren

Fast jedes Website-Tracking ist Client-Side Tracking: Ein Script im Browser liest UTM-Parameter und Klick-IDs beim ersten Seitenaufruf und merkt sie sich in First-Party-Cookies. Das funktioniert, solange der Besucher auf derselben Domain bleibt. Ein typischer Lead-Funnel sieht aber so aus:

  1. Klick auf die Anzeige, Landingpage auf deine-firma.de
  2. Formular als eingebettetes Iframe von heyflow.site oder typeform.com
  3. Terminbuchung über ein Kalender-Widget
  4. Kauf auf der Checkout-Seite von Digistore24 oder CopeCart

An jedem dieser Übergänge gibt es drei technische Grenzen:

  • Cookies gelten pro Domain. Ein Cookie von deine-firma.de ist auf heyflow.site nicht lesbar. Für das Tracking auf der zweiten Domain ist der Besucher ein Unbekannter ohne Quelle.
  • Ein Iframe ist ein eigenes Dokument. Das Script auf deiner Seite kann die Felder in einem fremden Iframe weder lesen noch befüllen.
  • Third-Party-Cookies sind weitgehend blockiert. Ein Script im Iframe hat seinen eigenen Cookie-Speicher für die fremde Domain, und den blockieren Browser zunehmend. Safari etwa blockiert Cookies für seitenübergreifende Ressourcen seit März 2020 standardmäßig (WebKit).

Das Ergebnis: Der Lead kommt zwar per Webhook an, aber ohne Verbindung zu dem Besuch, in dem der Anzeigenklick steckt.

Das Prinzip: Kennung aktiv übergeben

Jede Lösung für Cross-Domain-Tracking folgt demselben Prinzip. Weil die Zieldomain die Cookies nicht lesen kann, wird eine Kennung aktiv mitgegeben. Google Analytics 4 macht das zum Beispiel mit dem Linker-Parameter _gl, der an Links zwischen den konfigurierten Domains angehängt wird. Voraussetzung ist, dass auf allen Domains dasselbe Google-Tag mit derselben Mess-ID läuft (Google Analytics Hilfe).

Für Lead-Funnels gibt es vier Wege, die Session weiterzugeben:

SituationWeg
Besucher wechselt per Link zwischen deinen eigenen DomainsSession-Kennung als URL-Parameter am Link
Funnel-Tool erlaubt eigenen Code und leitet alle Felder weiterScript im Funnel, Session-ID im versteckten Feld
Formular- oder Buchungstool ohne eigenen Code, aber mit WeiterleitungWeiterleitung auf deine Danke-Seite mit E-Mail-Adresse in der URL
Link in einen CheckoutSession-Kennung im Checkout-Link

Als Netz unter allem dient der Abgleich über Kontaktdaten: Kennt die Session bereits die E-Mail-Adresse oder Telefonnummer des Besuchers, findet ein später eintreffender Lead seine Session auch ohne Session-ID.

Mehrere eigene Domains verbinden

Liegt die Landingpage auf angebot.de und das Bewerbungsformular auf karriere-firma.de, brauchst du klassisches Cross-Domain-Tracking. In LeadMetrics heißt die Einstellung Multi Domain Tracking. Ist sie aktiv, hängt das Script an Links zu anderen Domains automatisch die Session-Kennung an. Das Script auf der Zieldomain übernimmt diese Session, statt eine neue zu starten.

Darauf kommt es an:

  • Dasselbe Snippet überall: Auf allen Domains muss exakt dasselbe Tracking-Snippet desselben Projekts laufen. Kopiere es, statt es mit anderen Einstellungen neu zu erzeugen.
  • Nur echte Links: Übergeben wird an <a href>-Links. Iframe-Quellen, per JavaScript gebaute URLs und Formular-Actions werden nicht umgeschrieben.
  • Auch Subdomains bedenken: Wechseln Besucher per Link zwischen www. und funnel., lohnt sich die Einstellung ebenfalls.

Funnel-Builder mit eigenem Code: Heyflow und Perspective

Funnel-Builder wie Heyflow und Perspective erlauben eigenen Code im Funnel und leiten alle Formularfelder per Webhook weiter. Das ist der zuverlässigste Fall:

  1. Script in den Funnel einbauen

    Füge das Tracking-Script in den Head-Code des Funnels ein. Bei Perspective auf jeder Seite des Funnels.
  2. Verstecktes Feld anlegen

    Lege ein verstecktes Feld mit dem Namen lm_session_id an und setze als Inhalt genau {{LM_SESS}}, ohne weitere Zeichen. Das Script ersetzt den Platzhalter durch die aktuelle Session-ID.
  3. Webhook verbinden

    Hinterlege die Webhook-URL aus LeadMetrics im Funnel-Tool. Jeder Lead kommt mit seiner Session-ID an und wird exakt seinem Besuch zugeordnet.

Läuft der Funnel nicht als eigene Seite, sondern als Iframe auf deiner Landingpage, startet er ohne weitere Übergabe eine eigene Session. Der Lead wird dann zwar zugeordnet, aber einem Besuch, dessen Quelle deine Landingpage ist und nicht die Anzeige. Hier muss die Session zusätzlich in die Iframe-URL übergeben werden. Einfacher ist es, aus der Anzeige direkt auf den Funnel zu verlinken. Bietet das Tool eine eigene Domain an, kann der Funnel auch auf einer Subdomain deiner Website laufen. Dann teilt er sich die Cookies mit deiner Seite.

ClickFunnels und Meetovo erlauben ebenfalls eigenen Code, senden per Webhook aber nur feste Felder. Ein verstecktes Session-Feld kommt dort nicht an. Baue das Script trotzdem ein: Es erkennt die E-Mail-Adresse im Formular, und der Lead wird über den Abgleich der Kontaktdaten zugeordnet.

Tools ohne eigenen Code: Typeform und Calendly

Typeform-Formulare und Calendly-Buchungen laufen meist als Iframe, in dem du kein eigenes Script ausführen kannst. Die Lösung ist eine Weiterleitung nach dem Absenden auf eine Danke-Seite auf deiner Domain, die das Tracking-Script enthält. In der URL übergibt das Tool die E-Mail-Adresse, etwa ?email=. Das Script liest sie aus, die Session kennt jetzt die Person, und der Lead, der parallel per Webhook oder Zapier ankommt, findet seine Session.

  • Typeform: Unter „Redirect on completion“ die Danke-Seite eintragen und die Antwort aus dem E-Mail-Feld als Parameter einfügen, zum Beispiel https://deine-firma.de/danke?email={{field:email}}.
  • Calendly: In den Einstellungen des Termintyps unter „Confirmation Page“ auf eine externe Seite weiterleiten und „Pass event details to your redirected page“ aktivieren. Die Buchung selbst kommt über Zapier zu LeadMetrics.

Zwei Details entscheiden, ob es klappt: Telefonnummern müssen URL-kodiert sein (%2B49… statt +49…), sonst geht das Pluszeichen verloren. Und die Danke-Seite muss dasselbe Tracking-Snippet enthalten wie die Landingpage.

💡
Personenbezogene Daten in einer URL landen in Browser-Verläufen und Server-Logs. Nutze die Weiterleitung mit E-Mail-Adresse nur dort, wo das Tracking nicht im Tool selbst laufen kann, und erwähne sie in deiner Datenschutzerklärung.

Checkout-Seiten: Digistore24 und CopeCart

Bei Infoprodukten und Coachings endet der Funnel oft im Checkout eines Zahlungsanbieters. Hier wird die Session über den Checkout-Link übergeben. Setze den Platzhalter __LM_SESS__ in den Link, und das Script ersetzt ihn vor dem Klick durch die Session-ID:

CheckoutParameter am Link
Digistore24?cid=__LM_SESS__
CopeCart?metadata=__LM_SESS__
Stripe Checkout / Payment Link?client_reference_id=__LM_SESS__

Der Verkauf kommt dann per Webhook mit dieser Kennung zurück und landet bei der Anzeige, über die der Käufer kam. Wichtig: Ersetzt wird nur in normalen Links auf deiner Seite. Ein Button, der seine URL per JavaScript zusammenbaut, bekommt keine Session-ID.

Eigene Widgets und Sonderfälle

Hast du einen eigenen Konfigurator, ein individuelles Buchungs-Widget oder eine Seite, auf der die Formular-Erkennung das E-Mail-Feld nicht sieht, kannst du die Person selbst identifizieren. Ein Aufruf wie lmetrics.attribute({ email, phone }) hängt E-Mail-Adresse und Telefonnummer an die aktuelle Session. Kommt der Lead später aus dem CRM oder per Webhook, wird er darüber zugeordnet.

So prüfst du dein Setup

  1. Mit Testparametern starten

    Rufe die Landingpage mit den Tracking-Parametern einer echten Anzeige auf, zum Beispiel aus der Anzeigenvorschau.
  2. Feld oder Link prüfen

    Im Funnel muss das versteckte Feld eine lange Kennung enthalten statt des Platzhalters {{LM_SESS}}. Im Checkout-Link muss __LM_SESS__ ersetzt sein.
  3. Testlead mit eindeutiger E-Mail

    Schicke das Formular mit einer eindeutigen Test-Adresse ab. Bei Weiterleitungen: Landest du auf deiner Danke-Seite, und steht die E-Mail-Adresse in der URL?
  4. Zuordnung kontrollieren

    Der Testlead muss mit Kanal, Kampagne und Anzeige erscheinen. Fehlt die Quelle, ist an einer Stelle die Übergabe gerissen.

Typische Fehler

  • Script nur auf der Landingpage: Funnel-Seiten, Danke-Seiten und zweite Domains brauchen dasselbe Snippet.
  • Platzhalter mit Zusatz: {{LM_SESS}} wird nur ersetzt, wenn er der komplette Feldinhalt ist.
  • Unterschiedliche Snippets: Auf zwei Domains laufen Scripts verschiedener Projekte oder mit anderen Einstellungen, und die Session kann nicht übergehen.
  • Weiterleitungen ohne Parameter: Ein Redirect oder Link-Kürzer schneidet die Session-Kennung ab.
  • Eigene Domain als Quelle: Der Funnel-Builder erscheint als Verweisquelle und überschreibt die Anzeige.

Wie Klick-Parameter überhaupt sauber ankommen, steht im Guide zu UTMs und Klick-IDs. Wie aus dem zugeordneten Lead die Zuordnung bis zum Umsatz wird, erklärt der Guide zur Lead-Attribution.

So hilft dir LeadMetrics

  • Alle Übergabewege an Bord: {{LM_SESS}} für versteckte Felder, __LM_SESS__ für Checkout-Links, Weiterleitungen mit ?email=, lmetrics.attribute() und Multi Domain Tracking für deine eigenen Domains.
  • Formular-Erkennung: E-Mail und Telefonnummer aus Formularfeldern werden verschlüsselt übertragen und an der Session gespeichert, auch in Single-Page-Apps.
  • Robuste Zuordnung: Leads werden über Session-ID, E-Mail-Adresse oder Telefonnummer bis zu 90 Tage rückwirkend zugeordnet, nicht zugeordnete Leads stündlich erneut abgeglichen.
  • Fertige Anbindungen: Heyflow, Perspective, OnePage, Meetovo, Typeform und ClickFunnels per Webhook, Calendly über Zapier, Verkäufe aus Digistore24, CopeCart und Stripe. Mehr dazu auf der Seite zum Lead-Tracking.

Bereit für besseres Tracking?

Teste LeadMetrics 10 Tage kostenlos und sieh, welche Kampagnen wirklich Umsatz bringen.
10 Tage kostenlos testen

Häufige Fragen

Weil das Funnel-Tool auf einer anderen Domain läuft als deine Landingpage. Cookies gelten nur für die Domain, die sie gesetzt hat, und ein Script auf deiner Seite kann nicht in ein fremdes Iframe hineinsehen. Ohne aktive Übergabe der Session startet im Funnel ein neuer, unbekannter Besuch.

Begriffe in diesem Guide

Alle Begriffe

Passende Artikel

Weitere Guides

Alle Guides