Platformy reklamowe i sklepy internetowe

Tracking konwersji przy płatności za pobraniem i zewnętrzne checkouty

Tracking konwersji przy płatności za pobraniem: dlaczego piksele pomijają zamówienia COD i z zewnętrznych checkoutów, kiedy wysłać zakup i jak obsłużyć odrzucone zamówienia.

·Zaktualizowano ·11 min czytania·Autor: zespół ROASaurus

Najważniejsze wnioski
  • Piksele w przeglądarce pomijają zamówienia, które kończą się poza zwykłym checkoutem, takie jak formularze płatności za pobraniem, zewnętrzne checkouty, formularze zamówień i lejki sprzedażowe.
  • Zamówienie za pobraniem pozostaje nieopłacone, dopóki kurier nie odbierze gotówki, więc konfiguracja wysyłająca zakupy w momencie płatności raportuje je z opóźnieniem albo wcale.
  • Meta odrzuca zdarzenia z czasem zdarzenia starszym niż 7 dni, więc większość sklepów z płatnością za pobraniem powinna wysyłać zakup w chwili utworzenia lub potwierdzenia zamówienia.
  • Odrzucone zamówienia zostają w Ads Manager, więc podziel swój ROAS progu rentowności przez odsetek zamówień, które zostają opłacone.
  • W ROASaurus wybierz External / COD checkout w Store settings, żeby wysyłać zakupy ze Shopify w chwili utworzenia zamówienia.

Tracking konwersji przy płatności za pobraniem oznacza wysyłanie każdego zakupu do platform reklamowych z samego zamówienia, na serwerze, zamiast polegać na pikselu w przeglądarce na stronie z podziękowaniem. Zamówienia z aplikacji do płatności za pobraniem, zewnętrznych checkoutów, formularzy zamówień i lejków sprzedażowych często kończą się poza zwykłym checkoutem, więc piksel je pomija albo raportuje w złym momencie.

Ten poradnik wyjaśnia, dlaczego te zamówienia giną i dlaczego status płatności ma znaczenie. Porównuje trzy momenty wysłania zakupu: gdy zamówienie jest utworzone, gdy jest potwierdzone i gdy jest opłacone. Opisuje też odrzucone zamówienia i zwroty oraz to, jak ROASaurus obsługuje zewnętrzne checkouty.

Dlaczego piksele pomijają zamówienia z płatnością za pobraniem?

Piksel w przeglądarce raportuje zakup, gdy kupujący trafia na stronę, która go uruchamia. Zwykle jest to strona z podziękowaniem w twoim checkoucie. Każda ścieżka zamówienia, która pomija tę stronę albo uruchamia ją na innej domenie, traci zdarzenie zakupu albo kliknięcie w reklamę, które do niego należy.

Ścieżka zamówieniaGdzie zamówienie jest finalizowaneCo idzie nie tak z pikselem w przeglądarce
Aplikacja z formularzem płatności za pobraniemFormularz na stronie produktu; aplikacja tworzy zamówienieCheckout sklepu nigdy się nie uruchamia, więc jego zdarzenie zakupu nigdy nie jest wysyłane
Zewnętrzny checkoutCheckout prowadzony przez inną aplikację, często na innej domenieTwój piksel może się tam nie załadować, a cookie z kliknięciem w reklamę zostają na domenie twojego sklepu
Formularz zamówienia lub zamówienie ręczneFormularz, czat lub rozmowa telefoniczna; zamówienie wprowadza personelNie ma sesji w przeglądarce, którą mógłby zobaczyć piksel
Lejek z własnym checkoutemKreator stron docelowych na własnej domenieKliknięcie w reklamę jest na jednej domenie, a zakup na innej
Każda ścieżka tworzy prawdziwe zamówienie, ale żadna nie uruchamia zwykłej strony z podziękowaniem z dołączonym kliknięciem w reklamę.

