Piattaforme pubblicitarie e negozi online

Tracciamento server-side con WooCommerce: guida alla configurazione

Configura il tracciamento server-side con WooCommerce: invia gli ordini pagati a Meta e TikTok con il plugin ROASaurus o con i webhook, associali ai clic sugli annunci e testa.

·Aggiornato il ·11 min di lettura·A cura del team di ROASaurus

Punti chiave
  • Il tracciamento server-side su WooCommerce invia ogni ordine pagato, a partire dai dati dell’ordine del negozio stesso, a Meta, TikTok e ad altre piattaforme pubblicitarie, così un acquisto viene contato anche quando il pixel del browser non scatta mai.
  • ROASaurus considera pagato un ordine WooCommerce quando il suo stato è «in lavorazione» o «completato», il che include gli ordini con pagamento alla consegna e i bonifici bancari una volta che li confermi.
  • Il plugin di ROASaurus salva il visitor id e i cookie del clic sull’annuncio su ogni ordine al checkout, così l’ordine viene collegato esattamente al proprio clic sull’annuncio.
  • Senza il plugin, i webhook consegnano comunque ogni ordine pagato, ma non c’è l’associazione tramite la pagina di ringraziamento: gli ordini vengono collegati solo tramite un’email indicata in precedenza sul sito o tramite un indirizzo IP e un browser univoci.
  • Su WooCommerce lo script di ROASaurus segue i plugin per il consenso che usano la WP Consent API, come Complianz e CookieYes, e i banner Cookiebot, OneTrust e IAB TCF.

Il tracciamento server-side su WooCommerce invia ogni ordine pagato, a partire dai dati dell’ordine del tuo negozio, a Meta, TikTok e ad altre piattaforme pubblicitarie, invece di affidarsi solo a un pixel nel browser dell’acquirente. L’acquisto viene registrato anche quando un ad blocker blocca il pixel o l’acquirente non arriva mai alla pagina di ringraziamento.

Questa guida spiega perché i negozi WooCommerce perdono conversioni, quali dati dell’ordine ti offre WooCommerce e i due modi per collegare ROASaurus: il plugin per WordPress o i webhook. Poi associazione, consenso, configurazione e test. Per l’idea generale, leggi cos’è il tracciamento server-side.

Perché i negozi WooCommerce perdono conversioni?

Un pixel del browser registra un acquisto solo se lo script del pixel si carica, l’acquirente arriva alla pagina di ringraziamento e il browser invia l’evento. Ogni passaggio può fallire. L’ordine in sé resta comunque nel tuo database, perché WooCommerce lo salva sul server.

Cosa succedePixel del browserI dati dell’ordine in WooCommerce
L’acquirente paga con un reindirizzamento (per esempio PayPal o un’app della banca) e chiude la schedaNessuna pagina di ringraziamento, nessun evento di acquistoOrdine pagato, stato «in lavorazione»
Un ad blocker o un’impostazione della privacy blocca lo script del pixelNessun evento di acquistoOrdine pagato
Il visitatore rifiuta i cookie di marketingIl pixel non deve caricarsiOrdine pagato
Un bonifico bancario viene confermato tre giorni dopoIn quel momento nessun browser è apertoLo stato passa da «in sospeso» a «in lavorazione»
Un plugin di cache o di ottimizzazione degli script ritarda il pixelL’evento può arrivare in ritardo o mancareOrdine pagato
In ogni caso l’ordine pagato esiste in WooCommerce. Il tracciamento server-side invia quell’ordine, qualunque cosa sia successa nel browser.

Gli acquisti mancanti fanno due tipi di danno. La piattaforma pubblicitaria ottimizza su meno conversioni e i tuoi report mostrano un ritorno più basso di quello reale. Ecco il secondo effetto in numeri, per un negozio di esempio con un ROAS di pareggio di 2.2:

Negozio di esempio, un meseSolo pixelOgni ordine pagato
Spesa pubblicitaria su Meta$8,000$8,000
Acquisti da clic su Meta260320
Ricavi a $60 per ordine$15,600$19,200
ROAS15,600 ÷ 8,000 = 1.9519,200 ÷ 8,000 = 2.40
Rispetto al pareggio (2.2)Sembra una perditaRedditizia
Numeri indicativi. La stessa campagna sembra in perdita con i dati del pixel e guadagna con i dati degli ordini.

Cosa ti offre WooCommerce: ordini, webhook e REST API

Quali stati dell’ordine contano come pagati?

