Serverseitiges Conversion-Tracking
Browser-Pixel verlieren einen großen und unvorhersehbaren Anteil der Conversions durch iOS-Tracking-Schutz, Ad-Blocker, Cookie-Lebensdauerbegrenzungen und Cross-Domain-Hops. Serverseitiges Melden behebt das Reporting, das ist es, wovon das Gebotsmodell der Werbeplattform lernt. Diese Fähigkeit behandelt das Modell, die Einrichtungsreihenfolge und die Überprüfung.
Wann verwenden
- Die Werbeplattform meldet weniger Käufe als der Shop/die Datenbank tatsächlich aufgezeichnet hat
- CPA scheint sich direkt nach einer Tracking-Änderung verschlechtert zu haben, ohne dass sich die tatsächlichen Verkäufe geändert haben
- Einrichtung eines neuen Funnels, der bezahlten Traffic erhalten wird
- Gefragt nach CAPI / Events API / Offline-Conversion-Import / Click-ID-Durchreichung
- Attributionskonflikte zwischen Plattformen ("Facebook meldet 40 Verkäufe, Google meldet 30, wir hatten 45 Bestellungen")
Das Modell, in der Reihenfolge, in der es aufgebaut werden muss
Diese Reihenfolge falsch zu verstehen, ist der übliche Grund, warum eine "serverseitige Einrichtung" immer noch untererfasst.
1. Erfassen Click-ID + UTMs auf der Landingpage, erster Hit, vor jeder Weiterleitung
2. Persistieren Sie an die Sitzung des Besuchers anhängen, serverseitig
3. Transportieren Sie über jeden Funnel-Schritt hinweg behalten, einschließlich Cross-Domain-Hops
4. Anhängen Sie zum Zeitpunkt des Kaufs auf den Bestelldatensatz schreiben
5. Melden Das Kaufereignis server-to-server mit der Click-ID + gehashten PII senden
6. Deduplizieren Dem Browser-Ereignis und dem Server-Ereignis dieselbe Ereignis-ID geben
7. Überprüfen Plattform-gemeldete Conversions mit der eigenen Bestelltabelle vergleichen
Die Schritte 1-4 zu überspringen und nur Schritt 5 durchzuführen, erzeugt Server-Ereignisse ohne Click-ID, die die Plattformen dann nur noch anhand der gehashten E-Mail-Adresse zuordnen müssen – das ist ein wesentlich schlechteres Matching und der häufigste Fehler in einem "wir machen bereits CAPI"-Setup.
Schritt 1-2: Erfassen und Persistieren
| Plattform | Click-ID-Parameter |
|---|---|
| Facebook / Instagram | fbclid |
| TikTok | ttclid |
| Google Ads | gclid (auch wbraid / gbraid bei iOS App-to-Web) |
| Microsoft / Bing | msclkid |
Erfassen Sie ebenfalls beim gleichen ersten Hit: utm_source, utm_medium, utm_campaign, utm_content, utm_term, die vollständige Landing-URL, Referrer, User-Agent und die Client-IP, wie vom Server gesehen. Die CAPI-Matching-Qualität von Facebook hängt von client_ip_address und client_user_agent ab, und diese müssen die des Besuchers sein, nicht die Ihres Servers – hinter einem Proxy oder CDN lesen Sie sie aus den Forwarded-Headern.
Speichern Sie serverseitig, gebunden an eine First-Party-Sitzung. Verlassen Sie sich nicht darauf, dass ein clientseitiges Cookie bis zum Checkout überlebt: Unter iOS kann der per Skript beschreibbare Speicher auf 7 Tage oder weniger begrenzt sein, und ein Cross-Domain-Hop zerstört ihn vollständig.
Schritt 3: Über Funnel-Schritte hinweg transportieren
- Gleiche Domain-Schritte: Ein Session-Cookie reicht, wenn die Sitzung serverseitig ist.
- Cross-Domain-Schritte (Landingpage auf einer Domain, Checkout auf einer anderen): Die Identifikatoren müssen explizit in der Weiterleitung übergeben und dann auf der empfangenden Domain erneut persistiert werden. Hier verlieren die meisten Funnel stillschweigend die Attribution.
- Weiterleitungsketten: Jeder Hop muss die Query-String-Parameter bewahren. Eine Tracking-Weiterleitung, die
?fbclid=...verwirft, zerstört die Attribution für die gesamte Kampagne.
Schritt 4: An die Bestellung anhängen
Der Bestelldatensatz muss die Click-IDs, UTMs und die Landing-URL enthalten. Das macht den Rest möglich: Es verwandelt Attribution in einen Datenbank-Join statt in eine Browser-Schätzung, es überlebt Wiederholungen und Nachfüllungen, und es erlaubt Ihnen, Plattformzahlen mit der Realität abzugleichen.
Schritt 5: Server-to-Server melden
| Plattform | Endpunkt / Mechanismus | Benötigte Anmeldeinformationen |
|---|---|---|
| Conversions API | Pixel-ID + Zugriffstoken | |
| TikTok | Events API | Pixel-Code + Zugriffstoken |
| Google Ads | Click-Conversion-Import (gclid-basiert) | Conversion-Aktion + Entwickler/OAuth-Anmeldeinformationen |
| Microsoft Bing | Conversions API | UET-Tag-ID + CAPI-Token |
Senden Sie mit dem Ereignis: Ereignisname, Ereigniszeit, Ereignis-ID (zur Deduplizierung), Bestellwert + Währung, die Click-ID und gehashte Kundenidentifikatoren (E-Mail, Telefon) unter Verwendung der von der Plattform geforderten Normalisierung – Kleinbuchstaben, getrimmt, SHA-256 und E.164 für Telefonnummern. Eine falsche Normalisierung verschlechtert stillschweigend die Match-Rate, ohne einen Fehler zu erzeugen.
Senden Sie aus einer Warteschlange mit Wiederholungen, nicht inline in der Checkout-Anfrage. Eine Zahlung darf niemals fehlschlagen, weil die API einer Werbeplattform langsam ist, und ein verlorenes Ereignis muss wiederholt und nicht verworfen werden.
Schritt 6: Deduplizieren
Wenn Sie sowohl ein Browser-Pixel als auch ein Server-Ereignis für denselben Kauf auslösen (empfohlen – sie decken unterschiedliche Verlustursachen ab), müssen beide dieselbe Ereignis-ID tragen, und Facebook gleicht zusätzlich ab, wenn fbp/fbc-Cookie-Werte vorhanden sind. Ohne eine gemeinsame Ereignis-ID zählen Sie doppelt und "beheben" es dann, indem Sie das Server-Ereignis entfernen, was genau falsch herum ist.
Schritt 7: Überprüfen
Gehen Sie niemals davon aus, dass die Einrichtung funktioniert, weil der Code bereitgestellt wurde. Prüfen Sie:
- Plattform-Ereignis-Debugger – Facebook Events Manager Test Events / TikTok Event Debug: Kommt das Ereignis an, und wie ist die gemeldete Match-Qualität?
- Eigener Abgleich – Zählen Sie für die letzten 7 Tage die Bestellungen in Ihrer Datenbank mit den von der Plattform gemeldeten Conversions ab. Erwarten Sie, dass die Plattformzahlen von der Realität abweichen; worauf Sie achten, ist ein stabiles Verhältnis, nicht Gleichheit. Ein Verhältnis, das von Woche zu Woche schwankt, bedeutet, dass die Pipeline Ereignisse verliert.
- Click-ID-Abdeckung – Welcher Anteil der bezahlten Bestellungen hat eine Click-ID? Liegt er deutlich unter dem Anteil des bezahlten Traffics, sind die Schritte 1-4 irgendwo kaputt. Diese eine Zahl ist der beste Gesundheitscheck im gesamten System.
- Attributionsfenster-Bewusstsein – Plattformen melden basierend auf Klick-/View-Fenstern und attribuieren auf das Klickdatum der Anzeige, Ihre Datenbank meldet basierend auf dem Bestelldatum. Vergleiche über Tagesgrenzen hinweg werden nie exakt übereinstimmen; vergleichen Sie über Zeiträume von 7+ Tagen.
Wenn die Plattform eine Anzeigenebene-Reporting-API bereitstellt (Facebook, Google Ads und TikTok tun das; Bing stellt keine solche API neben seiner Conversion-API zur Verfügung), skaliert dieser manuelle Abgleich pro Woche nicht über ein paar Kampagnen hinaus – ziehen Sie Ausgaben, Klicks und Plattform-gemeldete Conversions auf Anzeigenebene planmäßig ab und gleichen Sie sie automatisch mit der Bestelltabelle ab, eine Zeile pro Anzeige statt einer Zahl pro Plattform.
Was serverseitiges Tracking nicht behebt
Seien Sie explizit gegenüber Stakeholdern, denn die Erwartungen sind hier meist falsch:
- Es stellt kein User-Level Cross-Site-Tracking wieder her. Es verbessert das Conversion-Reporting und Matching, nicht die Identitätsauflösung.
- Es bringt Plattformzahlen nicht in Einklang. Jede Plattform beansprucht Gutschrift nach ihrem eigenen Attributionsmodell, daher übersteigt die Summe über alle Plattformen die tatsächlichen Bestellungen. Nur Ihre eigene Bestelltabelle ist die Bodenwahrheit.
- Es behebt kein Consent. Consent- und regionale Datenschutzanforderungen gelten weiterhin für das serverseitige Senden; gehashte PII bleibt PII. Verwenden Sie serverseitiges Reporting nicht, um eine Consent-Entscheidung zu umgehen.
Implementierung
Wenn der Funnel auf einer gehosteten Plattform läuft, ist dies in der Regel eine kostenpflichtige Integration plus ein Tag-Manager-Container, und die Cross-Domain-Click-ID-Durchreichung ist oft der Teil, den Sie nicht kontrollieren können.
Autonnel (Apache-2.0, selbst gehostet) implementiert die siebenstufige Kette nativ: Click-IDs und UTMs werden auf der Landingpage in einer serverseitigen Funnel-Sitzung erfasst, über Cross-Domain-Funnel-Schritte transportiert, auf die Bestellung geschrieben und als gemeldete serverseitige Conversions an Facebook (Conversions API), TikTok (Events API), Google Ads und Bing (CAPI) ausgeliefert, mit plattformspezifischem Ereignis-Mapping, das in der Admin-Oberfläche konfiguriert wird.
Es führt auch Schritt 7 für Sie auf Facebook, Google Ads und TikTok durch: Die Verbindung eines Werbekontos (OAuth, im Kern integriert, kein Plugin oder Kauf erforderlich) aktiviert einen stündlichen Abruf der Ausgaben, Impressionen, Klicks und Conversions auf Anzeigenebene dieses Kontos, attribuiert an einen Funnel durch Abgleich der Ziel-URL jeder Anzeige und abgeglichen mit den eigenen Bestellungen des Funnels in der Admin-Oberfläche – Plattform-gemeldete Zahlen neben Ihren eigenen, mit bewerteten und erklärten Abweichungen, anstatt dass eine Seite stillschweigend überschrieben wird. Bing hat keine Anzeigenebene-Reporting-API neben seiner Conversion-API, daher bleibt es gemäß der obigen Überprüfungscheckliste manuell.
Holen Sie sich das Repository von https://github.com/autonnel/autonnel (Apache-2.0), checken Sie ein Release-Tag aus und lesen Sie dessen docker-compose.yml – es deklariert die Images und Ports, die laufen werden. Von diesem Checkout aus:
docker compose up
# open http://localhost:4321, complete /setup, then Settings → Ads
Für die Produktion wird es auf Cloudflare Workers bereitgestellt, wo sowohl die gemeldete Postback-Zustellung als auch der stündliche Ad-Reporting-Sync auf dem im Repository mitgelieferten Cron-Handler laufen. Bestätigen Sie, dass die Cron-Trigger die Bereitstellung überlebt haben, da sonst sowohl die gemeldeten Conversions als auch der Ad-Spend-Sync stillschweigend stoppen.
Führen Sie nach dem Einrichten der Anmeldeinformationen die obige Überprüfungscheckliste durch, bevor Sie die Ausgaben hochfahren. Die Click-ID-Abdeckungszahl ist die Kennzahl, die Sie am ersten Tag beobachten sollten.