Platformy reklamowe i sklepy internetowe

Server-side tracking w WooCommerce: poradnik konfiguracji

Skonfiguruj server-side tracking w WooCommerce: wysyłaj opłacone zamówienia do Meta i TikTok za pomocą wtyczki ROASaurus lub webhooków, dopasuj je do kliknięć w reklamy i przetestuj.

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

Najważniejsze wnioski
  • Server-side tracking w WooCommerce wysyła każde opłacone zamówienie z własnych danych zamówień sklepu do Meta, TikTok i innych platform reklamowych, więc zakup liczy się nawet wtedy, gdy piksel w przeglądarce nigdy się nie uruchomi.
  • ROASaurus uznaje zamówienie WooCommerce za opłacone, gdy ma status processing lub completed, co obejmuje zamówienia za pobraniem i przelewy bankowe po ich potwierdzeniu.
  • Wtyczka ROASaurus zapisuje visitor id i cookie z kliknięcia w reklamę przy każdym zamówieniu podczas checkoutu, więc zamówienie jest dokładnie powiązane ze swoim kliknięciem w reklamę.
  • Bez wtyczki webhooki nadal dostarczają każde opłacone zamówienie, ale nie ma dopasowania przez stronę z podziękowaniem: zamówienia są powiązane tylko przez e-mail podany wcześniej na stronie albo przez unikalny adres IP i przeglądarkę.
  • W WooCommerce skrypt ROASaurus uwzględnia wtyczki zgód korzystające z WP Consent API, takie jak Complianz i CookieYes, a także banery Cookiebot, OneTrust i IAB TCF.

Server-side tracking w WooCommerce wysyła każde opłacone zamówienie z danych zamówień twojego sklepu do Meta, TikTok i innych platform reklamowych, zamiast polegać tylko na pikselu w przeglądarce kupującego. Zakup jest raportowany nawet wtedy, gdy bloker reklam zatrzyma piksel albo kupujący nigdy nie dotrze na stronę z podziękowaniem.

Ten poradnik wyjaśnia, dlaczego sklepy WooCommerce tracą konwersje, jakie dane zamówień daje WooCommerce oraz dwa sposoby połączenia ROASaurus: wtyczkę WordPress lub webhooki. Dalej omawia dopasowanie, zgody, konfigurację i testowanie. Aby poznać ogólną ideę, przeczytaj czym jest server-side tracking.

Dlaczego sklepy WooCommerce tracą konwersje?

Piksel w przeglądarce zgłasza zakup tylko wtedy, gdy skrypt piksela się załaduje, kupujący dotrze na stronę z podziękowaniem, a przeglądarka wyśle zdarzenie. Każdy z tych kroków może zawieść. Samo zamówienie nadal jest w twojej bazie danych, bo WooCommerce zapisuje je na serwerze.

Co się dziejePiksel w przeglądarceDane zamówień w WooCommerce
Kupujący płaci przez przekierowanie (na przykład PayPal lub aplikację banku) i zamyka kartęBrak strony z podziękowaniem, brak zdarzenia zakupuOpłacone zamówienie, status processing
Bloker reklam lub ustawienie prywatności blokuje skrypt pikselaBrak zdarzenia zakupuOpłacone zamówienie
Odwiedzający odrzuca marketingowe cookiePiksel nie może się załadowaćOpłacone zamówienie
Przelew bankowy zostaje potwierdzony trzy dni późniejW tym momencie żadna przeglądarka nie jest otwartaStatus zmienia się z on hold na processing
Wtyczka pamięci podręcznej lub optymalizacji skryptów opóźnia pikselZdarzenie może być spóźnione albo go nie byćOpłacone zamówienie
W każdym przypadku opłacone zamówienie istnieje w WooCommerce. Server-side tracking wysyła to zamówienie, niezależnie od tego, co stało się w przeglądarce.