Samo zamówienie nigdy nie ginie. Trafia do twojego sklepu internetowego albo narzędzia lejka z numerem zamówienia, kwotą, adresem e-mail i często numerem telefonu. Dlatego niezawodnym rozwiązaniem jest wysyłanie zakupu z danych zamówienia, server-side, i przenoszenie kliknięcia w reklamę do zamówienia. Ogólną metodę wyjaśnia artykuł server-side tracking w Shopify. Ten wpis opisuje zamówienia, które wymagają dodatkowej uwagi.

Niektóre aplikacje do płatności za pobraniem wysyłają też własne zdarzenia piksela. Jeśli używają tego samego piksela co twój server-side tracking, ale innego event id, platforma liczy zamówienie dwa razy. Wyłącz te zdarzenia z aplikacji albo wykonaj kroki, żeby zapobiec podwójnemu liczeniu.

Dlaczego status płatności ma znaczenie

Płatność kartą jest pobierana w checkoucie, więc zamówienie jest opłacone w chwili, gdy powstaje. Zamówienie za pobraniem jest inne. Shopify traktuje płatność za pobraniem jako ręczną metodę płatności, a takie zamówienia mają status Payment pending, dopóki nie oznaczysz ich jako opłaconych. W praktyce dzieje się to po odebraniu gotówki przez kuriera, co może zająć kilka dni. Niektóre zamówienia nie są opłacone nigdy, bo kupujący odmawia przyjęcia paczki albo nie ma go w domu.

Wiele konfiguracji trackingu wysyła zakup, gdy zamówienie zostaje opłacone, bo dla zamówień kartą to najbezpieczniejszy moment. Przy zamówieniu za pobraniem ta sama reguła oznacza, że zakup dociera z kilkudniowym opóźnieniem albo wcale. Poniższy log pokazuje typowy przypadek w sklepie, który wysyła zakupy w momencie płatności.

14 Oct 10:02 orders/create #4821 $50.00Zamówienie złożone z płatnością za pobraniem, płatność oczekuje
14 Oct 10:02 PurchaseNie wysłano: ten sklep wysyła zakupy po opłaceniu
16 Oct 09:40 #4821 shippedPaczka przekazana kurierowi
22 Oct 15:12 orders/paid #4821Oznaczone jako opłacone po wypłacie od kuriera
22 Oct 15:12 Purchase event_time=14 OctOdrzucono: czas zdarzenia jest starszy niż 7 dni
Przykład: zakup, który czeka na płatność. Między zamówieniem a statusem opłacone mija osiem dni, a Meta nie akceptuje czasu zdarzenia starszego niż 7 dni.

WooCommerce działa odwrotnie. Ustawia zamówienia za pobraniem na Processing, dopóki płatność nie zostanie odebrana, z wyjątkiem zamówień z produktem do pobrania, które trafiają na On hold. Konfiguracja wysyłająca zamówienia w statusie Processing wysyła je więc od razu po złożeniu. Sprawdź, jaki status twoja platforma nadaje tym zamówieniom, zanim zdecydujesz cokolwiek innego.

Utworzone, potwierdzone czy opłacone: kiedy wysłać zakup?

Do wyboru są trzy momenty. Każdy zamienia szybkość na dokładność.

Wyślij zakup, gdy zamówienie jestTypowe opóźnienie po zamówieniuObejmuje zamówienia, które nigdy nie zostają opłaconeGłówne ryzyko
UtworzoneSekundyTak: odmowy i fałszywe zamówieniaAds Manager pokazuje więcej przychodu, niż faktycznie odbierasz
Potwierdzone przez twój zespół, telefonicznie lub wiadomościąOd kilku godzin do dobyTylko odmowyWymaga kroku potwierdzenia, który może wywołać zdarzenie
Opłacone lub dostarczoneOd kilku dni do tygodniNiePóźno albo wcale: kliknięcie w reklamę wypada poza oknem atrybucji albo zdarzenie zostaje odrzucone
Wysyłanie przy utworzeniu jest szybkie, ale liczy zamówienia, które nigdy nie zostaną opłacone. Wysyłanie przy płatności jest dokładne, ale spóźnione.

