Piattaforme pubblicitarie e negozi online

Tracciamento delle conversioni con CCV Shop: guida alla configurazione

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

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

Punti chiave
  • Il tracciamento delle conversioni con CCV Shop è più completo quando ogni ordine pagato viene inviato dai dati d’ordine di CCV sul server, con uno snippet nella pagina di conferma dell’ordine che collega l’ordine al clic sull’annuncio.
  • Un clic su Create webhook fa sì che CCV Shop segnali ogni ordine nel momento in cui viene segnato come pagato, e ogni invio deve portare il token privato del tuo negozio.
  • Gli ordini di CCV Shop non includono l’indirizzo IP dell’acquirente, quindi lo snippet nella pagina di conferma dell’ordine conta più su CCV Shop che sulla maggior parte delle piattaforme.
  • Il controllo ogni 5 minuti guarda solo gli ordini creati di recente, quindi gli ordini pagati giorni dopo dipendono dal webhook: tienilo attivo.
  • Meta rifiuta gli eventi server arrivati oltre 7 giorni dopo la creazione dell’ordine, quindi un bonifico molto in ritardo non arriva a Meta.

Il tracciamento delle conversioni con CCV Shop significa segnalare alle piattaforme pubblicitarie come Meta e TikTok ogni ordine pagato nel tuo negozio online CCV Shop, così che attribuiscano gli annunci giusti e ottimizzino sulle vendite reali. Il modo più completo è inviare ogni acquisto dai dati d’ordine di CCV sul server, e aggiungere un breve snippet alla pagina di conferma dell’ordine che collega l’ordine al clic sull’annuncio.

CCV Shop è una piattaforma di negozi online in hosting dell’azienda olandese CCV, che dichiara di gestire 17,000 negozi online. Questa guida spiega come si collega ROASaurus a CCV Shop, come gli ordini vengono collegati ai clic sugli annunci, cosa arriva a Meta e TikTok, la configurazione, i test e come funzionano i pagamenti in ritardo. Per l’idea generale, leggi cos’è il tracciamento server-side.

Come si collega ROASaurus a CCV Shop?

ROASaurus usa tre parti di CCV Shop, tutte descritte nella documentazione API di CCV:

Parte di CCV ShopPer cosa la usa ROASaurus
REST API, con una chiave pubblica e una chiave segretaLegge ogni ordine pagato e le sue righe d’ordine
Webhook per l’evento orders.updated.ispaidCCV segnala un ordine nel momento in cui cambia il suo stato di pagamento
La pagina di conferma dell’ordine, con Vertoshop.jsLo snippet legge lì l’order id e collega l’ordine al visitatore
L’API e il webhook consegnano l’ordine. Lo snippet della pagina di conferma lo collega al clic sull’annuncio.
Ordine segnato come pagatoIn CCV Shop, dopo il pagamento
WebhookCCV invia l’order id, firmato con x-hash
ROASaurusLegge l’ordine e le sue righe con chiamate API firmate
Piattaforme pubblicitariePurchase con event id order-58213
Il percorso dei dati per ogni ordine pagato. ROASaurus controlla che l’ordine sia pagato prima di inviare qualsiasi cosa.

Perché i pixel del browser perdono gli acquisti di CCV Shop?

Un pixel del browser riporta un acquisto solo quando il browser dell’acquirente carica la pagina di conferma dell’ordine e lo script del pixel viene eseguito. Diverse situazioni comuni lo impediscono:

  • L’acquirente paga con un reindirizzamento, per esempio con iDEAL, e chiude la scheda prima che la pagina di conferma si carichi.
  • Un ad blocker o un’impostazione di privacy del browser blocca lo script del pixel.
  • Il visitatore rifiuta i cookie di marketing, quindi il pixel non deve caricarsi.
  • L’ordine viene pagato più tardi, con bonifico bancario o alla consegna, quando non c’è alcun browser coinvolto.

In ogni caso CCV Shop segna comunque l’ordine come pagato. ROASaurus invia quell’ordine dal server, quindi l’acquisto viene riportato qualunque cosa sia successa nel browser. Lo snippet nella pagina di conferma ha un compito diverso: dice a ROASaurus a quale visitatore, e quindi a quale clic sull’annuncio, appartiene l’ordine.

Il webhook dell’ordine pagato e il controllo ogni 5 minuti

Cosa fa Create webhook