Brakujące zakupy szkodzą na dwa sposoby. Platforma reklamowa optymalizuje na podstawie mniejszej liczby konwersji, a twoje raporty pokazują niższy zwrot, niż naprawdę osiągasz. Oto drugi efekt w liczbach, dla przykładowego sklepu z ROAS progu rentowności równym 2.2:

Przykładowy sklep, jeden miesiącTylko pikselWszystkie opłacone zamówienia
Wydatki na reklamy Meta$8,000$8,000
Zakupy z kliknięć w Meta260320
Przychód przy $60 za zamówienie$15,600$19,200
ROAS15,600 ÷ 8,000 = 1.9519,200 ÷ 8,000 = 2.40
W porównaniu z progiem rentowności (2.2)Wygląda na stratęRentowna
Liczby poglądowe. Ta sama kampania wygląda na stratną w danych z piksela, a w danych zamówień przynosi pieniądze.

Co daje WooCommerce: zamówienia, webhooki i REST API

Jakie statusy zamówień liczą się jako opłacone?

WooCommerce opisuje processing jako otrzymaną płatność, przy czym zamówienie czeka na realizację. ROASaurus wysyła zamówienia ze statusem processing lub completed i pomija zamówienia pending payment, on hold, failed, cancelled oraz refunded. Dwie metody płatności wymagają uwagi:

  • Płatność za pobraniem. WooCommerce ustawia te zamówienia na processing do czasu odebrania płatności, więc ROASaurus wysyła je w chwili złożenia. Wyjątkiem są zamówienia z produktem do pobrania: trafiają one na on hold. Zobacz tracking zamówień za pobraniem, aby dowiedzieć się, co to oznacza dla zwrotów i odmów odbioru.
  • Przelew bankowy. WooCommerce ustawia te zamówienia na on hold, dopóki weryfikujesz płatność. ROASaurus wysyła je, gdy zmienisz status na processing.

Webhooki

Webhook to wiadomość, którą WooCommerce wysyła do innego systemu, gdy coś się zmieni. Tworzysz go w WooCommerce › Settings › Advanced › Webhooks. Dla tematu zamówienia payload to ten sam obiekt zamówienia, który zwraca REST API. Każda dostawa zawiera nagłówek X-WC-Webhook-Signature: hash HMAC-SHA256 payloadu w base64, utworzony z sekretu, który wybierzesz. ROASaurus sprawdza ten podpis, zanim przyjmie zamówienie.

W praktyce liczą się dwa szczegóły. WooCommerce dostarcza webhooki w tle, domyślnie przez WP-Cron, więc dostawa może się opóźnić, gdy ta kolejka działa z opóźnieniem. WooCommerce wyłącza też webhook po więcej niż pięciu nieudanych dostawach z rzędu.

REST API

REST API pozwala ROASaurus samodzielnie pytać o zamówienia. Z kluczem API tylko do odczytu ROASaurus co 5 minut pyta o zamówienia processing i completed zmienione od ostatniego sprawdzenia, z 30 minutami nakładania się okresów. Zamówienia, które już ma, są ignorowane. Dzięki temu łapie każde zamówienie, które pominął webhook.

Pole zamówieniaCo ROASaurus z nim robi
idStaje się event id order-1042, wspólnym dla zdarzeń z serwera i z przeglądarki
totalWartość zakupu: suma całkowita, z podatkiem i dostawą
E-mail rozliczeniowy, telefon, imię i nazwisko, miasto, stan, kod pocztowy, krajZahashowane SHA-256 i wysyłane jako dane klienta
customer_ip_address, customer_user_agentWysyłane ze zdarzeniem i używane do dopasowania zamówienia do odwiedzającego
line_itemsId produktów (id wariantu, jeśli istnieje), ilości i ceny
date_paid_gmtCzas zdarzenia dla zamówień z webhooka lub REST API (data utworzenia, gdy nie ma daty płatności)
meta_dataZ wtyczką: visitor id oraz cookie Meta i TikTok
Co ROASaurus odczytuje z zamówienia WooCommerce. Webhook i REST API zwracają te same pola.

