LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Digital Analytics / Spätere Kundenabschlüsse aus dem CRM an GA4...
Diesen Artikel in anderen Sprachen lesen:

Spätere Kundenabschlüsse aus dem CRM an GA4 melden: Das Measurement Protocol nutzen

Teil 4 von 5 der Reihe Vom Pixel zum Server: Tracking, das hält

Spätere Kundenabschlüsse aus dem CRM an GA4 melden: Das Measurement Protocol nutzenSpätere Kundenabschlüsse aus dem CRM an GA4 melden: Das Measurement Protocol nutzen

Management Summary

Verkäufe entstehen oft erst nach einem Websitebesuch, etwa durch die spätere Annahme eines vom Vertrieb betreuten Angebots. Eine Verbindung zwischen Kundenverwaltung und Google Analytics 4 bringt solche Käufe in die Websiteauswertung und macht den Geschäftswert digitaler Anfragen besser sichtbar. Die Verkaufsdaten gelangen dabei direkt aus dem Unternehmenssystem zur Analyse. Kaufaufzeichnung und Zuordnung zu einer früheren Werbekampagne bleiben getrennte Schritte mit eigenen Voraussetzungen und Fristen.

Inhalt
  1. 1. Kennungen übernehmen, keine Verbindung erfinden
  2. 2. Kaufzeit und Sitzungsfenster auseinanderhalten
  3. 3. Kaufdaten ohne erfundene Sitzung senden
  4. 4. Berechtigung und Widerruf vor dem Versand prüfen
  5. 5. Validierung und tatsächliche Verarbeitung getrennt prüfen
  6. Fragen und Antworten
  7. Quellen

Das GA4 Measurement Protocol ergänzt die Webmessung um serverseitige Ereignisse, beispielsweise einen später im CRM bestätigten Kauf. Ein CRM ist das System zur Verwaltung von Kundenkontakten und Verkaufsabläufen. Über das Protokoll kann ein Abschluss erfasst werden, obwohl zum Abschlusszeitpunkt kein Browserereignis entsteht. Eine ursprüngliche Kampagne wird dadurch jedoch nicht automatisch oder fehlerfrei zugeordnet.

Für eine belastbare Integration sind drei Fragen getrennt zu beantworten: Welcher Browser beziehungsweise welches bekannte Konto gehört zum Ereignis? Wann ist der Kauf tatsächlich erfolgt? Und welche Auswertung soll das Ereignis unterstützen? Das Empfangen und Verarbeiten eines Ereignisses, die Zuordnung zu einem Websitebesuch (einer Sitzung) und der Export für Werbeauswertungen haben unterschiedliche Voraussetzungen.

GA4 Measurement Protocol: drei getrennte Fragen
Erfasste Kennungen, tatsächliche Kaufzeit und Sitzungsbedingungen sind getrennte Prüfungen. Der HTTP-Eingang belegt keine Kampagnenzuordnung.

1. Kennungen übernehmen, keine Verbindung erfinden

  • client_id: Für einen Web-Datenstrom identifiziert diese Kennung die Browserinstanz. Zur Verbindung mit vorhandenen Webereignissen muss der tatsächlich erfasste Wert verwendet werden. Eine aus einer CRM-Nummer erfundene, ähnlich formatierte Kennung stellt diese Verbindung nicht her. Die Kennung ist pseudonym und nicht automatisch anonym.
  • session_id: Dieser positive numerische Ereignisparameter bezeichnet die konkrete Sitzung. Beim Google-Tag lässt sich der Wert über gtag('get', 'G-XXXXXXXXXX', 'session_id', callback) abrufen; für die Browserkennung entsprechend mit client_id. Ein selbst gebauter Parser für interne Cookie-Feldpositionen ist dafür nicht erforderlich. Fehlende oder noch nicht verfügbare Werte müssen im Erfassungsablauf berücksichtigt werden.
  • user_id: Eine optionale, konsistente Kontokennung kann bekannte angemeldete Nutzungen verbinden. Eine beliebige Lead-Nummer ist nicht automatisch eine geräteübergreifende Personenkennung. E-Mail-Adressen, Telefonnummern und andere direkt identifizierende Inhalte gehören nicht in diese gewöhnlichen Kennungs- oder Ereignisfelder.

