Piattaforme pubblicitarie e negozi online

Tracciamento delle conversioni con pagamento alla consegna e checkout esterni

Tracciamento 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.

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

Punti chiave
  • I pixel del browser perdono gli ordini che si concludono fuori dal checkout normale, come i moduli per il pagamento alla consegna, i checkout esterni, i moduli d’ordine e i funnel.
  • Un ordine con pagamento alla consegna resta non pagato finché il corriere non incassa il contante, quindi una configurazione che invia gli acquisti al pagamento li riporta in ritardo o mai.
  • Meta rifiuta gli eventi con un orario più vecchio di oltre 7 giorni, quindi la maggior parte dei negozi con pagamento alla consegna dovrebbe inviare l’acquisto quando l’ordine viene creato o confermato.
  • Gli ordini rifiutati restano in Ads Manager, quindi dividi il tuo ROAS di pareggio per la quota di ordini che vengono pagati.
  • In ROASaurus, scegli External / COD checkout in Store settings per inviare gli acquisti Shopify quando l’ordine viene creato.

Il tracciamento delle conversioni con pagamento alla consegna significa inviare ogni acquisto alle tue piattaforme pubblicitarie dall’ordine stesso, sul server, invece di affidarsi a un pixel del browser su una pagina di ringraziamento. Gli ordini delle app per il pagamento alla consegna, dei checkout esterni, dei moduli d’ordine e dei funnel spesso si concludono fuori dal checkout normale, quindi il pixel li perde o li riporta nel momento sbagliato.

Questa guida spiega perché quegli ordini vanno persi e perché lo stato del pagamento conta. Confronta tre momenti per inviare l’acquisto: quando l’ordine viene creato, quando viene confermato e quando viene pagato. Tratta anche gli ordini rifiutati e i rimborsi, e come ROASaurus gestisce i checkout esterni.

Perché i pixel perdono gli ordini con pagamento alla consegna?

Un pixel del browser riporta un acquisto quando l’acquirente raggiunge una pagina che lo esegue. Di solito è la pagina di ringraziamento del tuo checkout. Ogni percorso d’ordine che salta questa pagina, o la esegue su un altro dominio, perde l’evento di acquisto o il clic sull’annuncio che gli appartiene.

Percorso dell’ordineDove si conclude l’ordineCosa va storto con un pixel del browser
App con modulo per il pagamento alla consegnaUn modulo sulla pagina del prodotto; è l’app a creare l’ordineIl checkout del negozio non viene mai eseguito, quindi il suo evento di acquisto non scatta mai
Checkout esternoUn checkout gestito da un’altra app, spesso su un altro dominioIl tuo pixel potrebbe non caricarsi lì, e i cookie del clic sull’annuncio restano sul dominio del tuo negozio
Modulo d’ordine o ordine manualeUn modulo, una chat o una telefonata; lo staff inserisce l’ordineNon c’è nessuna sessione del browser che un pixel possa vedere
Funnel con checkout proprioUn costruttore di landing page su un dominio proprioIl clic sull’annuncio è su un dominio e l’acquisto su un altro
Ogni percorso crea un ordine reale, ma nessuno esegue la normale pagina di ringraziamento con il clic sull’annuncio collegato.

L’ordine in sé non va mai perso. Finisce nel tuo negozio online o nel tuo strumento per funnel con un order id, un importo, un indirizzo email e spesso un numero di telefono. Per questo la soluzione affidabile è inviare l’acquisto dai dati dell’ordine, server-side, e portare con sé il clic sull’annuncio fino all’ordine. Il tracciamento server-side su Shopify spiega il metodo generale. Questo articolo tratta gli ordini che richiedono più attenzione.

Alcune app per il pagamento alla consegna fanno scattare anche i propri eventi del pixel. Se usano lo stesso pixel del tuo tracciamento server-side ma con un event id diverso, la piattaforma conta l’ordine due volte. Disattiva quegli eventi dell’app, oppure segui i passaggi per evitare il doppio conteggio.

Perché lo stato del pagamento conta