WooCommerce descrive in lavorazione come pagamento ricevuto, con l’ordine in attesa di essere evaso. ROASaurus invia gli ordini con stato «in lavorazione» o «completato» e salta gli ordini «in attesa di pagamento», «in sospeso», «non riusciti», «annullati» e «rimborsati». Due metodi di pagamento richiedono attenzione:

  • Pagamento alla consegna. WooCommerce imposta questi ordini su «in lavorazione» finché il pagamento non viene incassato, quindi ROASaurus li invia quando vengono effettuati. Fanno eccezione gli ordini con un prodotto scaricabile: vanno «in sospeso». Vedi come tracciare gli ordini con pagamento alla consegna per capire cosa significa per resi e rifiuti.
  • Bonifico bancario. WooCommerce mette questi ordini «in sospeso» mentre verifichi il pagamento. ROASaurus li invia quando li sposti su «in lavorazione».

Webhook

Un webhook è un messaggio che WooCommerce invia a un altro sistema quando qualcosa cambia. Lo crei in WooCommerce › Settings › Advanced › Webhooks. Per un topic relativo agli ordini, il payload è lo stesso oggetto ordine che restituisce la REST API. Ogni consegna porta un header X-WC-Webhook-Signature: un hash HMAC-SHA256 in base64 del payload, creato con il segreto che scegli. ROASaurus controlla quella firma prima di accettare un ordine.

Due dettagli contano nella pratica. WooCommerce consegna i webhook in background, per impostazione predefinita con WP-Cron, quindi una consegna può subire ritardi quando quella coda è in ritardo. E WooCommerce disattiva un webhook dopo più di cinque consegne fallite di fila.

REST API

La REST API permette a ROASaurus di richiedere gli ordini da solo. Con una chiave API di sola lettura, ROASaurus chiede ogni 5 minuti gli ordini «in lavorazione» e «completati» modificati dall’ultimo controllo, con 30 minuti di sovrapposizione. Gli ordini che ha già vengono ignorati. In questo modo recupera qualsiasi ordine che un webhook abbia perso.

Campo dell’ordineCosa ne fa ROASaurus
idDiventa l’event id order-1042, condiviso dagli eventi del server e del browser
totalIl valore dell’acquisto: il totale complessivo, comprese imposte e spedizione
Email, telefono, nome, città, stato, CAP e paese di fatturazioneHash con SHA-256 e inviati come dati del cliente
customer_ip_address, customer_user_agentInviati con l’evento e usati per associare l’ordine a un visitatore
line_itemsId dei prodotti (l’id della variante quando c’è), quantità e prezzi
date_paid_gmtL’orario dell’evento per gli ordini che arrivano da un webhook o dalla REST API (la data di creazione quando manca la data di pagamento)
meta_dataCon il plugin: il visitor id e i cookie di Meta e TikTok
Cosa legge ROASaurus da un ordine WooCommerce. Il webhook e la REST API restituiscono gli stessi campi.

Plugin o webhook: due modi per collegarsi

Entrambi i collegamenti inviano ogni ordine pagato. Si differenziano per quanto bene ciascun ordine viene collegato al clic sull’annuncio che ha portato l’acquirente.

CheckoutIl plugin salva sull’ordine il visitor id e i cookie dei clic
Ordine pagatoStato processing o completed
ROASaurusRiceve l’ordine dal plugin o da un webhook
Piattaforme pubblicitarieMeta, TikTok e altre piattaforme ricevono un Purchase con event id order-1042
Il percorso dei dati con il plugin. Senza di esso, il passaggio del checkout non salva nulla in più e l’ordine arriva solo tramite webhook.
Plugin ROASaurusSolo webhook
Cosa installiUn plugin per WordPress (PHP 7.4 e WooCommerce 6.0 o successivi)Niente: un webhook nelle impostazioni di WooCommerce
Come arrivano gli ordiniIl plugin invia ogni ordine pagato all’API degli ordini di ROASaurusWooCommerce invia Order updated; controllo facoltativo tramite REST API ogni 5 minuti
Script di tracciamentoCaricato dal plugin su ogni paginaLo aggiungi tu, per esempio con il plugin WPCode o nel tuo tema
Visitor id e cookie dei clic sull’ordineSì, salvati al checkout (checkout classico e a blocchi)No
Acquisto del browser sulla pagina di ringraziamentoSì, con lo stesso event id dell’evento serverNo
Associazione tramite la pagina di ringraziamentoSìNo
Entrambi i collegamenti inviano ogni ordine pagato. Solo il plugin collega ogni ordine al proprio visitatore al checkout.