Dlaczego spóźnione zdarzenia zakupu to problem

Platformy reklamowe przypisują zakup do reklamy tylko wtedy, gdy nastąpi w oknie atrybucji po kliknięciu. Przy ustawieniu atrybucji 7 dni od kliknięcia w Meta zakup liczy się dla reklamy do 7 dni po kliknięciu. Conversions API Meta odrzuca też zdarzenia, których event_time jest starszy niż 7 dni, i odrzuca całe żądanie, gdy jedno zdarzenie jest zbyt stare. Zakup wysyłany przy płatności ma więc dwie złe opcje:

  • Wysłać go z czasem zamówienia. Jeśli płatność przyszła ponad 7 dni później, Meta go odrzuci.
  • Wysłać go z czasem płatności. Meta go przyjmie, ale kliknięcie w reklamę może mieć już ponad 7 dni, więc zakup nie zostanie przypisany do reklamy.

Szybkość ma też znaczenie dla optymalizacji. Kampanie optymalizowane pod zakupy uczą się na zakupach, które wysyłasz. Sygnał spóźniony o tydzień mówi algorytmowi o odbiorcach z zeszłego tygodnia.

Przykładowy sklep: odsetek zamówień za pobraniem oznaczonych jako opłacone
100%0%
02468101214
Dni po zamówieniu, liczby poglądowe. Około połowy zamówień jest opłaconych do 4. dnia. Po 7 dniach 28% nadal jest nieopłaconych, w tym 18%, które nie zostaną opłacone nigdy.

Który moment wybrać

W większości sklepów z płatnością za pobraniem lepszym domyślnym wyborem jest wysyłanie przy utworzeniu zamówienia. Sygnał jest natychmiastowy, kliknięcie nadal mieści się w oknie i nic nie jest odrzucane. Koszt jest taki, że odrzucone zamówienia liczą się jako zakupy w Ads Manager. Korygujesz to w swoich celach, jak pokazuje następna sekcja.

Jeśli twój zespół potwierdza każde zamówienie telefonicznie lub wiadomością przed wysyłką, potwierdzenie to dobry kompromis. Usuwa fałszywe zamówienia i zwykle następuje w ciągu doby. Użyj go, gdy twój własny system może wysłać zakup w tym momencie, na przykład przez API. Fałszywe zamówienia znaczą więcej, niż się wydaje: jeśli platforma reklamowa uczy się na nich, szuka kolejnych osób, które składają zamówienia i ich nie płacą.

Jak obsłużyć odrzucone zamówienia, anulowania i zwroty

Gdy zakup zostanie wysłany, zostaje w Ads Manager. Paczka odrzucona pod drzwiami go nie usuwa. ROASaurus nie wysyła też zwrotów ani anulowań do Meta, TikTok i większości innych platform reklamowych, więc raportowany przez nie przychód obejmuje zamówienia, za które nigdy nie otrzymano pieniędzy. Tylko wartości w Google Ads i Microsoft Advertising można skorygować po zwrocie, gdy korekty wartości są włączone. Rozwiązaniem jest zmierzenie odsetka odmów i skorygowanie liczb, z którymi porównujesz.

Oto przykład obliczeń dla jednego miesiąca. Dla prostoty ceny są bez VAT.