Quando premi Create webhook, ROASaurus registra un webhook CCV per l’evento orders.updated.ispaid, che CCV fa scattare quando cambia la proprietà «pagato» di un ordine. L’indirizzo è l’URL del webhook del tuo negozio in ROASaurus, che contiene la tua store key e un token privato. CCV non aggiunge a un webhook nulla che identifichi il negozio, e la sua documentazione consiglia di mettere un identificatore nell’indirizzo. La store key svolge questo compito.

CCV assegna a ogni webhook una propria chiave segreta di 32 caratteri. Quando CCV restituisce quella chiave, ROASaurus la salva e da quel momento ogni invio deve portare un header x-hash valido. Ogni invio deve portare anche il token del tuo negozio. Quando riceve un invio, ROASaurus ignora gli ordini non pagati, legge dall’API l’ordine completo e le sue righe, e invia l’ordine solo quando CCV dice che è pagato.

Chiamate API firmate

CCV richiede che ogni chiamata API sia firmata. ROASaurus invia tre header: x-public con la tua chiave pubblica, x-date con l’ora corrente e x-hash. CCV rifiuta un timestamp che differisce di più di 5 minuti dall’ora del suo server. La tua chiave segreta non viene mai inviata.

Come CCV Shop firma le richieste
API call (ROASaurus → CCV)
x-hash = HMAC-SHA512( public_key|METHOD|uri|body|timestamp , secret_key )

Webhook (CCV → ROASaurus)
x-hash = HMAC-SHA512( address|payload , webhook_key )

Il controllo ogni 5 minuti

Ogni 5 minuti ROASaurus chiede anche a CCV gli ordini pagati creati dall’ultimo controllo, con 30 minuti di sovrapposizione, e registra quelli che non ha ancora. CCV filtra gli ordini solo per data di creazione. Quindi il controllo trova gli ordini pagati poco dopo essere stati effettuati, mentre un ordine pagato giorni dopo arriva a ROASaurus solo tramite il webhook.

CCV considera una risposta 200, 201, 202 o 204 un successo. Tiene aperto un invio e lo ritenta alla successiva occorrenza dopo una risposta 307, 408, 503 o 504, e segna qualsiasi altra risposta come fallita. Aspetta 2 secondi per una connessione e 5 secondi per la risposta.

Come viene collegato un ordine di CCV Shop al clic sull’annuncio?

Per attribuire un annuncio, la piattaforma ha bisogno degli identificatori del clic del visitatore che ha ordinato, come il click id di Meta (fbc) e il click id di TikTok (ttclid). Lo script di ROASaurus li memorizza per ogni visitatore quando arriva da un annuncio. ROASaurus non ottiene quel visitor id dall’ordine CCV, quindi collega gli ordini ai visitatori in altri modi:

MetodoSu CCV ShopCome funziona
1. Snippet della pagina di confermaSìLegge l’order id con Vertoshop.getOrder().getId(), più il totale dell’ordine e la valuta, e fa scattare un acquisto ROASaurus con l’event id order-58213
2. Email precedenteSìUn’email con hash che il visitatore ha lasciato in precedenza sul tuo sito, in un modulo popup o con una chiamata Identify
3. Indirizzo IP e browserNoGli ordini di CCV Shop non includono l’indirizzo IP né il browser dell’acquirente, quindi questo ripiego non ha nulla da confrontare
Sulla maggior parte delle altre piattaforme il ripiego sull’IP intercetta alcuni ordini che lo snippet non vede. Su CCV Shop non può farlo, quindi aggiungi lo snippet.

ROASaurus aspetta un attimo prima di inviare ogni acquisto, così l’evento della pagina di conferma può arrivare per primo, e riprova l’associazione al momento dell’invio. La pagina Orders mostra il risultato per ogni ordine nella colonna Matched by: thank_you, email o not matched.

Un ordine non associato va comunque alle tue piattaforme pubblicitarie con i dati del cliente con hash presi dall’ordine. Non ha identificatori del clic e, poiché gli ordini CCV non portano né indirizzo IP né browser, non ha nemmeno quelli. Questo riduce la quota di eventi che Meta riesce ad associare a una persona; Event Match Quality spiega come Meta la valuta. Nell’attribuzione di ROASaurus, un ordine non associato compare come diretto o sconosciuto.

Cosa arriva a Meta e TikTok da un ordine CCV?