Un pagamento con carta viene incassato nel checkout, quindi l’ordine è pagato nel momento in cui esiste. Un ordine con pagamento alla consegna è diverso. Shopify elenca il pagamento alla consegna come metodo di pagamento manuale, e questi ordini restano in Payment pending finché non li segni come pagati. In pratica succede dopo che il corriere incassa il contante, e può volerci qualche giorno. Alcuni ordini non vengono mai pagati, perché l’acquirente rifiuta il pacco o non è a casa.

Molte configurazioni di tracciamento inviano l’acquisto quando l’ordine è pagato, perché per gli ordini con carta è il momento più sicuro. Per un ordine con pagamento alla consegna, la stessa regola significa che l’acquisto arriva con giorni di ritardo o non arriva mai. Il log qui sotto mostra un caso tipico in un negozio che invia gli acquisti al pagamento.

14 Oct 10:02 orders/create #4821 $50.00Ordine effettuato con pagamento alla consegna, pagamento in sospeso
14 Oct 10:02 PurchaseNon inviato: questo negozio invia gli acquisti quando sono pagati
16 Oct 09:40 #4821 shippedPacco consegnato al corriere
22 Oct 15:12 orders/paid #4821Segnato come pagato dopo il versamento del corriere
22 Oct 15:12 Purchase event_time=14 OctRifiutato: l’orario dell’evento è più vecchio di oltre 7 giorni
Esempio: un acquisto che aspetta il pagamento. Passano otto giorni tra l’ordine e lo stato pagato, e Meta non accetta un orario dell’evento più vecchio di oltre 7 giorni.

WooCommerce funziona al contrario. Imposta gli ordini con pagamento alla consegna su Processing finché il pagamento non viene incassato, tranne gli ordini con un prodotto scaricabile, che vanno su On hold. Una configurazione che invia gli ordini in Processing li invia quindi appena vengono effettuati. Controlla quale stato assegna la tua piattaforma a questi ordini prima di decidere qualsiasi altra cosa.

Creato, confermato o pagato: quando conviene inviare l’acquisto?

Ci sono tre momenti tra cui scegliere. Ognuno scambia velocità con accuratezza.

Invia l’acquisto quando l’ordine èRitardo tipico dopo l’ordineInclude gli ordini mai pagatiRischio principale
CreatoSecondiSì: rifiuti e ordini falsiAds Manager mostra più ricavi di quelli che incassi
Confermato dal tuo team, per telefono o messaggioDa qualche ora a un giornoSolo i rifiutiServe un passaggio di conferma che possa far scattare l’evento
Pagato o consegnatoDa giorni a settimaneNoIn ritardo o perso: il clic sull’annuncio cade fuori dalla finestra di attribuzione, oppure l’evento viene rifiutato
Inviare alla creazione è veloce ma conta ordini che non verranno mai pagati. Inviare al pagamento è esatto ma tardivo.

Perché gli eventi di acquisto in ritardo sono un problema

Le piattaforme pubblicitarie attribuiscono un acquisto a un annuncio solo se avviene dentro la finestra di attribuzione dopo il clic. Con un’impostazione di attribuzione sul clic a 7 giorni su Meta, un acquisto conta per un annuncio fino a 7 giorni dopo il clic. Inoltre la Conversions API di Meta rifiuta gli eventi il cui event_time è più vecchio di oltre 7 giorni, e respinge l’intera richiesta se anche un solo evento è troppo vecchio. Un acquisto inviato al pagamento ha quindi due brutte opzioni:

  • Inviarlo con l’orario dell’ordine. Se il pagamento è arrivato più di 7 giorni dopo, Meta lo rifiuta.
  • Inviarlo con l’orario del pagamento. Meta lo accetta, ma il clic sull’annuncio potrebbe ormai avere più di 7 giorni, quindi l’acquisto non viene attribuito all’annuncio.

La velocità conta anche per l’ottimizzazione. Le campagne che ottimizzano per gli acquisti imparano dagli acquisti che invii. Un segnale che arriva con una settimana di ritardo racconta all’algoritmo il pubblico della settimana scorsa.