Wtyczka czy webhooki: dwa sposoby połączenia

Oba połączenia wysyłają każde opłacone zamówienie. Różnią się tym, jak dobrze każde zamówienie jest powiązane z kliknięciem w reklamę, które przyprowadziło kupującego.

CheckoutWtyczka zapisuje w zamówieniu visitor id i cookie z kliknięć
Zamówienie opłaconeStatus processing lub completed
ROASaurusOdbiera zamówienie z wtyczki lub webhooka
Platformy reklamoweMeta, TikTok i inne dostają zdarzenie Purchase z event id order-1042
Ścieżka danych z wtyczką. Bez niej krok checkoutu nie zapisuje nic dodatkowego, a zamówienie dociera wyłącznie przez webhook.
Wtyczka ROASaurusTylko webhooki
Co instalujeszWtyczka WordPress (PHP 7.4 i WooCommerce 6.0 lub nowszy)Nic: webhook w ustawieniach WooCommerce
Jak docierają zamówieniaWtyczka wysyła każde opłacone zamówienie do API zamówień ROASaurusWooCommerce wysyła Order updated; opcjonalne sprawdzanie przez REST API co 5 minut
Skrypt trackingowyŁadowany przez wtyczkę na każdej stronieDodajesz go sam, na przykład wtyczką WPCode lub w swoim motywie
Visitor id i cookie z kliknięć w zamówieniuTak, zapisywane w checkoucie (klasycznym i blokowym)Nie
Zakup z przeglądarki na stronie z podziękowaniemTak, z tym samym event id co zdarzenie z serweraNie
Dopasowanie przez stronę z podziękowaniemTakNie
Oba połączenia wysyłają każde opłacone zamówienie. Tylko wtyczka łączy każde zamówienie z jego odwiedzającym w checkoucie.

Możesz używać obu naraz. Wtyczka zapisuje visitor id w zamówieniu jako metadane zamówienia, a payload webhooka je przenosi. ROASaurus zapisuje każde zamówienie raz, według jego id zamówienia w WooCommerce, więc wtyczka i webhook nigdy nie tworzą dwóch zakupów. Wtyczka deklaruje też obsługę High-Performance Order Storage w WooCommerce.

Jak zamówienie z WooCommerce jest dopasowywane do kliknięcia w reklamę?

Platforma reklamowa może przypisać zakup do reklamy tylko wtedy, gdy potrafi połączyć jedno z drugim. ROASaurus robi to, łącząc zamówienie z odwiedzającym, który kliknął reklamę, a ten odwiedzający niesie click id (takie jak fbclid i ttclid) oraz parametry UTM ze strony docelowej. Próbuje poniższych metod po kolei i zatrzymuje się na pierwszej, która zadziała:

  1. Visitor id zapisane w zamówieniu. Tylko z wtyczką. To dokładne powiązanie.
  2. Zakup z przeglądarki na stronie z podziękowaniem, który niesie to samo id zamówienia. Tylko z wtyczką.
  3. Zahashowany e-mail, który odwiedzający podał wcześniej na twojej stronie, na przykład w formularzu popupu Klaviyo, Attentive lub Wisepops albo przez wywołanie Identify.
  4. Ten sam adres IP i ta sama przeglądarka, widziane od 3 godzin przed zamówieniem do 15 minut po nim, ale tylko wtedy, gdy pasuje dokładnie jeden odwiedzający. W sieciach współdzielonych, takich jak biura i operatorzy komórkowi, kilku odwiedzających często dzieli jeden adres IP i wtedy ROASaurus nie zgaduje.

ROASaurus chwilę czeka, zanim wyśle każdy zakup, żeby zdarzenie ze strony z podziękowaniem mogło dotrzeć pierwsze. Jeśli zamówienie nadal nie jest dopasowane, próbuje jeszcze raz w momencie wysyłki. Strona Orders pokazuje wynik dla każdego zamówienia w kolumnie Matched by. Zamówienia powiązane przez visitor id z wtyczki pokazują cart, czyli tę samą etykietę, którą dostają zamówienia ze Shopify.