PozycjaKwota
Zamówienia wysłane do Meta przy utworzeniu200 zamówień × $50 = $10,000
Odrzucone pod drzwiami (18%)36 zamówień, $1,800
Dostarczone i opłacone164 zamówienia, $8,200
Koszt produktu dostarczonych zamówień (30%)−$2,460
Wysyłka wszystkich 200 paczek po $6−$1,200
Wysyłka zwrotna 36 odrzuconych paczek po $6−$216
Opłata za pobranie gotówki, $1.50 za opłacone zamówienie−$246
Obsługa, $1 za zamówienie−$200
Zysk brutto$3,878
Odrzucone paczki nie przynoszą przychodu, ale nadal kosztują wysyłkę w obie strony. Odrzucone produkty wracają na stan magazynowy, więc ich koszt produktu nie przepada.

Przy $3,000 wydatków na reklamy ten sam miesiąc wygląda bardzo różnie w zależności od tego, którego przychodu użyjesz:

3.33ROAS w Ads Manager: $10,000 ÷ $3,000
2.73ROAS na dostarczonych zamówieniach: $8,200 ÷ $3,000
1.29POAS: $3,878 zysku brutto ÷ $3,000

Wskaźnik marży brutto na dostarczonym przychodzie to $3,878 ÷ $8,200 = 47.3%, więc ROAS progu rentowności wynosi 1 ÷ 0.473 = 2.11. Ten próg dotyczy dostarczonego przychodu. Ads Manager liczy też odrzucone zamówienia, więc musisz go przeliczyć, zanim porównasz. Artykuł ROAS progu rentowności wyjaśnia podstawowy wzór.

Próg rentowności w Ads Manager=ROAS progu rentowności ÷ wskaźnik opłacenia
ROAS progu rentowności
1 ÷ wskaźnik marży brutto, liczony tylko na opłaconych zamówieniach.
Wskaźnik opłacenia
Odsetek zamówień, które zostają opłacone, na przykład 82%, gdy 18% jest odrzucanych.

2.114 ÷ 0.82 = 2.58. Kampania, która w Ads Manager pokazuje mniej niż 2.58, przynosi stratę, choć wygląda na znacznie powyżej 2.11.

Wynik możesz sprawdzić bezpośrednio. Reklamy wychodzą na zero, gdy wydatki na reklamy równają się zyskowi brutto $3,878, a $10,000 raportowanego przychodu ÷ $3,878 = 2.58.

Wskaźniki odmów często różnią się w zależności od regionu, produktu i kampanii. Gdy masz dość zamówień, licz je dla każdej kampanii i użyj kalkulatora POAS, żeby sprawdzić wynik na zysku brutto.

Zwroty i anulowania w twoich własnych liczbach

W Shopify anulowania i zwroty trafiają do ROASaurus przez webhook, więc analityka zysku odejmuje zwroty od przychodu. Sam wybierasz, czy liczyć anulowane zamówienia, które nigdy nie zostały zrealizowane, i domyślnie są pomijane. Anulowane zamówienie, które zostało już wysłane, zostaje w danych, bo jego wysyłka nadal kosztowała cię pieniądze. Dla niedawnych zamówień, które jeszcze mogą wrócić, ustawienie Predicted returns wstrzymuje oczekiwaną część sprzedaży, dopóki nie pojawią się prawdziwe zwroty.

Jak ROASaurus obsługuje płatność za pobraniem i zewnętrzne checkouty

Shopify

Każdy sklep Shopify ma Checkout type w Store settings, z dwiema opcjami:

  • Shopify checkout: zakup jest wysyłany, gdy Shopify zgłasza zamówienie jako opłacone, przez webhook orders/paid.
  • External / COD checkout: zakup jest wysyłany, gdy zamówienie zostaje utworzone, przez webhook orders/create. Użyj go dla płatności za pobraniem i dla zewnętrznych checkoutów, takich jak CheckoutChamp czy Checkify, które same tworzą zamówienie w Shopify.

Ustawienie dotyczy każdego zamówienia w sklepie. Zamówienia kartą, opłacane w checkoucie, są tworzone i opłacane niemal w tej samej chwili, więc wybór zmienia głównie moment wysłania nieopłaconych zamówień. Każde zamówienie jest wysyłane raz. Gdy później przychodzi aktualizacja o opłaceniu zamówienia za pobraniem, drugi zakup nie jest wysyłany.