Negozio di esempio: quota di ordini con pagamento alla consegna segnati come pagati
100%0%
02468101214
Giorni dopo l’ordine, numeri illustrativi. Circa la metà degli ordini è pagata entro il giorno 4. Dopo 7 giorni, il 28% è ancora non pagato, compreso il 18% che non viene mai pagato.

Quale momento scegliere

Per la maggior parte dei negozi con pagamento alla consegna, inviare alla creazione è la scelta predefinita migliore. Il segnale è immediato, il clic è ancora dentro la finestra e nulla viene rifiutato. Il costo è che gli ordini rifiutati contano come acquisti in Ads Manager. Lo correggi nei tuoi obiettivi, come mostra la sezione successiva.

Se il tuo team conferma ogni ordine per telefono o messaggio prima della spedizione, la conferma è un buon compromesso. Elimina gli ordini falsi e di solito avviene entro un giorno. Usala quando il tuo sistema può inviare l’acquisto in quel momento, per esempio tramite un’API. Gli ordini falsi contano più di quanto sembri: se la piattaforma pubblicitaria impara da loro, cerca altre persone che fanno ordini e non pagano.

Come gestire ordini rifiutati, annullamenti e rimborsi

Una volta inviato, un acquisto resta in Ads Manager. Un pacco rifiutato alla consegna non lo elimina. Nemmeno ROASaurus invia rimborsi o annullamenti a Meta, TikTok e alla maggior parte delle altre piattaforme pubblicitarie, quindi i ricavi che segnalano includono ordini che non hai mai incassato. Solo i valori di Google Ads e Microsoft Advertising possono essere corretti dopo un rimborso, quando le correzioni del valore sono attive. La soluzione è misurare il tuo tasso di rifiuto e correggere i numeri con cui fai il confronto.

Ecco un esempio svolto su un mese. Per semplicità, i prezzi sono senza IVA.

VoceImporto
Ordini inviati a Meta alla creazione200 ordini × $50 = $10,000
Rifiutati alla porta (18%)36 ordini, $1,800
Consegnati e pagati164 ordini, $8,200
Costo del prodotto degli ordini consegnati (30%)−$2,460
Spedizione di tutti i 200 pacchi a $6−$1,200
Spedizione di ritorno di 36 pacchi rifiutati a $6−$216
Commissione per l’incasso del contante, $1.50 per ordine pagato−$246
Gestione, $1 per ordine−$200
Utile lordo$3,878
I pacchi rifiutati non portano ricavi ma costano comunque la spedizione di andata e ritorno. I prodotti rifiutati tornano in magazzino, quindi il loro costo non va perso.

Con $3,000 di spesa pubblicitaria, lo stesso mese appare molto diverso a seconda dei ricavi che usi:

3.33ROAS in Ads Manager: $10,000 ÷ $3,000
2.73ROAS sugli ordini consegnati: $8,200 ÷ $3,000
1.29POAS: $3,878 di utile lordo ÷ $3,000

Il tasso di margine lordo sui ricavi consegnati è $3,878 ÷ $8,200 = 47.3%, quindi il ROAS di pareggio è 1 ÷ 0.473 = 2.11. Questo pareggio vale per i ricavi consegnati. Ads Manager conta anche gli ordini rifiutati, quindi devi convertirlo prima di confrontare. Il ROAS di pareggio spiega la formula di base.

Pareggio in Ads Manager=ROAS di pareggio ÷ tasso di pagamento
ROAS di pareggio
1 ÷ tasso di margine lordo, calcolato solo sugli ordini pagati.
Tasso di pagamento
La quota di ordini che vengono pagati, per esempio l’82% quando il 18% viene rifiutato.

2.114 ÷ 0.82 = 2.58. Una campagna che in Ads Manager mostra meno di 2.58 perde, anche se sembra ben sopra 2.11.