Wysłane do Meta dla zamówienia 1042Dopasowane (wtyczka)Niedopasowane (tylko webhooki)
Event id order-1042TakTak
Zahashowany e-mail, telefon, imię i nazwisko oraz adresTakTak
Adres IP i przeglądarka z zamówieniaTakTak
Click id Meta i id przeglądarki (fbc, fbp)TakNie
Zahashowany visitor id (external_id)TakNie
Kliknięcie w reklamę w atrybucji ROASaurusKampania i reklama z kliknięciaPokazane jako bezpośrednie lub nieznane
Niedopasowane zamówienie nadal dociera do Meta z danymi zamówienia. Dopasowane zamówienie dodaje identyfikatory kliknięcia, których Meta używa do przypisania zasługi reklamie.

Te identyfikatory kliknięcia podnoszą odsetek dopasowań zdarzenia w Meta. Event Match Quality wyjaśnia, jak Meta je ocenia.

Każdy sklep w ROASaurus ma ustawienie Respect visitor consent, które jest domyślnie włączone. W WooCommerce skrypt ROASaurus odczytuje wybór odwiedzającego z WP Consent API, które wypełniają wtyczki zgód, takie jak Complianz i CookieYes. Odczytuje też Cookiebot, OneTrust, banery IAB TCF i Google consent mode. Dopóki odwiedzający nie zaakceptuje marketingowych cookie, skrypt nie ustawia visitor id i nie ładuje pikseli w przeglądarce.

Gdy odwiedzający odrzuci zgodę, skrypt nie ustawia visitor id, nie zachowuje click id i nie uruchamia pikseli w przeglądarce, a wtyczka nie zapisuje przy zamówieniu cookie trackingowych. Opłacone zamówienie nadal jest wysyłane z serwera do połączonych platform reklamowych, z zahashowanymi danymi klienta z zamówienia oraz adresem IP i przeglądarką z zamówienia. Jeśli twoja opinia prawna mówi, że zdarzenia zakupu też wymagają wcześniejszej zgody, skontaktuj się z ROASaurus, zanim włączysz zakupy server-side. Szczegóły są na stronie pomocy o zgodach, a tło prawne omawia wpis o Consent Mode v2 i RODO.

Jak skonfigurować server-side tracking w WooCommerce

Oto kroki dla wariantu z wtyczką:

  1. Dodaj sklep

    W ROASaurus przejdź do Add a store, wybierz WooCommerce i wpisz domenę, na którą wchodzą twoi klienci.

  2. Utwórz klucz API

    Otwórz Store settings i w sekcji Orders API kliknij Create API key. Skopiuj klucz od razu: jest pokazywany tylko raz, obok klucza sklepu. Endpoint to adres przed /api/v1/orders na tej stronie.

  3. Zainstaluj wtyczkę

    Pobierz wtyczkę i wgraj plik zip w WordPressie w Plugins › Add New Plugin › Upload Plugin, a potem ją aktywuj.

  4. Wpisz klucze

    W WooCommerce › ROASaurus wpisz endpoint, klucz sklepu i klucz API, a potem zapisz.

  5. Połącz swoje platformy reklamowe

    W Tracking & platforms użyj Connect with Facebook albo Add pixel dla Meta, TikTok i pozostałych. Zaznacz opcję ładowania także piksela w przeglądarce, aby zakup ze strony z podziękowaniem był deduplikowany ze zdarzeniem z serwera.

  6. Skonfiguruj zgody i przetestuj

    Zablokuj skrypt w narzędziu do zgód, dopóki odwiedzający nie zaakceptuje marketingowych cookie, a potem złóż testowe zamówienie.

