- Tracking-ul conversiilor în CCV Shop este cel mai complet când fiecare comandă plătită este trimisă de pe server, din datele comenzii din CCV, cu un snippet pe pagina de succes a comenzii care leagă comanda de click-ul pe reclamă.
- Un singur click pe Create webhook face ca CCV Shop să raporteze fiecare comandă în momentul în care este marcată ca plătită, iar fiecare livrare trebuie să poarte tokenul privat al magazinului tău.
- Comenzile CCV Shop nu includ adresa IP a cumpărătorului, așa că snippetul de pe pagina de succes a comenzii contează mai mult în CCV Shop decât pe majoritatea platformelor.
- Verificarea la 5 minute analizează doar comenzile create recent, așa că comenzile plătite după zile depind de webhook: păstrează-l activ.
- Meta respinge evenimentele de pe server la mai mult de 7 zile după crearea comenzii, așa că un transfer bancar foarte întârziat nu ajunge la Meta.
Tracking-ul conversiilor în CCV Shop înseamnă raportarea fiecărei comenzi plătite din magazinul tău online CCV Shop către platforme de publicitate precum Meta și TikTok, astfel încât acestea să atribuie creditul reclamelor potrivite și să optimizeze pe vânzări reale. Cea mai completă metodă este să trimiți fiecare achiziție de pe server, din datele comenzii din CCV, și să adaugi un snippet scurt pe pagina de succes a comenzii, care leagă comanda de click-ul pe reclamă.
CCV Shop este o platformă de magazine online găzduită, de la compania olandeză CCV, care spune că are 17,000 de magazine online. Acest ghid explică cum se conectează ROASaurus la ea, cum sunt legate comenzile de click-urile pe reclame, ce ajunge la Meta și TikTok, configurarea, testarea și cum funcționează plățile întârziate. Pentru ideea generală, citește ce este tracking-ul server-side.
Cum se conectează ROASaurus la CCV Shop?
ROASaurus folosește trei componente din CCV Shop, toate descrise în documentația API a CCV:
| Componenta CCV Shop | Pentru ce o folosește ROASaurus |
|---|---|
| REST API, cu o cheie publică și o cheie secretă | Citește fiecare comandă plătită și liniile ei de comandă |
Webhook pentru evenimentul orders.updated.ispaid | CCV raportează o comandă în momentul în care se schimbă statusul ei de plată |
Pagina de succes a comenzii, cu Vertoshop.js | Snippetul citește acolo id-ul comenzii și leagă comanda de vizitator |
De ce pierd pixelii din browser achizițiile din CCV Shop?
Un pixel din browser raportează o achiziție doar atunci când browserul cumpărătorului încarcă pagina de succes a comenzii și scriptul pixelului rulează. Mai multe situații frecvente împiedică asta:
- Cumpărătorul plătește prin redirecționare, de exemplu cu iDEAL, și închide fila înainte să se încarce pagina de succes.
- Un blocant de reclame sau o setare de confidențialitate a browserului blochează scriptul pixelului.
- Vizitatorul refuză cookie-urile de marketing, deci pixelul nu trebuie să se încarce.
- Comanda este plătită mai târziu, prin transfer bancar sau la livrare, când niciun browser nu este implicat.
În fiecare caz, CCV Shop marchează totuși comanda ca plătită. ROASaurus trimite acea comandă de pe server, așa că achiziția este raportată indiferent ce s-a întâmplat în browser. Snippetul de pe pagina de succes are o altă sarcină: îi spune ROASaurus cărui vizitator, și deci cărui click pe reclamă, îi aparține comanda.
Webhook-ul de comandă plătită și verificarea la 5 minute
Ce face Create webhook
Când apeși Create webhook, ROASaurus înregistrează un webhook CCV pentru evenimentul orders.updated.ispaid, pe care CCV îl declanșează atunci când se schimbă proprietatea de plată a unei comenzi. Adresa este URL-ul de webhook al magazinului tău din ROASaurus, care conține cheia magazinului și un token privat. CCV nu adaugă nimic în webhook care să identifice magazinul, iar documentația sa recomandă să pui un identificator în adresă. Cheia magazinului face asta.
CCV dă fiecărui webhook propria cheie secretă de 32 de caractere. Când CCV returnează acea cheie, ROASaurus o salvează și, din acel moment, fiecare livrare trebuie să poarte un antet x-hash valid. Fiecare livrare trebuie să poarte și tokenul magazinului tău. Când ROASaurus primește o livrare, ignoră comenzile care nu sunt plătite, citește comanda completă și liniile ei de comandă din API și trimite comanda doar atunci când CCV spune că este plătită.
Apeluri API semnate
CCV cere ca fiecare apel API să fie semnat. ROASaurus trimite trei anteturi: x-public cu cheia ta publică, x-date cu ora curentă și x-hash. CCV respinge un timestamp care diferă cu mai mult de 5 minute de ora serverului său. Cheia ta secretă în sine nu este trimisă niciodată.
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 )
Verificarea la 5 minute
La fiecare 5 minute, ROASaurus cere de asemenea de la CCV comenzile plătite create de la ultima verificare, cu 30 de minute de suprapunere, și le înregistrează pe cele pe care nu le are încă. CCV filtrează comenzile doar după data creării. Așadar, verificarea găsește comenzile plătite la scurt timp după plasare, iar o comandă plătită după zile ajunge la ROASaurus doar prin webhook.
CCV consideră un răspuns 200, 201, 202 sau 204 drept succes. Păstrează o livrare deschisă și o reîncearcă la următoarea apariție după un răspuns 307, 408, 503 sau 504, iar orice alt răspuns îl marchează ca eșuat. Așteaptă 2 secunde pentru o conexiune și 5 secunde pentru răspuns.
Cum este legată o comandă CCV Shop de click-ul pe reclamă?
Ca să atribuie creditul unei reclame, platforma are nevoie de identificatorii de click ai vizitatorului care a comandat, cum ar fi click id-ul Meta (fbc) și click id-ul TikTok (ttclid). Scriptul ROASaurus le stochează pentru fiecare vizitator când acesta ajunge pe site dintr-o reclamă. ROASaurus nu primește acel id de vizitator din comanda CCV, așa că leagă comenzile de vizitatori în alte moduri:
| Metodă | Pe CCV Shop | Cum funcționează |
|---|---|---|
| 1. Snippetul de pe pagina de succes a comenzii | Da | Citește id-ul comenzii cu Vertoshop.getOrder().getId(), plus totalul comenzii și moneda, și declanșează o achiziție ROASaurus cu event id-ul order-58213 |
| 2. Email anterior | Da | Un email cu hash pe care vizitatorul l-a dat mai devreme pe site-ul tău, într-un formular popup sau printr-un apel Identify |
| 3. Adresa IP și browserul | Nu | Comenzile CCV Shop nu includ adresa IP sau browserul cumpărătorului, așa că această variantă de rezervă nu are cu ce compara |
ROASaurus așteaptă scurt înainte să trimită fiecare achiziție, astfel încât evenimentul de pe pagina de succes să poată ajunge primul, și încearcă din nou asocierea în momentul trimiterii. Pagina Orders arată rezultatul pentru fiecare comandă în coloana Matched by: thank_you, email sau not matched.
O comandă neasociată ajunge totuși la platformele tale de publicitate, cu datele de client cu hash din comandă. Nu are identificatori de click, iar pentru că comenzile CCV nu conțin adresă IP sau browser, nu are nici pe acestea. Asta scade ponderea evenimentelor pe care Meta le poate asocia cu o persoană; Event Match Quality explică cum notează Meta acest lucru. În atribuirea ROASaurus, o comandă neasociată apare ca directă sau necunoscută.
Ce ajunge la Meta și TikTok dintr-o comandă CCV?
| Datele comenzii CCV | Trimis ca |
|---|---|
id | Event id-ul order-58213 și id-ul comenzii |
total_price, currency | Valoare și monedă (EUR când CCV nu furnizează moneda) |
create_date | Ora evenimentului |
| Emailul clientului, numărul de mobil sau de telefon, prenumele și numele | Cu hash SHA-256 |
| Orașul de facturare, codul poștal și codul țării | Cu hash SHA-256 |
| Id client | Id extern cu hash |
| Liniile comenzii: numărul produsului, id-ul produsului, cantitatea, prețul și numele | Produse cu id, cantitate și preț |
| Adresa IP și browserul | Nu există în comenzile CCV: preluate din evenimentul de pe pagina de succes sau de la vizitatorul asociat |
Meta primește un Purchase prin Conversions API, iar TikTok un CompletePayment prin Events API, ambele cu event id-ul order-58213. TikTok afișează acum CompletePayment ca Purchase în rapoartele sale. Când bifezi opțiunea de a încărca și pixelul din browser, snippetul de pe pagina de succes declanșează aceleași evenimente în browser, cu același event id, iar Meta și TikTok păstrează o singură copie. Aceleași comenzi ajung la Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn și la celelalte platforme de publicitate când le conectezi. Conversiile de achiziție Google Ads sunt trimise doar din checkout-ul Shopify, așa că ROASaurus nu le trimite din CCV Shop.
Cum configurezi tracking-ul conversiilor în CCV Shop
- Adaugă magazinul în ROASaurus
Mergi la Add a store, alege CCV Shop și introdu adresa magazinului tău. Fila Connection îți arată apoi tag-ul de script și snippetul pentru pagina de succes.
- Găsește-ți cheile API
În CCV Shop, mergi la My webshop › Settings › General › API settings și apasă New API key. Dacă nu vezi această opțiune, instalează mai întâi aplicația API din CCV App Store.
- Adaugă scriptul pe fiecare pagină
Lipește tag-ul de script în Header HTML al magazinului tău. Centrul de ajutor CCV îl plasează la Mijn webshop › Instellingen › Lay-out › Layout, în partea de jos a paginii. Un bloc de cod de aplicație în header funcționează de asemenea.
- Adaugă snippetul pe pagina de succes
Mergi la Mijn webshop › Instellingen › Algemeen › Teksten, deschide textul afișat după plasarea unei comenzi, treci la Source și lipește acolo snippet-ul. CCV Shop îl rulează apoi pe pagina de confirmare a comenzii.
- Conectează API-ul
În fila Connection, introdu cheia publică și cheia secretă. Completează Shop URL doar dacă API-ul tău rulează pe alt domeniu decât magazinul tău. Salvează, apasă Test connection, apoi Create webhook.
- Conectează-ți platformele de publicitate
La Tracking & platforms, folosește Connect with Facebook sau Add pixel pentru Meta și Add pixel pentru TikTok. Bifează opțiunea de a încărca și pixelul din browser.
Consimțământ
În afara Shopify, scriptul ROASaurus citește alegerea vizitatorului din instrumentele de consimțământ uzuale: Cookiebot, OneTrust, bannere IAB TCF și Google consent mode. Cu un alt banner de cookie-uri, apelează tlq('consent', true) când vizitatorul acceptă cookie-urile de marketing și tlq('consent', false) când le refuză. Până când vizitatorul acceptă, nu are id de vizitator sau click id și nu se declanșează niciun pixel din browser. Comanda plătită este în continuare trimisă de pe server, cu datele clientului cu hash din comandă. Pagina de ajutor despre consimțământ explică detaliile.
Cum testezi tracking-ul conversiilor în CCV Shop?
- Deschide magazinul tău cu
?roasaurus=connectedîn adresă. O alertă confirmă că scriptul rulează.?roasaurus=debugînregistrează î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ă și plătește-o sau marcheaz-o ca plătită. În Collected events, Event log ar trebui să afișeze un Purchase cu id-ul comenzii CCV în date. Dacă lipsește, snippetul de pe pagina de succes nu a rulat.
- În fila Connection, Last order received arată comanda, iar Last sync ultima verificare la 5 minute, împreună cu orice eroare de la CCV.
- În Server deliveries din Event log, fiecare platformă conectată primește o linie cu statusul sent și răspunsul platformei.
PageView visitor 51c0e9a7Script pe fiecare paginăPurchase order-58213Snippet pe pagina de succes a comenziiwebhook orders.updated.ispaidSemnătură verificată, comandă plătităMeta Purchase sentMatched by thank_youTikTok 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 și elimină-l când ai terminat.
Plățile întârziate și alte limite
Transferurile bancare și plata ramburs se plătesc după plasarea comenzii. Iată ce se întâmplă cu o comandă exemplu plătită prin transfer bancar, din ziua în care este plasată:
| Când | Ce se întâmplă | Rezultat |
|---|---|---|
| Ziua 0, la checkout | Comanda este creată, nu plătită | Netrimisă: verificarea la 5 minute cere doar comenzi plătite |
| Ziua 0, după aproximativ 35 de minute | Ora creării comenzii iese din fereastra de verificare | De acum încolo, doar webhook-ul o poate raporta |
| Ziua 3 | Marchezi comanda ca plătită | Webhook-ul sosește, ROASaurus trimite comanda. Ora evenimentului, ziua 0, este veche de 3 zile: Meta o acceptă |
| Ziua 9, în schimb | Marchezi comanda ca plătită | Webhook-ul sosește, ROASaurus trimite comanda. 9 zile înseamnă mai mult de 7: Meta o respinge |
- Plata ramburs. ROASaurus trimite aceste comenzi când CCV le marchează ca plătite, de obicei după livrare. Vezi tracking-ul pentru plata ramburs pentru a afla când să numeri astfel de comenzi.
- Achiziții din browser înainte de plată. Snippetul de pe pagina de succes rulează când comanda este plasată, așa că pixelii din browser raportează o comandă cu transfer bancar înainte să fie plătită. Dacă plata vine la mai mult de 48 de ore după aceea, Meta și TikTok nu mai pot îmbina copiile din browser și de pe server.
- Fără variantă de rezervă pe IP. Adaugă snippetul de pe pagina de succes și captează emailurile mai devreme pe site-ul tău, acolo unde poți.
- Anulările și rambursările nu sunt trimise. Odată trimisă, o achiziție rămâne în platforma de publicitate.
- Doar vizualizări de pagină, fără cod. Vizualizările de produs și adăugările în coș sunt detectate automat doar pe Shopify. Pe CCV Shop, un dezvoltator le poate trimite printr-un apel de track
tlq.
Pagina integrării CCV Shop listează faptele despre conexiune într-un singur loc, iar pagina de ajutor pentru alte magazine online compară CCV Shop cu celelalte platforme la care se conectează ROASaurus, precum Lightspeed.
Surse
- CCV Shop: API Documentatie
- CCV: Webshop API
- Meta for Developers: Server Event Parameters
- Meta for Developers: Handling Duplicate Pixel and Conversions API Events
- TikTok Ads Manager: About Event Deduplication
În ROASaurus
- Integrarea CCV Shop
- Ajutor: Wix, Lightspeed și alte magazine online
- Tracking server-side
- Integrare Meta