Puoi verificare il risultato direttamente. Gli annunci vanno in pareggio quando la spesa pubblicitaria è uguale all’utile lordo di $3,878, e $10,000 di ricavi riportati ÷ $3,878 = 2.58.

I tassi di rifiuto spesso differiscono per regione, prodotto e campagna. Calcolali per campagna quando hai abbastanza ordini, e usa il calcolatore del POAS per controllare il risultato sull’utile lordo.

Rimborsi e annullamenti nei tuoi numeri

Su Shopify, annullamenti e rimborsi arrivano a ROASaurus tramite webhook, quindi l’analisi del profitto detrae i rimborsi dai ricavi. Scegli tu se contare gli ordini annullati che non sono mai stati evasi, e per impostazione predefinita restano esclusi. Un ordine annullato che era già stato spedito resta dentro, perché la sua spedizione ti è comunque costata. Per gli ordini recenti che potrebbero ancora tornare indietro, l’impostazione Predicted returns trattiene una quota prevista di vendite finché non arrivano i rimborsi reali.

Come ROASaurus gestisce il pagamento alla consegna e i checkout esterni

Shopify

Ogni negozio Shopify ha un Checkout type in Store settings, con due opzioni:

  • Shopify checkout: l’acquisto viene inviato quando Shopify segnala l’ordine come pagato, tramite il webhook orders/paid.
  • External / COD checkout: l’acquisto viene inviato quando l’ordine viene creato, tramite il webhook orders/create. Usalo per il pagamento alla consegna e per i checkout esterni, come CheckoutChamp o Checkify, che creano da soli l’ordine Shopify.

L’impostazione vale per ogni ordine del negozio. Gli ordini con carta, pagati nel checkout, vengono creati e pagati quasi nello stesso momento, quindi la scelta cambia soprattutto quando vengono inviati gli ordini non pagati. Ogni ordine viene inviato una sola volta. Quando arriva più tardi l’aggiornamento di pagamento di un ordine con pagamento alla consegna, non viene inviato un secondo acquisto.

L’acquisto usa i dati dell’ordine stesso: l’importo, la valuta, i prodotti, e l’email, il telefono e l’indirizzo dell’acquirente, sottoposti ad hash prima di uscire. ROASaurus associa l’ordine al clic sull’annuncio tramite il visitor id che il suo script salva sul carrello. Quando un ordine non lo porta con sé, ROASaurus prova, in questo ordine: i token del carrello e del checkout, l’evento di acquisto del checkout, un’email che il visitatore ha lasciato in precedenza sul tuo sito, e lo stesso indirizzo IP e lo stesso browser poco prima dell’ordine, quando corrisponde esattamente un solo visitatore. La pagina dell’integrazione con Shopify contiene la configurazione completa.

WooCommerce e altri negozi online

Il plugin WooCommerce invia un ordine quando raggiunge Processing o Completed. Gli ordini con pagamento alla consegna raggiungono Processing quando vengono effettuati, quindi vengono inviati subito. Gli ordini con bonifico bancario vengono inviati quando passano a Processing. Gli altri connettori per negozi online inviano un ordine in questi momenti:

  • Wix, Squarespace, Ecwid, Lightspeed, CCV Shop e Shopware: quando lo stato di pagamento dell’ordine è pagato.
  • BigCommerce: quando l’ordine raggiunge uno stato come Awaiting Fulfillment, Awaiting Shipment, Shipped o Completed.
  • Magento: quando lo stato dell’ordine è Processing o Complete.
  • PrestaShop: quando l’ordine è segnato come valido.
  • Webhook personalizzato e API degli ordini: quando è il tuo sistema a inviare l’ordine.

Controlla come la tua piattaforma segna gli ordini con pagamento alla consegna. Se restano non pagati finché il corriere non versa l’incasso, i loro acquisti arrivano in ritardo.

