- Tracking-ul server-side în WooCommerce trimite fiecare comandă plătită din propriile date ale comenzii din magazin către Meta, TikTok și alte platforme de publicitate, așa că o achiziție se numără chiar și când pixelul din browser nu se declanșează niciodată.
- ROASaurus consideră o comandă WooCommerce plătită când statusul ei este processing sau completed, ceea ce include comenzile cu plata la livrare și transferurile bancare după ce le confirmi.
- Pluginul ROASaurus salvează id-ul de vizitator și cookie-urile click-ului pe reclamă pe fiecare comandă la checkout, așa că comanda este legată exact de click-ul ei pe reclamă.
- Fără plugin, webhook-urile livrează în continuare fiecare comandă plătită, dar nu există asociere prin pagina de mulțumire: comenzile sunt legate doar printr-un email dat mai devreme pe site sau printr-o adresă IP și un browser unice.
- Pe WooCommerce, scriptul ROASaurus urmează pluginurile de consimțământ care folosesc WP Consent API, precum Complianz și CookieYes, și bannerele Cookiebot, OneTrust și IAB TCF.
Tracking-ul server-side în WooCommerce trimite fiecare comandă plătită din datele comenzii din magazinul tău către Meta, TikTok și alte platforme de publicitate, în loc să se bazeze doar pe un pixel din browserul cumpărătorului. Achiziția este raportată chiar și când un blocant de reclame oprește pixelul sau cumpărătorul nu ajunge niciodată pe pagina de mulțumire.
Acest ghid explică de ce pierd magazinele WooCommerce conversii, ce date de comandă îți oferă WooCommerce și cele două moduri de a conecta ROASaurus: pluginul WordPress sau webhook-urile. Apoi urmează asocierea, consimțământul, configurarea și testarea. Pentru ideea generală, citește ce este tracking-ul server-side.
De ce pierd magazinele WooCommerce conversii?
Un pixel din browser raportează o achiziție doar atunci când scriptul pixelului se încarcă, cumpărătorul ajunge pe pagina de mulțumire și browserul trimite evenimentul. Fiecare pas poate eșua. Comanda în sine rămâne în baza ta de date, pentru că WooCommerce o salvează pe server.
| Ce se întâmplă | Pixel în browser | Datele comenzii în WooCommerce |
|---|---|---|
| Cumpărătorul plătește prin redirecționare (de exemplu PayPal sau o aplicație bancară) și închide fila | Fără pagină de mulțumire, fără eveniment de achiziție | Comandă plătită, status processing |
| Un blocant de reclame sau o setare de confidențialitate blochează scriptul pixelului | Niciun eveniment de achiziție | Comandă plătită |
| Vizitatorul refuză cookie-urile de marketing | Pixelul nu trebuie să se încarce | Comandă plătită |
| Un transfer bancar este confirmat trei zile mai târziu | Niciun browser nu este deschis în acel moment | Statusul trece din on hold în processing |
| Un plugin de caching sau de optimizare a scripturilor întârzie pixelul | Evenimentul poate întârzia sau lipsi | Comandă plătită |
Achizițiile lipsă produc două feluri de daune. Platforma de publicitate optimizează pe mai puține conversii, iar rapoartele tale arată un randament mai mic decât obții de fapt. Iată al doilea efect în cifre, pentru un magazin exemplu cu un ROAS de break-even de 2.2:
| Magazin exemplu, o lună | Doar pixel | Toate comenzile plătite |
|---|---|---|
| Cheltuieli cu reclamele Meta | $8,000 | $8,000 |
| Achiziții din click-uri Meta | 260 | 320 |
| Venit la $60 per comandă | $15,600 | $19,200 |
| ROAS | 15,600 ÷ 8,000 = 1.95 | 19,200 ÷ 8,000 = 2.40 |
| Față de break-even (2.2) | Pare o pierdere | Profitabil |
Ce îți oferă WooCommerce: comenzi, webhook-uri și REST API
Ce statusuri de comandă contează ca plătite?
WooCommerce descrie processing ca plată primită, cu comanda în așteptarea onorării. ROASaurus trimite comenzile cu statusul processing sau completed și le omite pe cele cu statusul pending payment, on hold, failed, cancelled și refunded. Două metode de plată necesită atenție:
- Plata la livrare. WooCommerce setează aceste comenzi pe processing până când plata este încasată, așa că ROASaurus le trimite când sunt plasate. Comenzile cu un produs descărcabil sunt excepția: ele trec pe on hold. Vezi urmărirea comenzilor cu plata la livrare pentru ce înseamnă asta în cazul retururilor și refuzurilor.
- Transfer bancar. WooCommerce pune aceste comenzi pe on hold cât timp verifici plata. ROASaurus le trimite când le muți pe processing.
Webhook-uri
Un webhook este un mesaj pe care WooCommerce îl trimite către alt sistem când se schimbă ceva. Îl creezi în WooCommerce › Settings › Advanced › Webhooks. Pentru un topic de comandă, payload-ul este același obiect de comandă pe care îl returnează REST API. Fiecare livrare conține un antet X-WC-Webhook-Signature: un hash HMAC-SHA256 în base64 al payload-ului, creat cu secretul pe care îl alegi. ROASaurus verifică această semnătură înainte să accepte o comandă.
Două detalii contează în practică. WooCommerce livrează webhook-urile în fundal, implicit cu WP-Cron, așa că o livrare poate întârzia când acea coadă rulează cu întârziere. Iar WooCommerce dezactivează un webhook după mai mult de cinci livrări eșuate la rând.
REST API
REST API îi permite ROASaurus să ceară singur comenzile. Cu o cheie API doar pentru citire, ROASaurus cere la fiecare 5 minute comenzile processing și completed modificate de la ultima verificare, cu o suprapunere de 30 de minute. Comenzile pe care le are deja sunt ignorate. Așa prinde orice comandă pe care un webhook a ratat-o.
| Câmp din comandă | Ce face ROASaurus cu el |
|---|---|
id | Devine event id-ul order-1042, comun evenimentelor de pe server și din browser |
total | Valoarea achiziției: totalul general, incluzând taxele și transportul |
| Email, telefon, nume, oraș, stat, cod poștal și țară din datele de facturare | Transformate în hash cu SHA-256 și trimise ca date de client |
customer_ip_address, customer_user_agent | Trimise cu evenimentul și folosite pentru a asocia comanda cu un vizitator |
line_items | Id-urile produselor (id-ul variației, când există), cantitățile și prețurile |
date_paid_gmt | Momentul evenimentului pentru comenzile primite printr-un webhook sau prin REST API (data creării, când nu există o dată a plății) |
meta_data | Cu pluginul: id-ul de vizitator și cookie-urile Meta și TikTok |
Plugin sau webhook-uri: două moduri de a conecta
Ambele conexiuni trimit fiecare comandă plătită. Diferă prin cât de bine este legată fiecare comandă de click-ul pe reclamă care a adus cumpărătorul.
| Pluginul ROASaurus | Doar webhook-uri | |
|---|---|---|
| Ce instalezi | Un plugin WordPress (PHP 7.4 și WooCommerce 6.0 sau mai nou) | Nimic: un webhook în setările WooCommerce |
| Cum ajung comenzile | Pluginul trimite fiecare comandă plătită către API-ul de comenzi ROASaurus | WooCommerce trimite Order updated; verificare opțională prin REST API la fiecare 5 minute |
| Script de tracking | Încărcat de plugin pe fiecare pagină | Îl adaugi tu, de exemplu cu pluginul WPCode sau în tema ta |
| Id de vizitator și cookie-uri de click pe comandă | Da, salvate la checkout (checkout clasic și cu blocuri) | Nu |
| Achiziție din browser pe pagina de mulțumire | Da, cu același event id ca evenimentul de pe server | Nu |
| Asocierea prin pagina de mulțumire | Da | Nu |
Le poți folosi pe amândouă în același timp. Pluginul salvează id-ul de vizitator pe comandă ca meta data a comenzii, iar payload-ul webhook-ului îl transportă mai departe. ROASaurus stochează fiecare comandă o singură dată, după id-ul comenzii WooCommerce, așa că pluginul și webhook-ul nu creează niciodată două achiziții. Pluginul declară și suportul pentru High-Performance Order Storage din WooCommerce.
Cum este asociată o comandă WooCommerce cu click-ul pe reclamă?
O platformă de publicitate poate credita o achiziție unei reclame doar atunci când le poate conecta pe cele două. ROASaurus face asta legând comanda de vizitatorul care a dat click pe reclamă, iar acel vizitator poartă click id-urile (precum fbclid și ttclid) și parametrii UTM de la aterizare. Încearcă aceste metode pe rând și se oprește la prima care funcționează:
- Id-ul de vizitator salvat pe comandă. Doar cu pluginul. Aceasta este o legătură exactă.
- Achiziția din browser de pe pagina de mulțumire, care conține același id de comandă. Doar cu pluginul.
- Un email cu hash dat de vizitator mai devreme pe site-ul tău, de exemplu într-un formular popup Klaviyo, Attentive sau Wisepops, sau printr-un apel Identify.
- Aceeași adresă IP și același browser, văzute de la 3 ore înainte până la 15 minute după comandă, dar doar când se potrivește exact un singur vizitator. În rețelele partajate, precum birourile și operatorii mobili, mai mulți vizitatori au adesea aceeași adresă IP, iar atunci ROASaurus nu ghicește.
ROASaurus așteaptă puțin înainte să trimită fiecare achiziție, ca evenimentul de pe pagina de mulțumire să poată ajunge primul. Dacă comanda tot nu este asociată, încearcă din nou în momentul trimiterii. Pagina Orders arată rezultatul pentru fiecare comandă în coloana Matched by. Comenzile legate prin id-ul de vizitator al pluginului afișează cart, aceeași etichetă pe care o primesc comenzile Shopify.
| Trimis către Meta pentru comanda 1042 | Asociată (plugin) | Neasociată (doar webhook-uri) |
|---|---|---|
Event id order-1042 | Da | Da |
| Email, telefon, nume și adresă cu hash | Da | Da |
| Adresa IP și browserul comenzii | Da | Da |
Click id și id de browser Meta (fbc, fbp) | Da | Nu |
Id de vizitator cu hash (external_id) | Da | Nu |
| Click-ul pe reclamă în atribuirea ROASaurus | Campania și reclama din click | Apare ca direct sau necunoscut |
Acești identificatori de click cresc rata de potrivire a evenimentului la Meta. Event Match Quality explică cum îi evaluează Meta.
Consimțământul în WooCommerce
Fiecare magazin din ROASaurus are setarea Respect visitor consent, activată implicit. Pe WooCommerce, scriptul ROASaurus citește alegerea vizitatorului din WP Consent API, pe care îl completează pluginurile de consimțământ precum Complianz și CookieYes. Citește și bannerele Cookiebot, OneTrust, IAB TCF și Google consent mode. Până când vizitatorul acceptă cookie-urile de marketing, scriptul nu setează id de vizitator și nu încarcă pixeli din browser.
Când un vizitator refuză, scriptul nu setează id de vizitator, nu păstrează click id-uri și nu declanșează pixeli din browser, iar pluginul nu stochează cookie-uri de tracking pe comandă. Comanda plătită este în continuare trimisă de pe server către platformele tale de publicitate conectate, cu datele clientului cu hash din comandă și cu adresa IP și browserul comenzii. Dacă sfatul tău juridic spune că și evenimentele de achiziție necesită consimțământ prealabil, contactează ROASaurus înainte să activezi achizițiile server-side. Pagina de ajutor despre consimțământ conține detaliile, iar articolul despre Consent Mode v2 și GDPR tratează contextul juridic.
Cum configurezi tracking-ul server-side în WooCommerce
Acestea sunt pașii pentru varianta cu plugin:
- Adaugă magazinul
În ROASaurus, mergi la Add a store, alege WooCommerce și introdu domeniul pe care îl vizitează clienții tăi.
- Creează o cheie API
Deschide Store settings și, la Orders API, fă click pe Create API key. Copiază cheia imediat: este afișată o singură dată, lângă cheia magazinului tău. Endpoint-ul este adresa dinaintea lui
/api/v1/ordersde pe acea pagină. - Instalează pluginul
Descarcă pluginul și încarcă arhiva zip în WordPress la Plugins › Add New Plugin › Upload Plugin, apoi activează-l.
- Introdu cheile
La WooCommerce › ROASaurus, introdu endpoint-ul, cheia magazinului și cheia API, apoi salvează.
- Conectează-ți platformele de publicitate
În Tracking & platforms, folosește Connect with Facebook sau Add pixel pentru Meta, TikTok și celelalte. Bifează opțiunea de a încărca și pixelul din browser, ca achiziția de pe pagina de mulțumire să fie deduplicată cu evenimentul de pe server.
- Configurează consimțământul și testează
Blochează scriptul în instrumentul tău de consimțământ până când vizitatorul acceptă cookie-urile de marketing, apoi plasează o comandă de test.
Fără plugin, adaugă tagul de script din Tracking & platforms pe fiecare pagină, apoi creează webhook-ul. Fila Connection a magazinului tău arată URL-ul webhook-ului. Păstrează-l privat: oricine are URL-ul poate trimite comenzi către magazinul tău.
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
Pentru backup, creează o cheie în WooCommerce › Settings › Advanced › REST API cu acces de citire. Lipește consumer key și secret în fila Connection, salvează și apasă Test connection. Fetch orders now aduce imediat comenzile plătite recente. Pagina integrării WooCommerce listează toate opțiunile într-un singur loc.
Cum testezi tracking-ul server-side în WooCommerce?
Testează mai întâi partea din browser, apoi plasează o comandă și urmărește-o până la platformele de publicitate.
- Deschide magazinul cu
?roasaurus=connectedîn adresă. O alertă confirmă că scriptul rulează. Cu?roasaurus=debug, scriptul scrie în consola browserului ce trimite. - În Event log, la Collected events, vizualizările de pagină ar trebui să afișeze un id de vizitator.
- Plasează o comandă de test. Plata la livrare este cea mai rapidă, pentru că comanda este imediat în processing.
- În fila Connection, Last order received arată ora ultimei comenzi.
- În Event log, la Server deliveries, fiecare platformă conectată primește o linie cu statusul sent și răspunsul platformei.
PageView visitor 3f9c2a1eScript încărcat cu consimțământPurchase order-1042Pagina de mulțumire, pixelii din browser declanșațiorder 1042 processingPrimit de la pluginMeta Purchase sentAcelași event id, deduplicatTikTok CompletePayment sentAcelași event id, deduplicatCa să vezi evenimentul în Meta, lipește codul din Events Manager › Test events în câmpul Test event code al pixelului tău Meta din ROASaurus. Elimină-l când ai terminat, pentru că acel cod este destinat doar testării. Dacă pluginul nu poate livra o comandă, adaugă în WooCommerce o notă la comandă care începe cu „ROASaurus: order not sent”, urmată de eroare.
Greșeli de evitat
- Folosirea topicului Order created. Comenzile plătite prin redirecționare sunt create cu statusul pending payment. ROASaurus ignoră comenzile neplătite și nu urmează un al doilea mesaj „created” când sosește plata. Folosește Order updated.
- Un secret care nu se potrivește. ROASaurus respinge o livrare a cărei semnătură nu se potrivește cu secretul pe care îl are. După mai mult de cinci eșecuri la rând, WooCommerce dezactivează webhook-ul. Corectează secretul, setează webhook-ul înapoi pe Active și adaugă cheia REST API, ca să fie aduse comenzile din intervalul pierdut.
- Două instrumente care trimit același pixel. Dacă un alt plugin trimite și el pixelul tău Meta sau TikTok, folosește propriile event id-uri, iar platforma numără fiecare vânzare de două ori. Oprește-l pentru acel pixel. Vezi evitarea numărării duble și evenimentele de achiziție duplicate.
- Așteptarea evenimentelor de adăugare în coș. În WooCommerce, scriptul urmărește singur doar vizualizările de pagină. Vizualizările de produs și adăugările în coș sunt detectate automat doar în Shopify. Un dezvoltator le poate trimite cu un apel de track
tlq. - Așteptarea conversiilor Google Ads. ROASaurus trimite conversiile de achiziție Google Ads doar din checkout-ul Shopify. Din WooCommerce, trimite achiziții către Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn și celelalte platforme de publicitate pe care le conectezi.
- Transferuri bancare întârziate. Meta acceptă evenimente de pe server până la 7 zile după momentul evenimentului. Pluginul trimite comanda cu data la care a fost creată, așa că Meta respinge un transfer confirmat la mai mult de 7 zile după checkout. Comenzile care sosesc prin webhook sau prin REST API folosesc în schimb data plății. Reține și că pagina de mulțumire declanșează achiziția din browser la checkout, înainte ca transferul să fie plătit. Dacă plata este confirmată după mai mult de 48 de ore, Meta și TikTok nu pot îmbina copiile din browser și de pe server, iar un transfer care nu este plătit niciodată își păstrează achiziția din browser.
Odată ce comenzile curg, rapoartele de atribuire arată din ce campanii și reclame provin.
Surse
- WooCommerce: Webhooks Documentation
- WooCommerce REST API Documentation - WP REST API v3
- WooCommerce: Order Statuses Documentation
- WooCommerce: Cash on Delivery Documentation
- Meta for Developers: Server Event Parameters