Die Ein-Satz-Version
Server-Side Tracking bedeutet: Deine Website beobachtet weiterhin, was ein Besucher tut, aber die Zustellung dieser Informationen an Werbe- und Analyseplattformen erfolgt von einem Server, den du kontrollierst — nicht von einem Skript im Browser des Besuchers.
Diese eine Änderung hat Folgen für Zuverlässigkeit, Datenqualität und Datenschutz. Einige davon sind gut, andere werden regelmäßig übertrieben. Dieser Artikel trennt beides.
Was wandert, was bleibt
| Bleibt im Browser | Wandert auf den Server |
|---|---|
| Klicks, Seitenaufrufe, Formulare beobachten | Events für jeden Anbieter formatieren |
| Consent-Status aus dem CMP lesen | Die Consent-Policy ein zweites Mal anwenden |
Click-IDs (gclid, fbclid, ttclid, …) nach Marketing-Consent erfassen | Fehlgeschlagene Zustellungen wiederholen, Circuit Breaking, Dead-Letter-Handling |
| Anbieter-Tags laden, die du weiterhin willst (Hybridmodus) | Matching-Daten hashen und normalisieren |
| Über die Bestellnummer deduplizieren |
Der Browser braucht weiterhin ein kleines Skript — bei Track ein Snippet unter 30 KB gzip —, denn irgendjemand muss Verhalten beobachten und Consent lesen. Was du loswirst, ist der Stapel an Anbieter-Skripten und der Stapel anbieterspezifischer Netzwerkanfragen.
Warum Teams das machen
Zuverlässigkeit. Ad-Blocker, Tracking-Prevention und wackelige Mobilfunknetze verwerfen einen Teil der Browser-Anfragen. Eine Server-Anfrage von deinem Router an Metas Conversions API oder Googles Measurement Protocol hängt nicht davon ab, dass das Gerät des Besuchers auf der Seite bleibt.
Maßgebliche Conversions. Der Browser sieht eine Danke-Seite; dein Server sieht die Bestellung. Käufe aus dem Bestellsystem zu senden (Shopify-Webhook, WooCommerce-Hook, CRM-Export) liefert den Plattformen die Transaktion, die tatsächlich stattgefunden hat — inklusive späterer Erstattungen.
Kontrolle. Jede Payload läuft durch Code, der dir gehört. Du kannst Felder entfernen, personenbezogene Daten blockieren, sicherstellen, dass abgeleiteter Consent nie exportiert wird, und eine geschwärzte Kopie dessen protokollieren, was gesendet wurde.
Warum es Consent nicht ersetzt
Das häufigste Missverständnis: „Die Daten laufen über meinen Server, also gelten die Consent-Regeln nicht.“ Sie gelten genau wie vorher. Die rechtliche Frage ist, ob du die Daten eines Besuchers für einen Zweck verarbeiten und weitergeben darfst — nicht, welche Maschine sie sendet.
Eine korrekte Implementierung prüft Consent deshalb zweimal:
- Im Browser, bevor etwas gespeichert wird oder ein Anbieter-Tag lädt.
- Auf dem Server, vor jeder Zustellung, anhand des Consent-Snapshots, der mit dem Event mitgereist ist.
Events ohne den erforderlichen Zweck müssen verworfen werden — nicht geparkt und nach einer späteren Einwilligung nachgesendet. Das Nachsenden von Verhalten vor der Einwilligung ist genau das, was Aufsichtsbehörden ausdrücklich beanstanden.
Deduplizierung: der Teil, den anfangs jeder falsch macht
Wenn du Browser-Pixel und Server-API derselben Plattform betreibst (Hybridmodus), erhält die Plattform zwei Events pro Aktion. Anbieter deduplizieren über eine Event-ID, die beide Wege teilen müssen:
- Meta:
event_idin der Conversions API entsprichteventIDim Pixel-Aufruf - TikTok:
event_idin der Events API entspricht derevent_iddes Pixels - Pinterest und Snapchat:
event_id/client_dedup_id - Microsoft: dieselbe
eventIdauf UET-Tag und Conversions API - LinkedIn:
eventId
Die praktische Regel: Erzeuge an der Quelle eine ID pro Event und reiche sie überall durch. Käufe tragen zusätzlich die Bestellnummer (transaction_id in GA4, orderId in Google Ads, ordinal im Campaign Manager), damit der Anbieter auch dann über die Bestellung zusammenführen kann, wenn das Browser-Event verloren ging.
Eine minimale Architektur, die trägt
- Collector — nimmt Browser- und Server-Batches an, prüft Origins und Source-Keys, wendet Rate-Limits an und übergibt jeden Batch an eine dauerhafte Queue, bevor er mit 202 antwortet.
- Worker — normalisiert in ein Schema, scannt auf personenbezogene Daten, prüft die Consent-Policy, speichert das Event, dedupliziert Conversions über die Bestellnummer und erzeugt je Destination eine Zustellnachricht.
- Zustellung — bildet auf die Anbieter-Payload ab, validiert, sendet, klassifiziert die Antwort (Auth, Rate-Limit, ungültige Payload, temporär), wiederholt mit Backoff oder parkt in der Dead-Letter-Queue.
- Debugger — zeigt jedes Event mit Consent-Snapshot, Routing-Entscheidung und geschwärzter Anbieter-Payload.
Fehlt eines davon, kannst du irgendwann die Frage „Warum taucht dieser Kauf nicht in Plattform X auf?“ nicht beantworten — und genau diese Frage entscheidet, ob dem Projekt vertraut wird.
Checkliste, bevor du eine Destination auf Server-Side umstellst
- Offen: Consent wird im Browser und auf dem Server geprüft, ohne nachträgliches Replay
- Offen: Eine Event-ID pro Aktion, geteilt von Browser- und Server-Weg
- Offen: Bestellnummer auf jedem Kauf und jeder Erstattung
- Offen: Matching-Daten (E-Mail, Telefon) normalisiert und SHA-256-gehasht, bevor sie deine Systeme verlassen
- Offen: Click-IDs nur nach Marketing-Consent erfasst und nur an die zugehörige Plattform weitergegeben
- Offen: Ein Testevent, das in der Test-Events-Ansicht des Anbieters ankommt
- Offen: Retries, Dead-Letter-Queue und eine Möglichkeit zum Replay
- Offen: Aufbewahrungsfristen für Events, Click-IDs und Zustellprotokolle
Was nach der Umstellung zu erwarten ist
Teams sehen nach dem Hinzufügen der Server-Zustellung meist einen spürbaren Anstieg der Conversion-Zahlen — das ist der zuvor verlorene Browser-Traffic, keine neuen Kunden. Die Plattformen melden Kennzahlen zur Event-Match-Qualität; diese verbessern sich mit gehashter E-Mail und Telefonnummer aus dem Bestellsystem. Und rechne mit einigen Wochen, in denen Browser- und Server-Weg parallel laufen, während du die Zahlen im Debugger vergleichst.