Puoi usarli entrambi contemporaneamente. Il plugin salva il visitor id sull’ordine come meta dati dell’ordine, e il payload del webhook lo porta con sé. ROASaurus salva ogni ordine una sola volta, in base al suo id ordine di WooCommerce, quindi il plugin e il webhook non creano mai due acquisti. Il plugin dichiara inoltre il supporto per l’High-Performance Order Storage di WooCommerce.

Come viene associato un ordine WooCommerce al clic sull’annuncio?

Una piattaforma pubblicitaria può attribuire un acquisto a un annuncio solo se riesce a collegare i due. ROASaurus lo fa collegando l’ordine al visitatore che ha cliccato l’annuncio, e quel visitatore porta con sé i click id (come fbclid e ttclid) e i parametri UTM della pagina di atterraggio. Prova questi metodi in ordine e si ferma al primo che funziona:

  1. Il visitor id salvato sull’ordine. Solo con il plugin. È un collegamento esatto.
  2. L’acquisto del browser sulla pagina di ringraziamento, che porta lo stesso id ordine. Solo con il plugin.
  3. Un’email con hash che il visitatore ha fornito in precedenza sul tuo sito, per esempio in un modulo popup di Klaviyo, Attentive o Wisepops, oppure tramite una chiamata Identify.
  4. Lo stesso indirizzo IP e lo stesso browser, visti da 3 ore prima a 15 minuti dopo l’ordine, ma solo quando corrisponde esattamente un visitatore. Sulle reti condivise, come uffici e operatori mobili, spesso più visitatori condividono un solo indirizzo IP, e in quel caso ROASaurus non tira a indovinare.

ROASaurus attende un breve momento prima di inviare ogni acquisto, così l’evento della pagina di ringraziamento può arrivare per primo. Se l’ordine risulta ancora non associato, riprova al momento dell’invio. La pagina Orders mostra il risultato per ogni ordine nella colonna Matched by. Gli ordini collegati tramite il visitor id del plugin mostrano cart, la stessa etichetta che ricevono gli ordini Shopify.

Inviato a Meta per l’ordine 1042Associato (plugin)Non associato (solo webhook)
Event id order-1042SìSì
Email, telefono, nome e indirizzo con hashSìSì
Indirizzo IP e browser dell’ordineSìSì
Click id di Meta e ID browser (fbc, fbp)SìNo
Visitor id con hash (external_id)SìNo
Il clic sull’annuncio nell’attribuzione di ROASaurusCampagna e annuncio del clicMostrato come diretto o sconosciuto
Un ordine non associato arriva comunque a Meta con i dati dell’ordine. Un ordine associato aggiunge gli identificatori del clic che Meta usa per attribuire il merito all’annuncio.

Questi identificatori del clic aumentano il tasso di corrispondenza di Meta per l’evento. Event Match Quality spiega come Meta li valuta.

Ogni negozio in ROASaurus ha l’impostazione Respect visitor consent, attiva per impostazione predefinita. Su WooCommerce, lo script di ROASaurus legge la scelta del visitatore dalla WP Consent API, che i plugin per il consenso come Complianz e CookieYes compilano. Legge anche i banner Cookiebot, OneTrust, IAB TCF e Google consent mode. Finché il visitatore non accetta i cookie di marketing, lo script non assegna alcun visitor id e non carica pixel del browser.

Quando un visitatore rifiuta, lo script non assegna alcun visitor id, non conserva click id e non fa scattare pixel del browser, e il plugin non salva cookie di tracciamento nell’ordine. L’ordine pagato viene comunque inviato dal server alle tue piattaforme pubblicitarie collegate, con i dati del cliente sottoposti ad hash presi dall’ordine e con l’indirizzo IP e il browser dell’ordine. Se il tuo parere legale indica che anche gli eventi di acquisto richiedono un consenso preventivo, contatta ROASaurus prima di attivare gli acquisti server-side. La pagina di aiuto sul consenso ha i dettagli, e l’articolo su Consent Mode v2 e GDPR tratta il contesto legale.

Come configurare il tracciamento server-side su WooCommerce