Dati dell’ordine CCVInviato come
idL’event id order-58213 e l’order id
total_price, currencyValore e valuta (EUR quando CCV non fornisce una valuta)
create_dateL’orario dell’evento
Email, cellulare o telefono, nome e cognome del clienteHash con SHA-256
Città di fatturazione, CAP e codice paeseHash con SHA-256
ID clienteID esterno con hash
Righe d’ordine: numero prodotto, product id, quantità, prezzo e nomeProdotti con id, quantità e prezzo
Indirizzo IP e browserNon presenti negli ordini CCV: presi dall’evento della pagina di conferma o dal visitatore associato
Cosa legge ROASaurus da ogni ordine di CCV Shop e come compare nell’evento server.

Meta riceve un Purchase tramite la sua Conversions API, e TikTok un CompletePayment tramite la sua Events API, entrambi con l’event id order-58213. TikTok ora mostra CompletePayment come Purchase nei suoi report. Quando selezioni l’opzione per caricare anche il pixel del browser, lo snippet della pagina di conferma fa scattare gli stessi eventi nel browser con lo stesso event id, e Meta e TikTok ne tengono una sola copia. Gli stessi ordini vanno a Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn e alle altre piattaforme pubblicitarie quando le colleghi. Le conversioni di acquisto di Google Ads vengono inviate solo dal checkout di Shopify, quindi ROASaurus non le invia da CCV Shop.

Come configurare il tracciamento delle conversioni con CCV Shop

  1. Aggiungi il negozio in ROASaurus

    Vai su Add a store, scegli CCV Shop e inserisci l’indirizzo del tuo negozio. La scheda Connection mostra poi il tuo script tag e lo snippet della pagina di conferma.

  2. Trova le tue chiavi API

    In CCV Shop, vai su My webshop › Settings › General › API settings e fai clic su New API key. Se non vedi questa opzione, installa prima l’app API dal CCV App Store.

  3. Aggiungi lo script a ogni pagina

    Incolla lo script tag nell’Header HTML del tuo negozio. Il centro assistenza di CCV lo colloca sotto Mijn webshop › Instellingen › Lay-out › Layout, in fondo alla pagina. Funziona anche un blocco di codice di un’app nell’header.

  4. Aggiungi lo snippet alla pagina di conferma

    Vai su Mijn webshop › Instellingen › Algemeen › Teksten, apri il testo mostrato dopo l’invio di un ordine, passa a Source e incolla lì lo snippet. CCV Shop lo esegue poi nella pagina di conferma dell’ordine.

  5. Collega l’API

    Nella scheda Connection, inserisci la chiave pubblica e la chiave segreta. Compila Shop URL solo se la tua API gira su un dominio diverso da quello del negozio. Salva, premi Test connection, poi Create webhook.

  6. Collega le tue piattaforme pubblicitarie

    In Tracking & platforms, usa Connect with Facebook o Add pixel per Meta, e Add pixel per TikTok. Seleziona l’opzione per caricare anche il pixel del browser.

Consenso

Fuori da Shopify, lo script di ROASaurus legge la scelta del visitatore dagli strumenti per il consenso più comuni: Cookiebot, OneTrust, banner IAB TCF e Google consent mode. Con un altro banner dei cookie, chiama tlq('consent', true) quando il visitatore accetta i cookie di marketing e tlq('consent', false) quando li rifiuta. Finché il visitatore non accetta, non ha alcun visitor id né click id e non scatta alcun pixel del browser. L’ordine pagato viene comunque inviato dal server con i dati del cliente sottoposti ad hash presi dall’ordine. La pagina di aiuto sul consenso spiega i dettagli.

Come si testa il tracciamento delle conversioni con CCV Shop?

  • Apri il tuo negozio con ?roasaurus=connected nell’indirizzo. Un avviso conferma che lo script è in esecuzione. ?roasaurus=debug registra 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 e pagalo, oppure segnalo come pagato. Sotto Collected events, l’Event log dovrebbe mostrare un Purchase con l’order id di CCV nei suoi dati. Se manca, lo snippet della pagina di conferma non è stato eseguito.
  • Nella scheda Connection, Last order received mostra l’ordine e Last sync l’ultimo controllo da 5 minuti, con l’eventuale errore di CCV.
  • Sotto Server deliveries nell’Event log, ogni piattaforma collegata ottiene una riga con lo stato sent e la risposta della piattaforma.
PageView visitor 51c0e9a7Script su ogni pagina
Purchase order-58213Snippet della pagina di conferma
webhook orders.updated.ispaidFirma verificata, ordine pagato
Meta Purchase sentMatched by thank_you
TikTok CompletePayment sentStesso event id, deduplicato
Esempio di un ordine di prova riuscito. Fetch orders now nella scheda Connection esegue subito il controllo da 5 minuti.