Zakup korzysta z własnych danych zamówienia: kwoty, waluty, produktów oraz e-maila, telefonu i adresu kupującego, zahashowanych, zanim opuszczą sklep. ROASaurus dopasowuje zamówienie do kliknięcia w reklamę przez visitor id, który jego skrypt zapisuje w koszyku. Gdy zamówienie go nie niesie, ROASaurus próbuje po kolei: tokenów koszyka i checkoutu, zdarzenia zakupu z checkoutu, adresu e-mail podanego wcześniej przez odwiedzającego na twojej stronie oraz tego samego adresu IP i przeglądarki tuż przed zamówieniem, gdy pasuje dokładnie jeden odwiedzający. Pełną konfigurację opisuje strona integracji z Shopify.

WooCommerce i inne sklepy internetowe

Wtyczka WooCommerce wysyła zamówienie, gdy osiągnie status Processing lub Completed. Zamówienia za pobraniem trafiają do Processing w chwili złożenia, więc są wysyłane od razu. Zamówienia z przelewem bankowym są wysyłane, gdy przechodzą do Processing. Pozostałe konektory sklepów wysyłają zamówienie w tych momentach:

  • Wix, Squarespace, Ecwid, Lightspeed, CCV Shop i Shopware: gdy status płatności zamówienia to opłacone.
  • BigCommerce: gdy zamówienie osiąga status taki jak Awaiting Fulfillment, Awaiting Shipment, Shipped lub Completed.
  • Magento: gdy stan zamówienia to Processing lub Complete.
  • PrestaShop: gdy zamówienie zostaje oznaczone jako ważne.
  • Własny webhook i API zamówień: gdy twój własny system wyśle zamówienie.

Sprawdź, jak twoja platforma oznacza zamówienia za pobraniem. Jeśli pozostają nieopłacone, dopóki kurier nie wypłaci gotówki, ich zakupy docierają z opóźnieniem.

Lejki i własny checkout

  1. Dodaj skrypt do stron lejka

    Użyj tego samego klucza sklepu co w twoim sklepie internetowym, żeby odwiedzający zachował jeden visitor id na obu domenach.

  2. Wypisz swoje domeny

    W Store settings dodaj domeny lejka i sklepu w sekcji Linked domains. Linki między tymi domenami przenoszą wtedy visitor id i click id.

  3. Wysyłaj zamówienia przez API zamówień

    Jeśli lejek sam przyjmuje zamówienie, wysyłaj każde zamówienie na /api/v1/orders, podając cookie _tl jako visitor_id. Moment wybiera twój system: przy utworzeniu, potwierdzeniu lub płatności.

  4. Sprawdź Event log

    Gdy pojawią się pierwsze prawdziwe zamówienia, otwórz Event log i sprawdź, czy każde zostało wysłane do każdej podłączonej platformy.

Zamówienie z checkoutu lejka, wysłane do API zamówień
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 }]
}

API zamówień zachowuje pierwszą kopię każdego order id. Jeśli twój system wywołuje je przy utworzeniu i ponownie przy płatności, tylko pierwsze wywołanie wysyła zakup. Więcej szczegółów w artykule lejki i wiele domen.

Typowe błędy, których warto unikać

  • Czekanie na status opłacone w sklepie z płatnością za pobraniem. Zakupy docierają z tygodniowym opóźnieniem albo wcale, a spóźnione zdarzenia są odrzucane lub wypadają poza okno atrybucji.
  • Porównywanie ROAS z Ads Manager z progiem rentowności liczonym dla opłaconych zamówień. Najpierw podziel próg rentowności przez swój wskaźnik opłacenia.
  • Dwa źródła dla jednego zakupu. Własny piksel aplikacji z formularzem i twoje zdarzenia server-side liczą to samo zamówienie dwa razy. Zobacz zduplikowane zdarzenia zakupu.
  • Gubienie kliknięcia między domenami. Lejek na innej domenie potrzebuje skryptu i połączonych domen, bo inaczej jego zamówienia docierają bez kliknięcia w reklamę.
  • Pomijanie zamówień ręcznych. Zamówienia telefoniczne i z czatu nie mają sesji w przeglądarce, ale nadal mają adres e-mail lub numer telefonu. Wysłane z danych zamówienia dają platformie reklamowej coś do dopasowania.