Ecco i passaggi per la configurazione con il plugin:

  1. Aggiungi il negozio

    In ROASaurus vai su Add a store, scegli WooCommerce e inserisci il dominio che visitano i tuoi clienti.

  2. Crea una chiave API

    Apri Store settings e, sotto Orders API, clicca su Create API key. Copia subito la chiave: viene mostrata una sola volta, accanto alla chiave del tuo negozio. L’endpoint è l’indirizzo che precede /api/v1/orders in quella pagina.

  3. Installa il plugin

    Scarica il plugin e carica il file zip in WordPress da Plugins › Add New Plugin › Upload Plugin, poi attivalo.

  4. Inserisci le chiavi

    In WooCommerce › ROASaurus inserisci l’endpoint, la chiave del negozio e la chiave API, poi salva.

  5. Collega le tue piattaforme pubblicitarie

    In Tracking & platforms usa Connect with Facebook o Add pixel per Meta, TikTok e le altre. Spunta l’opzione per caricare anche il pixel del browser, così l’acquisto sulla pagina di ringraziamento viene deduplicato con l’evento server.

  6. Configura il consenso e testa

    Blocca lo script nel tuo strumento per il consenso finché il visitatore non accetta i cookie di marketing, poi effettua un ordine di prova.

Senza il plugin, aggiungi a ogni pagina il tag dello script da Tracking & platforms, poi crea il webhook. La scheda Connection del tuo negozio mostra l’URL del tuo webhook. Tienilo riservato: chiunque abbia l’URL può inviare ordini al tuo negozio.

Impostazioni del webhook
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

Per il backup, crea una chiave in WooCommerce › Settings › Advanced › REST API con accesso in lettura. Incolla la consumer key e il secret nella scheda Connection, salva e premi Test connection. Fetch orders now recupera subito gli ordini pagati recenti. La pagina dell’integrazione WooCommerce elenca tutte le opzioni in un unico posto.

Come si testa il tracciamento server-side su WooCommerce?

Testa prima il lato browser, poi effettua un ordine e seguilo fino alle piattaforme pubblicitarie.

  • Apri il tuo negozio con ?roasaurus=connected nell’indirizzo. Un avviso conferma che lo script è in esecuzione. Con ?roasaurus=debug, lo script scrive nella console del browser ciò che invia.
  • Nell’Event log, sotto Collected events, le visualizzazioni di pagina dovrebbero mostrare un visitor id.
  • Effettua un ordine di prova. Il pagamento alla consegna è il più rapido, perché l’ordine passa subito «in lavorazione».
  • Nella scheda Connection, Last order received mostra l’orario dell’ultimo ordine.
  • Nell’Event log, sotto Server deliveries, ogni piattaforma collegata ha una riga con lo stato sent e la risposta della piattaforma.
PageView visitor 3f9c2a1eScript caricato con il consenso
Purchase order-1042Pagina di ringraziamento, pixel del browser attivati
order 1042 processingRicevuto dal plugin
Meta Purchase sentStesso event id, deduplicato
TikTok CompletePayment sentStesso event id, deduplicato
Esempio di un ordine di prova corretto con il plugin. Con i soli webhook la riga della pagina di ringraziamento manca, ed è normale.

Per vedere l’evento in Meta, incolla il codice di Events Manager › Test events nel campo Test event code del tuo pixel Meta in ROASaurus. Rimuovilo quando hai finito, perché il codice serve solo per i test. Se il plugin non riesce a consegnare un ordine, aggiunge in WooCommerce una nota all’ordine che inizia con «ROASaurus: order not sent», seguita dall’errore.

Errori da evitare

  • Usare il topic Order created. Gli ordini pagati con reindirizzamento vengono creati come in attesa di pagamento. ROASaurus ignora gli ordini non pagati, e quando il pagamento arriva non segue alcun secondo messaggio «created». Usa Order updated.
  • Un secret che non corrisponde. ROASaurus rifiuta una consegna la cui firma non corrisponde al secret che ha. Dopo più di cinque errori di fila, WooCommerce disattiva il webhook. Correggi il secret, riporta il webhook su Active e aggiungi la chiave REST API, così gli ordini del periodo scoperto vengono recuperati.
  • Due strumenti che inviano lo stesso pixel. Se un altro plugin invia anch’esso il tuo pixel Meta o TikTok, usa i propri event id e la piattaforma conta ogni vendita due volte. Disattivalo per quel pixel. Vedi come evitare il doppio conteggio e eventi di acquisto duplicati.
  • Aspettarsi eventi di aggiunta al carrello. Su WooCommerce lo script traccia da solo le visualizzazioni di pagina. Le visualizzazioni di prodotto e le aggiunte al carrello vengono rilevate automaticamente solo su Shopify. Uno sviluppatore può inviarle con una chiamata di tracciamento tlq.
  • Aspettarsi conversioni di Google Ads. ROASaurus invia le conversioni di acquisto di Google Ads solo dal checkout di Shopify. Da WooCommerce invia gli acquisti a Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn e alle altre piattaforme pubblicitarie che colleghi.
  • Bonifici in ritardo. Meta accetta gli eventi server fino a 7 giorni dopo l’orario dell’evento. Il plugin invia l’ordine con la data in cui è stato creato, quindi Meta rifiuta un bonifico confermato più di 7 giorni dopo il checkout. Gli ordini che arrivano tramite webhook o REST API usano invece la data di pagamento. Tieni presente anche che la pagina di ringraziamento attiva l’acquisto del browser al checkout, prima che il bonifico sia pagato. Se il pagamento viene confermato oltre 48 ore dopo, Meta e TikTok non riescono a unire le copie del browser e del server, e un bonifico che non viene mai pagato mantiene il proprio acquisto del browser.