Per vedere l’evento in Meta, incolla il codice da Events Manager › Test events nel campo Test event code del tuo pixel Meta in ROASaurus, e rimuovilo quando hai finito.

Pagamenti in ritardo e altri limiti

I bonifici bancari e i pagamenti alla consegna vengono pagati dopo che l’ordine è stato effettuato. Ecco cosa succede a un ordine di esempio con bonifico bancario, dal giorno in cui viene effettuato:

QuandoCosa succedeRisultato
Giorno 0, al checkoutL’ordine viene creato, non pagatoNon inviato: il controllo da 5 minuti richiede solo ordini pagati
Giorno 0, circa 35 minuti dopoL’orario di creazione dell’ordine esce dalla finestra del controlloDa ora in poi, solo il webhook può segnalarlo
Giorno 3Segni l’ordine come pagatoArriva il webhook, ROASaurus lo invia. L’orario dell’evento, il Giorno 0, ha 3 giorni: Meta lo accetta
Giorno 9, inveceSegni l’ordine come pagatoArriva il webhook, ROASaurus lo invia. 9 giorni sono più di 7: Meta lo rifiuta
Cronologia illustrativa. L’orario dell’evento è la data di creazione dell’ordine, e Meta accetta gli eventi server fino a 7 giorni dopo l’orario dell’evento.
  • Pagamento alla consegna. ROASaurus invia questi ordini quando CCV li segna come pagati, di solito dopo la consegna. Vedi il tracciamento con pagamento alla consegna per sapere quando conteggiare questi ordini.
  • Acquisti del browser prima del pagamento. Lo snippet della pagina di conferma viene eseguito quando l’ordine è effettuato, quindi i pixel del browser riportano un ordine con bonifico bancario prima che sia pagato. Se il pagamento arriva dopo più di 48 ore, Meta e TikTok non riescono a unire le copie del browser e del server.
  • Nessun ripiego sull’IP. Aggiungi lo snippet della pagina di conferma e, dove puoi, raccogli le email prima sul tuo sito.
  • Annullamenti e rimborsi non vengono inviati. Una volta inviato, un acquisto resta nella piattaforma pubblicitaria.
  • Solo visualizzazioni di pagina, senza codice. Le visualizzazioni di prodotto e le aggiunte al carrello vengono rilevate automaticamente solo su Shopify. Su CCV Shop, uno sviluppatore può inviarle con una chiamata di tracciamento tlq.

La pagina di integrazione con CCV Shop riunisce in un unico posto i dati sulla connessione, e la pagina di aiuto per gli altri negozi online confronta CCV Shop con le altre piattaforme a cui si collega ROASaurus, come Lightspeed.

Fonti

  1. CCV Shop: API Documentatie
  2. CCV: Webshop API
  3. Meta for Developers: Server Event Parameters
  4. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  5. TikTok Ads Manager: About Event Deduplication

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

Dove trovo le chiavi API di CCV Shop?

In My webshop › Settings › General › API settings. Se quella pagina manca, installa prima l’app API dal CCV App Store.

Cosa fa lo snippet della pagina di successo dell’ordine?

Legge l’order id con Vertoshop.getOrder().getId(), più il totale dell’ordine e la valuta, e fa scattare l’acquisto ROASaurus con quell’id. ROASaurus lo usa per collegare l’ordine al visitatore e al suo clic sull’annuncio.

Perché ROASaurus non può associare gli ordini CCV tramite l’indirizzo IP?

Gli ordini di CCV Shop non includono l’indirizzo IP né il browser dell’acquirente. Senza lo snippet o un’email che il visitatore ha lasciato in precedenza sul sito, un ordine resta non associato.

Gli ordini pagati giorni dopo vengono comunque inviati?

Sì, tramite il webhook dell’ordine pagato. Il controllo da 5 minuti guarda solo gli ordini creati di recente, quindi tieni attivo il webhook. Meta rifiuta gli eventi arrivati oltre 7 giorni dopo la creazione dell’ordine.

Come usa ROASaurus la mia chiave segreta di CCV Shop?

ROASaurus conserva la chiave segreta cifrata e la usa solo per firmare ogni chiamata API con HMAC-SHA512, come richiede CCV. La chiave in sé non viene mai inviata a CCV, solo la firma.

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 →