Źródła

  1. Meta for Developers: Server Event Parameters
  2. Shopify: WebhookSubscriptionTopic (GraphQL Admin API)
  3. Shopify Help Center: Manual payment methods
  4. Shopify Help Center: Understanding your order statuses
  5. WooCommerce: Cash on Delivery documentation

W ROASaurus

Czytaj dalej

Platformy reklamowe i sklepy internetoweTracking konwersji w CCV Shop: poradnik konfiguracjiTracking konwersji w CCV Shop: wysyłaj opłacone zamówienia do Meta i TikTok przez podpisany webhook, powiąż je z kliknięciami w reklamy, skonfiguruj, przetestuj i obsłuż opóźnione płatności.Platformy reklamowe i sklepy internetoweGoogle Ads enhanced conversions w ShopifyEnhanced conversions dodają zahashowane dane klientów do zakupów w Google Ads w Shopify. Jak działają, czym różnią się od importu offline i jak je skonfigurować.Platformy reklamowe i sklepy internetoweTracking konwersji w Lightspeed dla sklepów eComTracking konwersji w Lightspeed eCom (C-Series): wysyłaj opłacone zamówienia do Meta i TikTok z serwera, powiąż je z kliknięciami w reklamy, skonfiguruj go i przetestuj.
FAQ

Pytania i odpowiedzi

Czy Meta może śledzić zamówienia za pobraniem?

Tak, jeśli zakup jest wysyłany z danych zamówienia na serwerze. Piksel w przeglądarce często pomija takie zamówienia, bo wiele aplikacji do płatności za pobraniem i zewnętrznych checkoutów omija zwykłą stronę z podziękowaniem.

Czy wysłać zakup przy utworzeniu zamówienia, czy przy jego opłaceniu?

W większości sklepów z płatnością za pobraniem wysyłaj go przy utworzeniu lub potwierdzeniu zamówienia. Płatność może zająć ponad tydzień, a Meta odrzuca zdarzenia z czasem zdarzenia starszym niż 7 dni. Odrzucone zamówienia uwzględniaj w swoich celach ROAS.

Czy odrzucone zamówienia za pobraniem liczą się jako zakupy w Ads Manager?

Tak. Wysłany zakup zostaje w Ads Manager, gdy paczka zostanie odrzucona. Podziel swój ROAS progu rentowności przez odsetek zamówień, które zostają opłacone, żeby dostać próg rentowności w wartościach z Ads Manager.

Jaki typ checkoutu wybrać w ROASaurus?

W Shopify wybierz External / COD checkout dla płatności za pobraniem i dla zewnętrznych checkoutów, takich jak CheckoutChamp czy Checkify, które tworzą zamówienie w Shopify. Zakupy są wtedy wysyłane przy utworzeniu zamówienia, a nie przy jego opłaceniu.

Jak śledzić zamówienia z lejka z własnym checkoutem?

Dodaj skrypt ROASaurus do stron lejka, wypisz domeny lejka i sklepu w sekcji Linked domains i wysyłaj zamówienia z lejka do API zamówień razem z visitor id.

Każda sprzedaż przypisana do reklamy, która ją przyniosła

Server-side tracking, zysk i wartość życiowa klienta w jednej aplikacji. 14-dniowy darmowy okres próbny, bez karty kredytowej.

Zacznij darmowy okres próbny →