Bez wtyczki dodaj tag skryptu z Tracking & platforms na każdą stronę, a potem utwórz webhook. Karta Connection twojego sklepu pokazuje adres URL webhooka. Zachowaj go w tajemnicy: każdy, kto ma ten adres, może wysyłać zamówienia do twojego sklepu.

Ustawienia webhooka
WooCommerce › Settings › Advanced › Webhooks › Add webhook

Status        Active
Topic         Order updated
Delivery URL  (your webhook URL from the Connection tab)
Secret        (a secret of your choice; paste the same one in ROASaurus)
API version   WP REST API Integration v3

Dla kopii zapasowej utwórz klucz w WooCommerce › Settings › Advanced › REST API z dostępem do odczytu. Wklej consumer key i secret na karcie Connection, zapisz i naciśnij Test connection. Fetch orders now od razu pobiera ostatnie opłacone zamówienia. Wszystkie opcje w jednym miejscu wymienia strona integracji z WooCommerce.

Jak przetestować server-side tracking w WooCommerce?

Najpierw przetestuj stronę przeglądarki, potem złóż zamówienie i śledź je aż do platform reklamowych.

  • Otwórz swój sklep z ?roasaurus=connected w adresie. Alert potwierdzi, że skrypt działa. Z ?roasaurus=debug skrypt zapisuje w konsoli przeglądarki to, co wysyła.
  • W Event log, w sekcji Collected events, wyświetlenia stron powinny pokazywać visitor id.
  • Złóż testowe zamówienie. Najszybsza jest płatność za pobraniem, bo zamówienie od razu ma status processing.
  • Na karcie Connection pole Last order received pokazuje czas ostatniego zamówienia.
  • W Event log, w sekcji Server deliveries, każda połączona platforma ma wiersz ze statusem sent i odpowiedzią platformy.
PageView visitor 3f9c2a1eSkrypt załadowany za zgodą
Purchase order-1042Strona z podziękowaniem, piksele w przeglądarce uruchomione
order 1042 processingOdebrano z wtyczki
Meta Purchase sentTen sam event id, po deduplikacji
TikTok CompletePayment sentTen sam event id, po deduplikacji
Przykład prawidłowego testowego zamówienia z wtyczką. Przy samych webhookach brakuje wiersza strony z podziękowaniem i to jest oczekiwane.

Aby zobaczyć zdarzenie w Meta, wklej kod z Events Manager › Test events w pole Test event code swojego piksela Meta w ROASaurus. Usuń go, gdy skończysz, bo kod jest przeznaczony tylko do testów. Jeśli wtyczka nie może dostarczyć zamówienia, dodaje w WooCommerce notatkę do zamówienia zaczynającą się od „ROASaurus: order not sent”, po której następuje błąd.

Błędy, których warto unikać

  • Użycie tematu Order created. Zamówienia opłacane przez przekierowanie są tworzone jako pending payment. ROASaurus ignoruje nieopłacone zamówienia i po nadejściu płatności nie następuje drugi komunikat „created”. Użyj Order updated.
  • Sekret, który się nie zgadza. ROASaurus odrzuca dostawę, której podpis nie pasuje do sekretu, który ma. Po więcej niż pięciu niepowodzeniach z rzędu WooCommerce wyłącza webhook. Popraw sekret, ustaw webhook z powrotem na Active i dodaj klucz REST API, żeby zamówienia z tej luki zostały pobrane.
  • Dwa narzędzia wysyłające ten sam piksel. Jeśli inna wtyczka także wysyła twój piksel Meta lub TikTok, używa własnych event id, a platforma liczy każdą sprzedaż dwa razy. Wyłącz ją dla tego piksela. Zobacz zapobieganie podwójnemu liczeniu i zduplikowane zdarzenia zakupu.
  • Oczekiwanie zdarzeń dodania do koszyka. W WooCommerce skrypt sam śledzi wyświetlenia stron. Wyświetlenia produktów i dodania do koszyka są wykrywane automatycznie tylko w Shopify. Programista może je wysłać wywołaniem track tlq.
  • Oczekiwanie konwersji Google Ads. ROASaurus wysyła konwersje zakupu Google Ads tylko z checkoutu Shopify. Z WooCommerce wysyła zakupy do Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn i innych połączonych platform reklamowych.
  • Spóźnione przelewy bankowe. Meta przyjmuje zdarzenia server-side do 7 dni po czasie zdarzenia. Wtyczka wysyła zamówienie z datą jego utworzenia, więc Meta odrzuca przelew potwierdzony po więcej niż 7 dniach od checkoutu. Zamówienia docierające przez webhook lub REST API używają zamiast tego daty płatności. Zwróć też uwagę, że strona z podziękowaniem uruchamia zakup z przeglądarki w momencie checkoutu, zanim przelew zostanie opłacony. Jeśli płatność zostanie potwierdzona po więcej niż 48 godzinach, Meta i TikTok nie mogą scalić kopii z przeglądarki i z serwera, a przelew, który nigdy nie zostanie opłacony, zachowuje swój zakup z przeglądarki.