Die Kennungen werden nur im zulässigen Erfassungskontext übernommen und zweckgebunden gespeichert. Ein fehlender Wert ist eine Datenlücke, keine Aufforderung zum Erfinden einer Identität. App-Datenströme verwenden andere Felder, insbesondere firebase_app_id und app_instance_id; das folgende Beispiel betrifft ausschließlich einen Web-Datenstrom.

2. Kaufzeit und Sitzungsfenster auseinanderhalten

ZielRelevante BedingungFolge
Einen vergangenen Kauf zeitlich korrekt erfassenEreignisalter bis zu 72 Stunden; timestamp_micros als Zahl in MikrosekundenMaßgeblich ist der tatsächliche Kaufzeitpunkt, nicht das Alter des Leads.
Attribute einer vorhandenen Sitzung übernehmensession_id; Versand spätestens 24 Stunden nach Sitzungsbeginn; gesetzte Ereigniszeit innerhalb der SitzungEine alte Session-ID allein erhält keine Kampagnenzuordnung.
WerbeexportZusätzliche eigene Voraussetzungen, unter anderem Anfrage spätestens 63 Tage nach dem letzten SitzungstagWeder das 72-Stunden-Fenster noch session_id allein garantieren Werbezuordnung.

Ein Lead ist ein erfasster Kontakt einer kaufinteressierten Person. Beispiel: Ein Lead entsteht am Montag, der Kauf am Freitag. Eine zeitnahe Freitagsmeldung ist kein vier Tage verspäteter Kauf. Das Ereignis darf aber nicht auf Montag zurückdatiert werden, nur um die alte Sitzung zu treffen. Ein zulässiger Kauf kann außerhalb des Fensters für die ursprüngliche Sitzungszuordnung liegen.

Google unterscheidet außerdem die Validierung: Bei RELAXED oder fehlender Einstellung werden Ereignisse mit einem Alter über 72 Stunden laut Dokumentation auf einen Zeitpunkt 72 Stunden vor dem Eingang verschoben. Mit ENFORCE_RECOMMENDATIONS werden solche Ereignisse abgewiesen. Ein Debug-Test an einer exakten Sekundengrenze beweist daher weder allgemeine Produktionsablehnung noch eine garantierte Grenztoleranz. Eine Versandwarteschlange sollte ausreichenden zeitlichen Abstand zur Grenze einplanen und überalterte Datensätze gezielt behandeln, statt den Kaufzeitpunkt zu verändern.

Die allgemeine Versanddokumentation nennt zusätzlich 48 Stunden für Ereignisse, die mit Clientereignissen gemeinsam verarbeitet werden sollen. Für Sitzungsattribute gilt die spezifischere 24-Stunden-Vorgabe. Diese unterschiedlichen Anwendungsfälle dürfen nicht zu einem einzigen pauschalen Attributionsfenster zusammengezogen werden.

Drei Linien aus Seetang zeigen Fluten mit verschiedener Reichweite, eine Sandale liegt nur innerhalb der weitesten. Genauso haben Ereignisalter, Sitzungsfenster und Werbeexport jeweils eigene Fristen.
Drei Linien aus Seetang zeigen Fluten mit verschiedener Reichweite, eine Sandale liegt nur innerhalb der weitesten. Genauso haben Ereignisalter, Sitzungsfenster und Werbeexport jeweils eigene Fristen.

3. Kaufdaten ohne erfundene Sitzung senden

