- Auf Shopify sendet Server-Side-Tracking jeden Kauf aus der bezahlten Bestellung, die Shopify per Webhook meldet, und hängt deshalb nicht davon ab, dass die Dankeseite lädt.
- Die Besucher-ID und die Click-IDs der Anzeigen werden als Warenkorb-Attribute gespeichert, sodass Shopify sie auf die Bestellung kopiert und die Bestellung dem Klick zugeordnet werden kann.
- Browser- und Server-Events teilen sich eine aus der Bestell-ID gebildete Event-ID, sodass Meta, TikTok, Snapchat, Pinterest und Reddit jeden Kauf einmal zählen.
- Ist Respect visitor consent aktiviert, bekommt ein Besucher, der Marketing-Cookies ablehnt, keine Besucher-ID, und seine Browser-Events werden nicht an Werbeplattformen gesendet, aber die bezahlte Bestellung wird trotzdem mit gehashten Kundendaten aus der Bestellung gesendet.
- Die Einrichtung in ROASaurus hat vier Hauptschritte: die App installieren, die App-Einbettung im Theme aktivieren, das Checkout-Pixel hinzufügen und deine Werbeplattformen verbinden.
Server-Side-Tracking auf Shopify bedeutet, dass jeder Kauf Meta, TikTok und andere Werbeplattformen aus den Bestelldaten deines Shops erreicht, gesendet von einem Server, und nicht nur von einem Pixel im Browser des Käufers. Shopify meldet jede bezahlte Bestellung per Webhook an die Tracking-App, und die App sendet sie an die Conversions API jeder Plattform, zugeordnet zu dem Anzeigenklick, der den Käufer gebracht hat.
Dieser Leitfaden behandelt die Shopify-Teile dieses Ablaufs: die App-Einbettung im Theme und den App-Proxy, Pixel im Checkout, den orders/paid-Webhook, die Bestellzuordnung, Deduplizierung, Einwilligung und die Einrichtung in ROASaurus. Für die allgemeine Idee lies zuerst Was ist Server-Side-Tracking.
So funktioniert Server-Side-Tracking auf Shopify
Der Klick und der Kauf passieren zu unterschiedlichen Zeitpunkten und an unterschiedlichen Orten. Der Klick ist nur im Browser sichtbar, auf der Landingpage. Die bezahlte Bestellung ist nur auf Shopify-Seite sicher, wenn die Zahlung erfasst wird. Server-Side-Tracking zeichnet das Erste auf, wartet auf das Zweite und verbindet beide.
Die Shopify-Bausteine: App-Einbettung, App-Proxy, Pixel und Webhooks
Ein Shopify-Shop bietet einer Tracking-App vier Stellen zum Arbeiten. Jede hat eine andere Aufgabe, und ein vollständiges Setup nutzt alle vier.
| Baustein | Wo es läuft | Was er tut |
|---|---|---|
| App-Einbettung im Theme | Jede Storefront-Seite | Lädt das Tracking-Skript, liest Click-IDs aus Anzeigen und speichert die Besucher-ID im Warenkorb |
| App-Proxy | Ein Pfad auf deiner eigenen Shop-Domain | Empfängt Storefront-Events als First-Party-Anfragen |
| Customer Events (Pixel) | Checkout und Dankeseite | Meldet die Checkout-Schritte und den abgeschlossenen Checkout aus einer Sandbox |
| Bestell-Webhooks | Die Server von Shopify | Senden die Bestellung an die App, wenn sie angelegt und wenn sie bezahlt wird |
Die App-Einbettung im Theme und der App-Proxy
Eine App-Einbettung im Theme ist ein Block, den eine App zu deinem Theme hinzufügt. Du aktivierst sie im Theme-Editor, daher musst du keinen Code einfügen. Die ROASaurus-Einbettung lädt auf jeder Seite ein Skript. Auf der Landingpage liest es Click-IDs wie fbclid, ttclid und gclid sowie die UTM-Parameter und speichert sie mit einer First-Party-Besucher-ID.
Das Skript sendet seine Events über den App-Proxy von Shopify. Ein App-Proxy leitet Anfragen von einem Pfad auf deiner eigenen Domain, etwa yourstore.com/apps/roasaurus, an den Server der App weiter. Für den Browser ist das eine Anfrage an deine eigene Website, was gegen Adblocker helfen kann, die bekannte Tracking-Domains blockieren. Shopify entfernt den Cookie-Header aus App-Proxy-Anfragen und den Set-Cookie-Header aus den Antworten, deshalb wandert die Besucher-ID im Event selbst mit und nicht in einem Cookie.
Customer Events und Pixel im Checkout
Im Checkout von Shopify laufen Tracking-Skripte als Pixel in einer Sandbox, nicht in der Seite selbst. Du verwaltest sie unter Settings › Customer events. Es gibt zwei Arten. App-Pixel kommen mit einer App und laufen in einer strengen Sandbox. Benutzerdefinierte Pixel werden vom Händler hinzugefügt und laufen in einer weniger strengen Sandbox, die Skripte von Drittanbietern wie das Meta-Pixel laden kann.
ROASaurus nutzt beide. Sein App-Pixel wird aktiviert, wenn du die App installierst. Es meldet den Beginn des Checkouts, den Kontaktschritt und den abgeschlossenen Checkout an ROASaurus. Das optionale benutzerdefinierte Pixel fügt dem Checkout die Browser-Pixel von Meta, TikTok, Snapchat, Pinterest und Reddit hinzu und sendet Google-Ads-Conversions.
Bestell-Webhooks
Ein Webhook ist eine Nachricht, die Shopify an eine App sendet, wenn im Shop etwas passiert. ROASaurus abonniert unter anderem orders/paid und orders/create. Die Bestellung im Webhook enthält die Bestell-ID, den Wert, die Positionen, die Kundendaten, die Warenkorb- und Checkout-Tokens, die Warenkorb-Attribute sowie die IP-Adresse und den Browser, von denen aus die Bestellung aufgegeben wurde. Sie kommt von den Servern von Shopify, daher können ein Adblocker oder ein geschlossener Tab sie nicht aufhalten.
Wie Bestellungen den Anzeigenklicks zugeordnet werden
Der Webhook teilt ROASaurus mit, dass eine Bestellung bezahlt wurde. Um eine brauchbare Conversion zu senden, muss ROASaurus außerdem wissen, welcher Besucher die Bestellung aufgegeben hat, denn der Besucher-Datensatz enthält die Click-IDs. Es probiert diese Verknüpfungen der Reihe nach, von der direktesten zur indirektesten:
| Methode | So funktioniert es | Wann es verwendet wird |
|---|---|---|
| Warenkorb-Attribut | Das Skript schreibt die Besucher-ID und die Werte fbc, fbp, ttp, gclid und ttclid als Warenkorb-Attribute. Shopify kopiert sie auf die Bestellung. | Erste Wahl |
| Warenkorb- und Checkout-Tokens | Das Skript verknüpft das Warenkorb-Token mit dem Besucher, und das Checkout-Pixel verknüpft das Checkout-Token. Der Webhook enthält beide Tokens. | Wenn das Warenkorb-Attribut fehlt |
| Checkout-Event | Das Checkout-Pixel meldet den abgeschlossenen Checkout mit der Bestell-ID und der Besucher-ID. | Wenn kein Token passt |
| E-Mail-Adresse | Die gehashte E-Mail-Adresse eines Besuchers, der sie zuvor eingegeben hat, zum Beispiel im Kontaktschritt des Checkouts. | Wenn es kein Checkout-Event gibt |
| IP-Adresse und Browser | Ein Besucher, der kurz vor der Bestellung mit derselben IP-Adresse und demselben Browser gesehen wurde. | Nur wenn genau ein Besucher passt |
Warenkorb-Attribute sind der Grund, warum das Matching auf Shopify direkt ist. Es sind Schlüssel-Wert-Paare, die im Warenkorb gespeichert sind und die Shopify auf die Bestellung kopiert. Ein auf der Produktseite geschriebener Wert ist noch da, wenn der Webhook ankommt, auch wenn der Käufer die Dankeseite früh geschlossen hat.
Eine Ausnahme: Beschleunigte Checkout-Buttons wie Buy it now überspringen den Warenkorb. ROASaurus rät, sie auszuschalten, damit das Hinzufügen zum Warenkorb immer getrackt wird. Über sie aufgegebene Bestellungen können weiterhin über das Checkout-Token zugeordnet werden.
Eine Bestellung, von Anfang bis Ende
So läuft es für eine einzelne Bestellung aus einer Meta-Anzeige ab, bei installiertem benutzerdefiniertem Pixel:
page_view ?fbclid=IwAR2x…Ein Käufer landet über eine Meta-Anzeige. Die Click-ID wird mit Besucher 3f2a gespeichert.cart _tl=3f2a _tl_fbc=fb.1.…Die Besucher-ID und der Meta-Klickwert werden als Warenkorb-Attribute gespeichert.checkout_started ic-c1a9…Das Checkout-Token wird mit demselben Besucher verknüpft.checkout_completed order-6123456789012Das Checkout-Pixel meldet die Bestellung, und das Meta-Pixel sendet Purchase mit dieser Event-ID.orders/paid #1042 id 6123456789012 $86.00Shopify sendet die bezahlte Bestellung per Webhook.Meta CAPI Purchase order-6123456789012Nach einer kurzen Wartezeit wird das Server-Event mit den Click-IDs, der IP-Adresse und dem User Agent gesendet.Wann der Kauf gesendet wird: orders/paid oder orders/create
Welcher Webhook den Kauf auslöst, hängt davon ab, wie deine Kunden bezahlen. Du wählst ihn als Checkout-Typ in den Store settings.
| Checkout-Typ | Webhook | Wann der Kauf gesendet wird |
|---|---|---|
| Shopify checkout | orders/paid | Wenn die Bestellung bezahlt wird. Bestellungen, die nie bezahlt werden, werden nicht gesendet. |
| External / COD checkout | orders/create | Wenn die Bestellung angelegt wird. Für Nachnahme und für Checkouts wie Checkify und CheckoutChamp, die Shopify-Bestellungen anlegen. |
ROASaurus hält jeden Kauf nach dem Eintreffen des Webhooks kurz zurück. In dieser Zeit kommt in der Regel auch das Event des abgeschlossenen Checkouts aus dem Browser an. Dessen Seiten-URL, IP-Adresse und User Agent werden dann dem Server-Event hinzugefügt, neben den Click-IDs aus dem Besucher-Datensatz. Bestellungen, die Shopify als Testbestellungen markiert, werden erfasst, aber nicht an die Werbeplattformen gesendet.
Wie die Deduplizierung mit den Browser-Pixeln funktioniert
Wenn die Browser-Pixel neben den Server-Events laufen, erhält die Plattform jeden Kauf zweimal und muss nur einen behalten. Das gelingt ihr über die Event-ID. ROASaurus gibt beiden Kopien eines Kaufs dieselbe ID, gebildet aus der Shopify-Bestell-ID: order-6123456789012 für die Bestellung mit der ID 6123456789012. Das ist die lange Zahl in der Admin-URL der Bestellung, nicht der Bestellname wie #1042. Das Checkout-Pixel nutzt sie für das Browser-Purchase, und der Server nutzt sie für das Event der Conversions API. Meta behält zum Beispiel eine Kopie, wenn Eventname und Event-ID übereinstimmen und beide innerhalb von 48 Stunden eintreffen.
| Plattform | Browser-Pixel von ROASaurus | Mit dem Server-Event dedupliziert |
|---|---|---|
| Meta, TikTok, Snapchat, Pinterest, Reddit | Storefront und Checkout | Ja |
| X, Microsoft Advertising, Taboola | Keines, nur Server-Events | Nichts zusammenzuführen |
| Google Ads | Nur Checkout, über das benutzerdefinierte Pixel | Einmal gesendet, aus dem Checkout |
Die Event-ID funktioniert nur zwischen Events, die sie tragen. Wenn eine andere App dasselbe Pixel sendet, haben deren Events eigene IDs, und die Plattform zählt die Bestellung erneut. Auf Shopify sind die üblichen Ursachen der Kanal Facebook & Instagram, der mit demselben Pixel verbunden ist, die TikTok-App und in theme.liquid eingefügter Pixel-Code. Unser Leitfaden zu doppelten Purchase-Events zeigt, wie du sie findest, und Doppelzählungen vermeiden listet die Lösungen auf.
Einwilligung über die Customer Privacy API von Shopify
Die Customer Privacy API von Shopify speichert die Cookie-Entscheidung jedes Besuchers. Dein Cookie-Banner befüllt sie, egal ob du das Banner von Shopify oder eine mit der API verbundene Einwilligungs-App nutzt. Skripte und Pixel können sie dann fragen, ob Marketing für diesen Besucher erlaubt ist.
Ist Respect visitor consent aktiviert, was in den Store settings die Standardeinstellung ist, fragen das ROASaurus-Storefront-Skript und die Checkout-Pixel die API, bevor sie tracken.
- Eine Besucher-ID, Click-IDs und Browsing-Events werden gespeichert
- Die Browser-Pixel laden und senden Events
- Die bezahlte Bestellung wird serverseitig gesendet und dem Anzeigenklick zugeordnet
- Es wird keine Besucher-ID gesetzt, daher werden seine Besuche und Anzeigenklicks nicht mit ihm verknüpft
- Browser-Events werden ohne Besucher-ID, IP-Adresse und Browserdetails gespeichert und nicht an Werbeplattformen gesendet
- Die bezahlte Bestellung wird trotzdem serverseitig gesendet, mit gehashten Kundendaten aus der Bestellung sowie der IP-Adresse und dem User Agent der Bestellung
- Das Event, das die Werbeplattform erreicht, enthält keine Click-ID
E-Mail-Adressen, Telefonnummern, Namen und Adressen werden mit SHA-256 gehasht, bevor sie an eine Werbeplattform gesendet werden. Drei weitere Details sind wichtig:
- Dein Banner entscheidet. ROASaurus folgt dem, was die API meldet. Ist die API auf der Seite nicht verfügbar, behandelt ROASaurus den Besucher als einwilligend, prüfe daher, ob dein Banner mit ihr verbunden ist.
- Die Landingpage bleibt an der Bestellung. Shopify speichert die Adresse der Landingpage bei jeder Bestellung, und sie kann Kampagnen-Tags und Click-IDs enthalten. ROASaurus verwendet sie in seinen eigenen Attributionsberichten, auch bei Besuchern, die abgelehnt haben, und sendet sie nicht an die Werbeplattformen.
- Das Senden der Bestellung ist eine rechtliche Entscheidung. Ob die bezahlte Bestellung eines Besuchers, der abgelehnt hat, überhaupt gesendet werden darf, ist eine Rechtsfrage für deinen Shop.
Unser Leitfaden zu Consent Mode v2 und DSGVO erklärt die Regeln im Überblick, und Einwilligung und Datenschutz nennt die Details.
So richtest du Server-Side-Tracking auf Shopify in ROASaurus ein
Führe die Einrichtungsschritte in dieser Reihenfolge aus:
- Die App installieren
Gehe zu Add a store, wähle Shopify, gib deine
.myshopify.com-Domain ein und klicke auf Install app. Genehmige die App in Shopify. ROASaurus registriert die Bestell-Webhooks und aktiviert sein App-Pixel. - Die App-Einbettung im Theme aktivieren
Klicke auf der Seite Tracking & platforms auf Open theme editor, aktiviere die App-Einbettung von ROASaurus und speichere.
- Das Checkout-Pixel hinzufügen
Gehe im Shopify admin zu Settings › Customer events und füge ein benutzerdefiniertes Pixel namens ROASaurus hinzu. Setze die Berechtigung auf Not required, weil das ROASaurus-Skript die Marketing-Entscheidung des Besuchers selbst prüft. Füge das Snippet von Tracking & platforms ein. Du brauchst dieses Pixel für Browser-Pixel im Checkout und für Google Ads.
- Verbinde deine Werbeplattformen
Klicke unter Tracking & platforms für jede Plattform auf Add pixel, oder für Meta auf Connect with Facebook. Lass die Option aktiviert, das Browser-Pixel zusätzlich zu laden, wenn du deduplizierte Browser-Events willst.
- Die Store-Einstellungen prüfen
Wähle in den Store settings deinen Checkout-Typ und lass Respect visitor consent aktiviert, wenn du dort verkaufst, wo eine Einwilligung erforderlich ist.
- Andere Sender entfernen
Entferne im Kanal Facebook & Instagram dieses Pixel aus den Einstellungen zur Datenfreigabe. Die Stufe der Datenfreigabe zu senken reicht nicht, denn jede Stufe, auch Standard, sendet das Meta-Pixel aus dem Browser. Wenn die TikTok-App dasselbe Pixel sendet, stoppe es auch dort, und entferne Pixel-Code aus deinem Theme.
Das benutzerdefinierte Pixel-Snippet sieht so aus. Kopiere es von Tracking & platforms, wo dein Store-Schlüssel bereits eingetragen ist. Die Shopify-Einrichtungsanleitung enthält dieselben Schritte.
self.tl = this; document.head.appendChild(document.createElement('script')).src = 'https://app.roasaurus.com/c.js?k=YOUR_STORE_KEY';So prüfst du, ob es funktioniert
Teste mit einer echten Bestellung, bevor du dich auf die Zahlen verlässt:
- Öffne deinen Shop mit
?roasaurus=connectedam Ende der URL. Eine Meldung bestätigt, dass das Skript aktiv ist. - Füge für Meta den Code aus Events Manager › Test events in das Feld Test event code des Pixels ein.
- Gib eine echte, günstige Bestellung auf und erstatte sie danach. Shopify-Testbestellungen werden nicht gesendet.
- Im Event log wird die Server-Zustellung der Bestellung für jede Plattform als gesendet angezeigt, zusammen mit der Antwort der Plattform.
- Prüfe in der Testansicht der Plattform, dass das Browser- und das Server-Purchase dieselbe Event-ID haben:
order-plus die Shopify-Bestell-ID. - Entferne danach den Testcode.
Was Server-Side-Tracking auf Shopify nicht löst
- Abgelehnte Einwilligung. Bestellungen von Besuchern, die Marketing-Cookies abgelehnt haben, werden gesendet, aber ohne Click-ID, sodass die Werbeplattformen sie schlechter zuordnen.
- Die Cookie-Limits von Safari. Ein Käufer, der nach mehr als 7 Tagen zurückkehrt, kann wie ein neuer Besucher aussehen. Eine First-Party-Tracking-Subdomain hält die Erfassung auf deiner Domain, aber Safari kann diese Cookies trotzdem auf 7 Tage begrenzen.
- Unterschiede bei der Attribution. Jede Werbeplattform schreibt Verkäufe weiterhin mit ihren eigenen Fenstern und Modellen gut. Um Kanäle nach einheitlichen Regeln zu vergleichen, nutze deine eigene Attribution.
- Andere Apps am selben Pixel. Event-IDs führen nur Events zusammen, die sie teilen.
Was es behebt, ist der Kauf, der stattgefunden hat, aber die Werbeplattform nie erreicht hat, weil das Browser-Event verloren ging. Was ROASaurus an jede Plattform sendet, steht unter Server-Side-Tracking und auf der Shopify-Integration.
Quellen
- Shopify: Customer Privacy API
- Shopify: Authenticate app proxies
- Shopify Help Center: Manage your custom pixels
- Shopify Help Center: Facebook data sharing
- Meta: Handling Duplicate Pixel and Conversions API Events
In ROASaurus
- Hilfe: ROASaurus in Shopify einrichten
- Shopify-Integration
- Server-Side-Tracking in ROASaurus
- Hilfe: Einwilligung und Datenschutz