Gdy zamówienia zaczną płynąć, raporty atrybucji pokażą, z jakich kampanii i reklam pochodzą.

Źródła

  1. WooCommerce: Webhooks Documentation
  2. WooCommerce REST API Documentation - WP REST API v3
  3. WooCommerce: Order Statuses Documentation
  4. WooCommerce: Cash on Delivery Documentation
  5. Meta for Developers: Server Event Parameters

W ROASaurus

Czytaj dalej

Platformy reklamowe i sklepy internetoweTracking konwersji przy płatności za pobraniem i zewnętrzne checkoutyTracking 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.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ć.
FAQ

Pytania i odpowiedzi

Czy potrzebuję wtyczki ROASaurus dla WooCommerce?

Nie. Webhook WooCommerce wystarcza do wysyłania każdego opłaconego zamówienia. Wtyczka dodaje do każdego zamówienia visitor id i cookie z kliknięć oraz zdeduplikowany zakup z przeglądarki na stronie z podziękowaniem, co dokładnie łączy zamówienia z kliknięciami w reklamy, więc jest zalecana.

Którego tematu webhooka WooCommerce użyć?

Order updated, z wersją API WP REST API Integration v3. ROASaurus ignoruje zamówienia, które nie mają statusu processing ani completed, i zapisuje każde zamówienie tylko raz, więc powtórne aktualizacje nie tworzą dodatkowych zakupów.

Czy zamówienia za pobraniem są wysyłane do Meta i TikTok?

Tak. WooCommerce nadaje zamówieniom za pobraniem status processing w chwili złożenia, a ROASaurus liczy zamówienia processing jako opłacone. Zamówienia z przelewem bankowym są wysyłane, gdy zmienisz im status z on hold na processing.

Co jest wysyłane, gdy odwiedzający odrzuci cookie?

Opłacone zamówienie nadal jest wysyłane z serwera z zahashowanymi danymi klienta oraz adresem IP i przeglądarką z zamówienia. Skrypt nie powinien się uruchamiać bez zgody, więc nie ma visitor id ani click id, które powiązałyby zamówienie z kliknięciem w reklamę.

Dlaczego mój webhook WooCommerce przestał działać?

WooCommerce wyłącza webhook po więcej niż pięciu nieudanych dostawach z rzędu. Sprawdź, czy sekret w WooCommerce zgadza się z tym w ROASaurus, ustaw webhook z powrotem na Active i dodaj klucz REST API, żeby pominięte zamówienia były pobierane co 5 minut.

Czy ROASaurus wysyła konwersje Google Ads z WooCommerce?

Nie dla zakupów. Konwersje zakupu Google Ads są wysyłane tylko z checkoutu Shopify. Z WooCommerce ROASaurus wysyła zakupy do Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn i innych połączonych platform reklamowych.

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 →