- Browser-Pixel verpassen Bestellungen, die außerhalb des normalen Checkouts abgeschlossen werden, etwa Nachnahme-Formulare, externe Checkouts, Bestellformulare und Funnels.
- Eine Nachnahme-Bestellung bleibt unbezahlt, bis der Zusteller das Geld kassiert, daher meldet ein Setup, das Käufe bei Zahlung sendet, sie spät oder nie.
- Meta lehnt Events mit einem Eventzeitpunkt ab, der mehr als 7 Tage in der Vergangenheit liegt, deshalb sollten die meisten Nachnahme-Shops den Kauf senden, wenn die Bestellung angelegt oder bestätigt wird.
- Verweigerte Bestellungen bleiben im Ads Manager stehen, also teile deinen Break-even-ROAS durch den Anteil der Bestellungen, die bezahlt werden.
- Wähle in ROASaurus unter Store settings die Option External / COD checkout, um Käufe aus Shopify zu senden, sobald die Bestellung angelegt wird.
Conversion-Tracking bei Nachnahme bedeutet, jeden Kauf aus der Bestellung selbst, auf dem Server, an deine Werbeplattformen zu senden, statt sich auf ein Browser-Pixel auf einer Dankeseite zu verlassen. Bestellungen aus Nachnahme-Apps, externen Checkouts, Bestellformularen und Funnels werden oft außerhalb des normalen Checkouts abgeschlossen, deshalb verpasst das Pixel sie oder meldet sie zum falschen Zeitpunkt.
Dieser Leitfaden erklärt, warum diese Bestellungen verloren gehen und warum der Zahlungsstatus wichtig ist. Er vergleicht drei Zeitpunkte, zu denen du den Kauf senden kannst: wenn die Bestellung angelegt, wenn sie bestätigt und wenn sie bezahlt wird. Außerdem behandelt er verweigerte Bestellungen und Erstattungen und zeigt, wie ROASaurus externe Checkouts behandelt.
Warum verpassen Pixel Nachnahme-Bestellungen?
Ein Browser-Pixel meldet einen Kauf, wenn der Käufer eine Seite erreicht, die es ausführt. Das ist meist die Dankeseite deines Checkouts. Jeder Bestellweg, der diese Seite überspringt oder auf einer anderen Domain ausführt, verliert das Kauf-Event oder den Anzeigenklick, der dazugehört.
| Bestellweg | Wo die Bestellung abgeschlossen wird | Was beim Browser-Pixel schiefgeht |
|---|---|---|
| Nachnahme-Formular-App | Ein Formular auf der Produktseite; die App legt die Bestellung an | Der Shop-Checkout läuft nie, daher wird sein Kauf-Event nie ausgelöst |
| Externer Checkout | Ein Checkout, der von einer anderen App betrieben wird, oft auf einer anderen Domain | Dein Pixel lädt dort womöglich nicht, und die Cookies des Anzeigenklicks bleiben auf deiner Shop-Domain |
| Bestellformular oder manuelle Bestellung | Ein Formular, ein Chat oder ein Telefonat; Mitarbeitende erfassen die Bestellung | Es gibt keine Browser-Sitzung, die ein Pixel sehen könnte |
| Funnel mit eigenem Checkout | Ein Landingpage-Builder auf einer eigenen Domain | Der Anzeigenklick liegt auf einer Domain und der Kauf auf einer anderen |
Die Bestellung selbst geht nie verloren. Sie landet in deinem Webshop oder deinem Funnel-Tool, mit Bestell-ID, Betrag, E-Mail-Adresse und oft einer Telefonnummer. Deshalb besteht die verlässliche Lösung darin, den Kauf aus den Bestelldaten serverseitig zu senden und den Anzeigenklick zur Bestellung mitzunehmen. Server-Side-Tracking in Shopify erklärt die allgemeine Methode. Dieser Beitrag behandelt die Bestellungen, die besondere Sorgfalt brauchen.
Manche Nachnahme-Apps lösen auch eigene Pixel-Events aus. Nutzen sie dasselbe Pixel wie dein Server-Side-Tracking, aber eine andere Event-ID, zählt die Plattform die Bestellung doppelt. Schalte diese App-Events ab oder folge den Schritten, um Doppelzählungen zu vermeiden.
Warum der Zahlungsstatus wichtig ist
Eine Kartenzahlung wird im Checkout eingezogen, die Bestellung ist also bezahlt, sobald sie existiert. Eine Nachnahme-Bestellung ist anders. Shopify führt Nachnahme als manuelle Zahlungsmethode, und diese Bestellungen bleiben auf Payment pending, bis du sie als bezahlt markierst. In der Praxis geschieht das, nachdem der Zusteller das Geld kassiert hat, was Tage dauern kann. Manche Bestellungen werden gar nie bezahlt, weil der Käufer das Paket verweigert oder nicht zu Hause ist.
Viele Tracking-Setups senden den Kauf, wenn die Bestellung bezahlt ist, weil das bei Kartenbestellungen der sicherste Zeitpunkt ist. Bei einer Nachnahme-Bestellung bedeutet dieselbe Regel, dass der Kauf Tage zu spät oder nie ankommt. Das Log unten zeigt einen typischen Fall in einem Shop, der Käufe bei Zahlung sendet.
14 Oct 10:02 orders/create #4821 $50.00Bestellung mit Nachnahme aufgegeben, Zahlung ausstehend14 Oct 10:02 PurchaseNicht gesendet: Dieser Shop sendet Käufe bei Zahlung16 Oct 09:40 #4821 shippedPaket an den Zusteller übergeben22 Oct 15:12 orders/paid #4821Als bezahlt markiert, nachdem der Zusteller das Geld ausgezahlt hat22 Oct 15:12 Purchase event_time=14 OctAbgelehnt: Der Eventzeitpunkt liegt mehr als 7 Tage zurückWooCommerce funktioniert andersherum. Es setzt Nachnahme-Bestellungen auf Processing, bis die Zahlung eingezogen ist, außer Bestellungen mit einem herunterladbaren Produkt, die auf On hold gehen. Ein Setup, das Bestellungen im Status Processing sendet, sendet sie daher, sobald sie aufgegeben werden. Prüfe, welchen Status deine Plattform diesen Bestellungen gibt, bevor du etwas anderes entscheidest.
Angelegt, bestätigt oder bezahlt: Wann solltest du den Kauf senden?
Du hast drei Zeitpunkte zur Auswahl. Jeder tauscht Geschwindigkeit gegen Genauigkeit.
| Kauf senden bei Bestellstatus | Typische Verzögerung nach der Bestellung | Enthält Bestellungen, die nie bezahlt werden | Hauptrisiko |
|---|---|---|---|
| Angelegt | Sekunden | Ja: Verweigerungen und gefälschte Bestellungen | Der Ads Manager zeigt mehr Umsatz, als du einnimmst |
| Von deinem Team per Telefon oder Nachricht bestätigt | Stunden bis zu einem Tag | Nur Verweigerungen | Braucht einen Bestätigungsschritt, der das Event auslösen kann |
| Bezahlt oder geliefert | Tage bis Wochen | Nein | Zu spät oder verloren: Der Anzeigenklick liegt außerhalb des Attributionsfensters, oder das Event wird abgelehnt |
Warum späte Kauf-Events ein Problem sind
Werbeplattformen schreiben einen Kauf einer Anzeige nur zu, wenn er innerhalb des Attributionsfensters nach dem Klick stattfindet. Bei einer Klick-Attribution von 7 Tagen bei Meta zählt ein Kauf bis zu 7 Tage nach dem Klick für eine Anzeige. Die Conversions API von Meta lehnt außerdem Events ab, deren event_time mehr als 7 Tage in der Vergangenheit liegt, und weist die ganze Anfrage zurück, sobald ein Event zu alt ist. Ein Kauf, der bei Zahlung gesendet wird, hat daher zwei schlechte Optionen:
- Sende ihn mit dem Zeitpunkt der Bestellung. Kam die Zahlung mehr als 7 Tage später, lehnt Meta ihn ab.
- Sende ihn mit dem Zeitpunkt der Zahlung. Meta akzeptiert ihn, aber der Anzeigenklick kann dann älter als 7 Tage sein, sodass der Kauf der Anzeige nicht zugeschrieben wird.
Auch die Geschwindigkeit zählt für die Optimierung. Kampagnen, die auf Käufe optimieren, lernen aus den Käufen, die du sendest. Ein Signal, das eine Woche zu spät kommt, erzählt dem Algorithmus etwas über die Zielgruppe der letzten Woche.
Welchen Zeitpunkt du wählst
Für die meisten Nachnahme-Shops ist das Senden bei der Anlage der bessere Standard. Das Signal kommt sofort, der Klick liegt noch im Fenster, und nichts wird abgelehnt. Der Preis ist, dass verweigerte Bestellungen im Ads Manager als Käufe zählen. Das gleichst du in deinen Zielwerten aus, wie der nächste Abschnitt zeigt.
Bestätigt dein Team jede Bestellung vor dem Versand per Telefon oder Nachricht, ist die Bestätigung ein guter Mittelweg. Sie entfernt gefälschte Bestellungen und passiert meist innerhalb eines Tages. Nutze sie, wenn dein eigenes System den Kauf in diesem Moment senden kann, zum Beispiel über eine API. Gefälschte Bestellungen sind wichtiger, als sie scheinen: Lernt die Werbeplattform aus ihnen, sucht sie mehr Menschen, die Bestellungen aufgeben und nicht bezahlen.
So gehst du mit verweigerten Bestellungen, Stornierungen und Erstattungen um
Ein einmal gesendeter Kauf bleibt im Ads Manager. Ein an der Haustür verweigertes Paket entfernt ihn nicht. ROASaurus sendet auch keine Erstattungen oder Stornierungen an Meta, TikTok und die meisten anderen Werbeplattformen, deshalb enthält der dort gemeldete Umsatz Bestellungen, die du nie kassiert hast. Nur Werte in Google Ads und Microsoft Advertising lassen sich nach einer Erstattung korrigieren, wenn Wertkorrekturen aktiviert sind. Die Lösung ist, deine Verweigerungsquote zu messen und die Zahlen anzupassen, mit denen du vergleichst.
Hier ist ein durchgerechnetes Beispiel für einen Monat. Der Einfachheit halber verstehen sich die Preise ohne MwSt.
| Zeile | Betrag |
|---|---|
| Bei Anlage an Meta gesendete Bestellungen | 200 Bestellungen × $50 = $10,000 |
| An der Haustür verweigert (18%) | 36 Bestellungen, $1,800 |
| Geliefert und bezahlt | 164 Bestellungen, $8,200 |
| Produktkosten der gelieferten Bestellungen (30%) | −$2,460 |
| Versand für alle 200 Pakete zu je $6 | −$1,200 |
| Rückversand für 36 verweigerte Pakete zu je $6 | −$216 |
| Gebühr für den Bargeldeinzug, $1.50 pro bezahlter Bestellung | −$246 |
| Bearbeitung, $1 pro Bestellung | −$200 |
| Bruttogewinn | $3,878 |
Bei $3,000 Werbeausgaben sieht derselbe Monat je nach verwendetem Umsatz ganz anders aus:
Die Bruttomargenquote auf den gelieferten Umsatz beträgt $3,878 ÷ $8,200 = 47.3%, der Break-even-ROAS also 1 ÷ 0.473 = 2.11. Dieser Break-even gilt für den gelieferten Umsatz. Der Ads Manager zählt auch die verweigerten Bestellungen mit, deshalb musst du ihn umrechnen, bevor du vergleichst. Break-even-ROAS erklärt die Grundformel.
- Break-even-ROAS
- 1 ÷ Bruttomargenquote, nur auf bezahlte Bestellungen berechnet.
- Zahlungsquote
- Der Anteil der Bestellungen, die bezahlt werden, zum Beispiel 82%, wenn 18% verweigert werden.
2.114 ÷ 0.82 = 2.58. Eine Kampagne, die im Ads Manager weniger als 2.58 zeigt, verliert Geld, auch wenn sie weit über 2.11 zu liegen scheint.
Du kannst das Ergebnis direkt prüfen. Die Anzeigen erreichen den Break-even, wenn die Werbeausgaben dem Bruttogewinn von $3,878 entsprechen, und $10,000 gemeldeter Umsatz ÷ $3,878 = 2.58.
Verweigerungsquoten unterscheiden sich oft nach Region, Produkt und Kampagne. Berechne sie pro Kampagne, wenn du genug Bestellungen hast, und prüfe das Ergebnis mit dem POAS-Rechner auf Basis des Bruttogewinns.
Erstattungen und Stornierungen in deinen eigenen Zahlen
In Shopify erreichen Stornierungen und Erstattungen ROASaurus per Webhook, sodass die Gewinnanalyse Erstattungen mit dem Umsatz verrechnet. Du legst fest, ob stornierte Bestellungen zählen, die nie erfüllt wurden; standardmäßig bleiben sie außen vor. Eine stornierte Bestellung, die bereits versandt wurde, bleibt drin, weil ihr Versand dich trotzdem Geld gekostet hat. Für aktuelle Bestellungen, die noch zurückkommen können, hält die Einstellung Predicted returns einen erwarteten Anteil der Verkäufe zurück, bis echte Erstattungen eintreffen.
Wie ROASaurus Nachnahme und externe Checkouts behandelt
Shopify
Jeder Shopify-Shop hat einen Checkout type in den Store settings mit zwei Optionen:
- Shopify checkout: Der Kauf wird gesendet, wenn Shopify die Bestellung über den Webhook
orders/paidals bezahlt meldet. - External / COD checkout: Der Kauf wird beim Anlegen der Bestellung über den Webhook
orders/creategesendet. Nutze das für Nachnahme und für externe Checkouts wie CheckoutChamp oder Checkify, die die Shopify-Bestellung selbst anlegen.
Die Einstellung gilt für jede Bestellung im Shop. Kartenbestellungen, die im Checkout bezahlt werden, werden fast im selben Moment angelegt und bezahlt, deshalb ändert die Wahl vor allem, wann unbezahlte Bestellungen gesendet werden. Jede Bestellung wird einmal gesendet. Trifft später das Update „bezahlt“ für eine Nachnahme-Bestellung ein, wird kein zweiter Kauf gesendet.
Der Kauf nutzt die eigenen Daten der Bestellung: Betrag, Währung, Produkte sowie E-Mail-Adresse, Telefonnummer und Adresse des Käufers, die gehasht werden, bevor sie das System verlassen. ROASaurus ordnet die Bestellung dem Anzeigenklick über die Besucher-ID zu, die das Skript im Warenkorb speichert. Trägt eine Bestellung sie nicht, versucht ROASaurus der Reihe nach Folgendes: die Warenkorb- und Checkout-Tokens, das Kauf-Event aus dem Checkout, eine E-Mail-Adresse, die der Besucher früher auf deiner Website angegeben hat, und dieselbe IP-Adresse und denselben Browser kurz vor der Bestellung, wenn genau ein Besucher passt. Die vollständige Einrichtung steht auf der Seite Shopify-Integration.
WooCommerce und andere Webshops
Das WooCommerce-Plugin sendet eine Bestellung, sobald sie den Status Processing oder Completed erreicht. Nachnahme-Bestellungen erreichen Processing, wenn sie aufgegeben werden, und werden deshalb sofort gesendet. Bestellungen per Überweisung werden gesendet, sobald sie auf Processing wechseln. Die anderen Webshop-Konnektoren senden eine Bestellung zu diesen Zeitpunkten:
- Wix, Squarespace, Ecwid, Lightspeed, CCV Shop und Shopware: wenn der Zahlungsstatus der Bestellung „bezahlt“ lautet.
- BigCommerce: wenn die Bestellung einen Status wie Awaiting Fulfillment, Awaiting Shipment, Shipped oder Completed erreicht.
- Magento: wenn der Bestellstatus Processing oder Complete lautet.
- PrestaShop: wenn die Bestellung als gültig markiert wird.
- Eigener Webhook und Orders-API: wenn dein eigenes System die Bestellung sendet.
Prüfe, wie deine Plattform Nachnahme-Bestellungen markiert. Bleiben sie unbezahlt, bis der Zusteller auszahlt, kommen ihre Käufe verspätet an.
Funnels und dein eigener Checkout
- Füge das Skript zu den Funnel-Seiten hinzu
Verwende denselben Store-Key wie in deinem Webshop, damit ein Besucher auf beiden Domains dieselbe Besucher-ID behält.
- Trage deine Domains ein
Füge in den Store settings die Funnel- und Shop-Domains unter Linked domains hinzu. Links zwischen diesen Domains tragen dann die Besucher-ID und die Click-IDs mit.
- Sende die Bestellungen über die Orders-API
Nimmt der Funnel die Bestellung selbst entgegen, sende jede Bestellung per POST an
/api/v1/orders, mit dem Cookie_tlalsvisitor_id. Dein System bestimmt den Zeitpunkt: bei der Anlage, bei der Bestätigung oder bei der Zahlung. - Prüfe den Event log
Wenn die ersten echten Bestellungen eintreffen, öffne den Event log und prüfe, ob jede an alle verbundenen Plattformen gesendet wurde.
POST /api/v1/orders
X-Roasaurus-Key: <store key>
Authorization: Bearer <API key>
Content-Type: application/json
{
"order_id": "F-20931",
"created_at": "2026-10-20T14:05:00Z",
"total": 50.00,
"currency": "USD",
"email": "buyer@example.com",
"phone": "+15555550123",
"country": "US",
"visitor_id": "<value of the _tl cookie>",
"click_ids": { "fbc": "<_fbc cookie>", "fbp": "<_fbp cookie>" },
"client_ip": "203.0.113.7",
"user_agent": "Mozilla/5.0 ...",
"items": [{ "variant_id": "SKU1", "quantity": 1, "price": 50.00 }]
}Die Orders-API behält die erste Kopie jeder Bestell-ID. Ruft dein System sie bei der Anlage und erneut bei der Zahlung auf, sendet nur der erste Aufruf einen Kauf. Mehr Details findest du unter Funnels und mehrere Domains.
Häufige Fehler, die du vermeiden solltest
- Auf den Status „bezahlt“ warten, in einem Nachnahme-Shop. Käufe kommen eine Woche zu spät oder gar nicht an, und späte Events werden abgelehnt oder fallen aus dem Attributionsfenster.
- Den ROAS aus dem Ads Manager mit einem Break-even vergleichen, der für bezahlte Bestellungen gemacht ist. Teile den Break-even zuerst durch deine Zahlungsquote.
- Zwei Quellen für einen Kauf. Das eigene Pixel einer Formular-App und deine Server-Events zählen dieselbe Bestellung doppelt. Siehe Doppelte Kauf-Events.
- Den Klick zwischen Domains verlieren. Ein Funnel auf einer anderen Domain braucht das Skript und verknüpfte Domains, sonst kommen seine Bestellungen ohne Anzeigenklick an.
- Manuelle Bestellungen weglassen. Bestellungen per Telefon und Chat haben keine Browser-Sitzung, aber trotzdem eine E-Mail-Adresse oder Telefonnummer. Aus den Bestelldaten gesendet, geben sie der Werbeplattform etwas zum Abgleichen.
Quellen
- Meta for Developers: Server Event Parameters
- Shopify: WebhookSubscriptionTopic (GraphQL Admin API)
- Shopify Help Center: Manual payment methods
- Shopify Help Center: Understanding your order statuses
- WooCommerce: Cash on Delivery documentation
In ROASaurus
- Shopify-Integration
- WooCommerce-Integration
- Hilfe: Funnels und mehrere Domains
- Gewinnanalyse in ROASaurus