Quando gli ordini iniziano ad arrivare, i report di attribuzione mostrano da quali campagne e da quali annunci provengono.

Fonti

  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

In ROASaurus

Continua a leggere

Piattaforme pubblicitarie e negozi onlineTracciamento delle conversioni con pagamento alla consegna e checkout esterniTracciamento delle conversioni con pagamento alla consegna: perché i pixel perdono gli ordini COD e quelli dei checkout esterni, quando inviare l’acquisto e come gestire gli ordini rifiutati.Piattaforme pubblicitarie e negozi onlineTracciamento delle conversioni con CCV Shop: guida alla configurazioneTracciamento delle conversioni con CCV Shop: invia gli ordini pagati a Meta e TikTok con un webhook firmato, collegali ai clic sugli annunci, configura, testa e gestisci i pagamenti in ritardo.Piattaforme pubblicitarie e negozi onlineConversioni avanzate di Google Ads su ShopifyLe conversioni avanzate aggiungono dati dei clienti con hash agli acquisti di Google Ads su Shopify. Come funzionano, in cosa differiscono dalle importazioni offline e la configurazione.
FAQ

Domande, risposte

Mi serve il plugin ROASaurus per WooCommerce?

No. Un webhook di WooCommerce basta per inviare ogni ordine pagato. Il plugin aggiunge a ogni ordine il visitor id e i cookie dei clic, e un acquisto del browser deduplicato sulla pagina di ringraziamento, che collegano gli ordini ai clic sugli annunci in modo esatto, ed è per questo che è consigliato.

Quale topic webhook di WooCommerce devo usare?

Order updated, con la versione API WP REST API Integration v3. ROASaurus ignora gli ordini che non sono «in lavorazione» o «completati» e salva ogni ordine una sola volta, quindi gli aggiornamenti ripetuti non creano acquisti in più.

Gli ordini con pagamento alla consegna vengono inviati a Meta e TikTok?

Sì. WooCommerce assegna agli ordini con pagamento alla consegna lo stato «in lavorazione» quando vengono effettuati, e ROASaurus considera pagati gli ordini «in lavorazione». Gli ordini con bonifico bancario vengono inviati quando li sposti da «in sospeso» a «in lavorazione».

Cosa viene inviato quando un visitatore rifiuta i cookie?

L’ordine pagato viene comunque inviato dal server con i dati del cliente sottoposti ad hash e con l’indirizzo IP e il browser presi dall’ordine. Lo script non dovrebbe essere eseguito senza consenso, quindi non c’è alcun visitor id o click id per collegare l’ordine a un clic su un annuncio.

Perché il mio webhook di WooCommerce ha smesso di funzionare?

WooCommerce disattiva un webhook dopo più di cinque consegne fallite di fila. Controlla che il secret in WooCommerce corrisponda a quello in ROASaurus, riporta il webhook su Active e aggiungi una chiave REST API così gli ordini persi vengono recuperati ogni 5 minuti.

ROASaurus invia le conversioni di Google Ads da WooCommerce?

Non per gli acquisti. Le conversioni di acquisto di Google Ads vengono inviate solo dal checkout di Shopify. Da WooCommerce, ROASaurus invia gli acquisti a Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn e alle altre piattaforme pubblicitarie che colleghi.

Ogni vendita, ricondotta all’annuncio che l’ha generata

Tracciamento server-side, profitto e lifetime value in un’unica app. Prova gratuita di 14 giorni, senza carta di credito.

Inizia la prova gratuita →