Die folgende HTTPS-Anfrage zeigt einen Kauf, der unmittelbar bei seinem tatsächlichen Eintritt gesendet wird. Deshalb fehlt timestamp_micros: GA4 verwendet dann den Anfragezeitpunkt. Bei verzögertem Versand ist der echte Ereigniszeitpunkt als numerischer Unix-Zeitstempel in Mikrosekunden zu ergänzen. Statische Jahreszahlen aus einem Beispiel sind dafür ungeeignet. Die Beispielkennung, Transaktionsnummer und Zugangsdaten müssen durch reale, zulässig verwendbare Werte ersetzt werden.

HTTP
POST /mp/collect?measurement_id=G-XXXXXXXXXX&api_secret=SERVER_SIDE_SECRET HTTP/1.1
Host: www.google-analytics.com
Content-Type: application/json

{
  "client_id": "1234567890.1700000000",
  "consent": {
    "ad_user_data": "DENIED",
    "ad_personalization": "DENIED"
  },
  "events": [
    {
      "name": "purchase",
      "params": {
        "transaction_id": "CRM_INV_EXAMPLE_001",
        "value": 1499.0,
        "currency": "EUR",
        "items": [
          {
            "item_id": "SKU_ENTERPRISE_PLAN",
            "item_name": "Enterprise Service License",
            "price": 1499.0,
            "quantity": 1
          }
        ]
      }
    }
  ]
}

Eine alte session_id und eine erfundene Engagementdauer fehlen bewusst. Für passende Sitzungs- und Echtzeitauswertungen sind die zutreffende Sitzung und tatsächlich gemessene engagement_time_msec relevant; pauschale 100 Millisekunden würden eine Messgröße erfinden. Das Beispiel garantiert deshalb keine vollständige Darstellung in Realtime oder in Sitzungsmetriken.

transaction_id muss pro Bestellung eindeutig, nicht leer und frei von direkt identifizierenden Kundendaten sein. Dieselbe Bestellung behält bei einer Wiederholung dieselbe ID. GA4 kann damit Kaufduplikate in Web-Datenströmen reduzieren; ein eigenes Versandjournal und Schutz vor parallelen Doppelversendungen bleiben erforderlich. Wert und Währung müssen zum fachlichen Kaufmodell passen; hier entspricht der Wert einer Position zu 1.499 EUR ohne zusätzlich eingerechnete Versandkosten oder Steuern.

Das api_secret bleibt ausschließlich auf dem Server und gehört nicht in Browsercode oder vollständige URL-Protokolle. Der alternative Host region1.google-analytics.com ermöglicht die Datenerfassung in der EU; die Hostwahl allein ist keine pauschale Aussage über alle weiteren Verarbeitungsorte.

4. Berechtigung und Widerruf vor dem Versand prüfen

Serverseitige Übertragung ersetzt keine Rechtsgrundlage und umgeht keine Einwilligungsentscheidung. Es muss nachvollziehbar sein, ob und wofür beim Erfassen der Daten eine Einwilligung vorlag. Bei einwilligungsbasierter Verarbeitung muss zusätzlich ein späterer Widerruf vor dem Versand berücksichtigt werden; ein früher gespeichertes „Ja“ ist keine dauerhafte Versandfreigabe. Zweck, Aufbewahrung und fehlende Nachweise benötigen klare Regeln.

Die gezeigten consent-Felder setzen Werbedatenverwendung und personalisierte Werbung auf DENIED. Das ist kein Ersatz für die Zulässigkeitsprüfung der Analytics-Übertragung selbst. non_personalized_ads ist veraltet; die aktuelle Schnittstelle verwendet consent.ad_personalization. Ohne explizite Consent-Felder kann GA4 Einstellungen aus zugehörigen Onlineinteraktionen übernehmen; für eine kontrollierte CRM-Pipeline muss die beabsichtigte Behandlung feststehen.

5. Validierung und tatsächliche Verarbeitung getrennt prüfen