Funnel e checkout proprio

  1. Aggiungi lo script alle pagine del funnel

    Usa la stessa store key del tuo negozio online, così un visitatore mantiene un solo visitor id su entrambi i domini.

  2. Elenca i tuoi domini

    In Store settings, aggiungi i domini del funnel e del negozio sotto Linked domains. I link tra quei domini portano poi con sé il visitor id e i click id.

  3. Invia gli ordini tramite l’API degli ordini

    Se è il funnel a prendere l’ordine, invia ogni ordine a /api/v1/orders con il cookie _tl come visitor_id. È il tuo sistema a decidere il momento: alla creazione, alla conferma o al pagamento.

  4. Controlla l’Event log

    Quando arrivano i primi ordini reali, apri l’Event log e controlla che ognuno sia stato inviato a ogni piattaforma collegata.

Un ordine da un checkout del funnel, inviato all’API degli ordini
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 }]
}

L’API degli ordini conserva la prima copia di ogni order id. Se il tuo sistema la chiama alla creazione e di nuovo al pagamento, solo la prima chiamata invia un acquisto. Più dettagli in funnel e domini multipli.

Errori comuni da evitare

  • Aspettare lo stato pagato in un negozio con pagamento alla consegna. Gli acquisti arrivano con una settimana di ritardo o non arrivano affatto, e gli eventi in ritardo vengono rifiutati o cadono fuori dalla finestra di attribuzione.
  • Confrontare il ROAS di Ads Manager con un pareggio calcolato sugli ordini pagati. Dividi prima il pareggio per il tuo tasso di pagamento.
  • Due fonti per un solo acquisto. Il pixel di un’app con modulo e i tuoi eventi server contano lo stesso ordine due volte. Vedi eventi di acquisto duplicati.
  • Perdere il clic tra un dominio e l’altro. Un funnel su un altro dominio ha bisogno dello script e dei domini collegati, altrimenti i suoi ordini arrivano senza un clic sull’annuncio.
  • Lasciare fuori gli ordini manuali. Gli ordini per telefono e in chat non hanno una sessione del browser, ma hanno comunque un indirizzo email o un numero di telefono. Inviati dai dati dell’ordine, danno alla piattaforma pubblicitaria qualcosa con cui fare l’associazione.

Fonti

  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

In ROASaurus

Continua a leggere

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.Piattaforme pubblicitarie e negozi onlineTracciamento delle conversioni con Lightspeed per i negozi online eComTracciamento delle conversioni con Lightspeed eCom (C-Series): invia dal server gli ordini pagati a Meta e TikTok, collegali ai clic sugli annunci, configura e testa.
FAQ

Domande, risposte

Meta può tracciare gli ordini con pagamento alla consegna?

Sì, se l’acquisto viene inviato dai dati dell’ordine sul server. Un pixel del browser spesso perde questi ordini, perché molte app per il pagamento alla consegna e molti checkout esterni saltano la normale pagina di ringraziamento.

Devo inviare l’acquisto quando l’ordine viene creato o quando viene pagato?

Per la maggior parte dei negozi con pagamento alla consegna, invialo quando l’ordine viene creato o confermato. Il pagamento può richiedere più di una settimana, e Meta rifiuta gli eventi con un orario più vecchio di oltre 7 giorni. Correggi invece per gli ordini rifiutati nei tuoi obiettivi di ROAS.

Gli ordini con pagamento alla consegna rifiutati contano come acquisti in Ads Manager?

Sì. Un acquisto inviato resta in Ads Manager quando il pacco viene rifiutato. Dividi il tuo ROAS di pareggio per la quota di ordini che vengono pagati per ottenere il pareggio nei termini di Ads Manager.

Quale tipo di checkout devo scegliere in ROASaurus?

Su Shopify, scegli External / COD checkout per il pagamento alla consegna e per i checkout esterni, come CheckoutChamp o Checkify, che creano l’ordine Shopify. Gli acquisti vengono allora inviati quando l’ordine viene creato invece che quando viene pagato.

Come traccio gli ordini di un funnel con un checkout proprio?

Aggiungi lo script di ROASaurus alle pagine del funnel, elenca i domini del funnel e del negozio sotto Linked domains, e invia gli ordini del funnel all’API degli ordini con il visitor id.

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 →