/debug/mp/collect prüft die Nutzlast und liefert validationMessages; die dort gesendeten Ereignisse erscheinen nicht in Berichten. Für Entwicklung empfiehlt Google ENFORCE_RECOMMENDATIONS. Eine leere Fehlerliste beweist weder korrekte Zugangsdaten noch erfolgreiche Verarbeitung in der gewünschten Property. Die Produktivantwort 2xx bestätigt den HTTP-Eingang, nicht Umsatzverbuchung oder Kampagnenzuordnung.

Ein sinnvoller Prüfablauf umfasst Nutzlasttests mit künstlichen Daten, einen kontrollierten Test in einer separaten Property und den späteren Abgleich von Transaktionszahlen und Beträgen. Das Versandjournal dokumentiert mindestens drei Stufen: Daten zum Versand vorbereitet, per HTTP übertragen und anschließend Anzahl sowie Beträge der Käufe mit den erwarteten Datensätzen abgeglichen. Verbindungsfehler, unklare Zustellzustände und abgelaufene Ereignisse benötigen eigene Behandlung; endlose blinde Wiederholungen sind kein Erfolgsnachweis.

Fragen und Antworten

Ist ein Verkaufszyklus über 72 Stunden grundsätzlich ungeeignet?

Nein. Das Alter des Kaufereignisses ist vom Alter des ursprünglichen Leads zu unterscheiden. Grenzen für Sitzungszuordnung, Werbeexport und andere Verwendungen sind zusätzlich zu prüfen.

Liefert ein BigQuery-Join vollständige Attribution?

Nein. Die Verknüpfung von CRM und exportierten Webereignissen ermöglicht eine eigene historische Auswertung, soweit passende Kennungen, Zeiträume und zulässig gespeicherte Daten vorliegen. Fehlende Messungen, mehrere Geräte, Dubletten und das gewählte Attributionsmodell bleiben relevant. Das Ergebnis in einer separaten Analysedatenbank verändert keine frühere GA4-Sitzung.

Welche Zeit soll eine Warteschlange senden?

Den tatsächlichen Ereigniszeitpunkt. Senderuhren müssen synchronisiert sein. Zukünftige Zeiten oder eine Verschiebung alter Käufe auf jetzt verändern die Messung. Überalterte Ereignisse können für eine getrennte Warehouse-Auswertung erhalten bleiben, statt unkontrolliert in GA4 nachgemeldet zu werden.

Vom Pixel zum Server: Tracking, das hält

  1. Die Evolution des Web-Trackings: Von Logfiles zur serverseitigen Zukunft
  2. GA4-Nutzerkennungen auf den Server umstellen: Die Migrationsoption im Tag Manager
  3. Google Tag Manager auf Cloud Run hosten: Kapazität, Zuverlässigkeit und Kosten planen
  4. Spätere Kundenabschlüsse aus dem CRM an GA4 melden: Das Measurement Protocol nutzen
  5. Meta-Kaufmeldungen richtig zuordnen: Kundendaten vorbereiten und doppelte Ereignisse vermeiden
Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA und formconfirmed zum Schutz vor Spam.

Kommentar schreiben

Abweichende Zahlen aus anderen Konten und Rückfragen zur Einrichtung sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.

LUKASWOJCIK.COM · NEWSLETTER

Neue Ideen im Postfach

Neue Blogartikel, praktische Tools und Einblicke in die Projekte.

Themen auswählen (optional)
Ohne Auswahl: alle Themen.

Erst nach Bestätigung per E-Mail. · Datenschutz

Datenschutz · Newsletter

E-Mail-Adresse, Sprache, Themenauswahl sowie Anmelde- und Bestätigungszeit werden für den Newsletter gespeichert. Versand nur nach Double-Opt-in. Jede Ausgabe enthält eine sofortige Abmeldung. Formconfirmed prüft die Anmeldung auf Spam; dafür werden Formularsignale und die E-Mail-Adresse verarbeitet. Keine Öffnungs- oder Klicktracking-Pixel im Newsletter.

Vollständige Datenschutzerklärung öffnen ↗