- Konverteringstracking for CCV Shop er mest komplett når hver betalte bestilling sendes fra CCVs bestillingsdata på serveren, med en snippet på bestillingsbekreftelsessiden som kobler bestillingen til annonseklikket.
- Ett klikk på Create webhook får CCV Shop til å rapportere hver bestilling i det øyeblikket den markeres som betalt, og hver levering må bære det private tokenet til butikken din.
- CCV Shop-bestillinger inneholder ikke kjøperens IP-adresse, så snippeten på bestillingsbekreftelsessiden betyr mer i CCV Shop enn på de fleste plattformer.
- Sjekken hvert 5. minutt ser bare på nylig opprettede bestillinger, så bestillinger som betales dager senere er avhengige av webhooken: hold den aktiv.
- Meta avviser server-events mer enn 7 dager etter at bestillingen ble opprettet, så en svært sen bankoverføring når ikke Meta.
Konverteringstracking for CCV Shop betyr å rapportere hver betalte bestilling i CCV Shop-nettbutikken din til annonseplattformer som Meta og TikTok, slik at de krediterer de riktige annonsene og optimaliserer på reelt salg. Den mest komplette måten er å sende hvert kjøp fra CCVs bestillingsdata på serveren, og å legge til en kort snippet på bestillingsbekreftelsessiden som kobler bestillingen til annonseklikket.
CCV Shop er en hostet nettbutikkplattform fra det nederlandske selskapet CCV, som sier det driver 17,000 nettbutikker. Denne guiden forklarer hvordan ROASaurus kobler seg til den, hvordan bestillinger knyttes til annonseklikk, hva som når Meta og TikTok, oppsettet, testingen og hvordan sene betalinger fungerer. For den generelle ideen, les hva server-side tracking er.
Hvordan kobler ROASaurus seg til CCV Shop?
ROASaurus bruker tre deler av CCV Shop, alle beskrevet i CCVs API-dokumentasjon:
| Del av CCV Shop | Hva ROASaurus bruker den til |
|---|---|
| REST API, med en offentlig nøkkel og en hemmelig nøkkel | Leser hver betalte bestilling og bestillingslinjene |
Webhook for eventen orders.updated.ispaid | CCV melder en bestilling i det øyeblikket betalingsstatusen endres |
Bestillingsbekreftelsessiden, med Vertoshop.js | Snippeten leser bestillings-ID-en der og kobler bestillingen til den besøkende |
Hvorfor går nettleserpixler glipp av kjøp i CCV Shop?
En nettleserpixel rapporterer et kjøp bare når kjøperens nettleser laster bestillingsbekreftelsessiden og pixelskriptet kjører. Flere vanlige situasjoner ødelegger det:
- Kjøperen betaler via omdirigering, for eksempel med iDEAL, og lukker fanen før bekreftelsessiden lastes.
- En annonseblokkerer eller en personverninnstilling i nettleseren blokkerer pixelskriptet.
- Den besøkende avslår markedsføringscookies, så pixelen må ikke lastes.
- Bestillingen betales senere, med bankoverføring eller ved levering, når ingen nettleser er involvert.
I hvert tilfelle markerer CCV Shop fortsatt bestillingen som betalt. ROASaurus sender den bestillingen fra serveren, så kjøpet rapporteres uansett hva som skjedde i nettleseren. Snippeten på bekreftelsessiden har en annen jobb: den forteller ROASaurus hvilken besøkende, og dermed hvilket annonseklikk, bestillingen tilhører.
Webhooken for betalt bestilling og sjekken hvert 5. minutt
Hva Create webhook gjør
Når du trykker på Create webhook, registrerer ROASaurus en CCV-webhook for eventen orders.updated.ispaid, som CCV utløser når en bestillings paid-egenskap endres. Adressen er butikkens webhook-URL i ROASaurus, som inneholder butikknøkkelen din og et privat token. CCV legger ikke til noe i en webhook som identifiserer butikken, og dokumentasjonen anbefaler å legge en identifikator i adressen. Butikknøkkelen gjør det.
CCV gir hver webhook sin egen hemmelige nøkkel på 32 tegn. Når CCV returnerer den nøkkelen, lagrer ROASaurus den, og fra da av må hver leveranse ha en gyldig x-hash-header. Hver leveranse må også bære butikkens token. Når ROASaurus mottar en leveranse, ignorerer den bestillinger som ikke er betalt, leser hele bestillingen og bestillingslinjene fra API-et, og sender bestillingen bare når CCV sier at den er betalt.
Signerte API-kall
CCV krever at hvert API-kall signeres. ROASaurus sender tre headere: x-public med den offentlige nøkkelen din, x-date med gjeldende tid og x-hash. CCV avviser et tidsstempel som avviker mer enn 5 minutter fra serverens tid. Selve hemmelige nøkkelen din blir aldri sendt.
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 )
5-minuttersjekken
Hvert 5. minutt spør ROASaurus også CCV om betalte bestillinger opprettet siden forrige sjekk, med 30 minutters overlapp, og registrerer de den ikke har ennå. CCV filtrerer bestillinger kun på opprettelsesdato. Sjekken finner derfor bestillinger som betales kort tid etter at de er lagt inn, og en bestilling som betales dager senere når bare ROASaurus gjennom webhooken.
CCV regner et svar med 200, 201, 202 eller 204 som vellykket. Det holder en leveranse åpen og prøver den på nytt ved neste forekomst etter et svar med 307, 408, 503 eller 504, og markerer alle andre svar som mislykket. Det venter 2 sekunder på en tilkobling og 5 sekunder på svaret.
Hvordan kobles en CCV Shop-bestilling til annonseklikket?
For å kreditere en annonse trenger plattformen click id-ene til den besøkende som bestilte, som Meta click id (fbc) og TikTok click id (ttclid). ROASaurus-skriptet lagrer dem for hver besøkende når de lander fra en annonse. ROASaurus får ikke den besøks-ID-en fra CCV-bestillingen, så det kobler bestillinger til besøkende på andre måter:
| Metode | På CCV Shop | Slik fungerer det |
|---|---|---|
| 1. Snippet på bestillingsbekreftelsessiden | Ja | Den leser bestillings-ID-en med Vertoshop.getOrder().getId(), pluss bestillingens totalbeløp og valuta, og utløser et ROASaurus-kjøp med event-ID-en order-58213 |
| 2. Tidligere e-post | Ja | En hashet e-postadresse den besøkende oppga tidligere på nettstedet ditt, i et popup-skjema eller gjennom et Identify-kall |
| 3. IP-adresse og nettleser | Nei | CCV Shop-bestillinger inneholder ikke kjøperens IP-adresse eller nettleser, så denne reserveløsningen har ingenting å sammenligne |
ROASaurus venter kort før hvert kjøp sendes, så eventen fra bekreftelsessiden kan komme først, og den prøver matchingen på nytt ved sendetidspunktet. Siden Orders viser resultatet per bestilling i kolonnen Matched by: thank_you, email eller not matched.
En bestilling som ikke blir matchet, går likevel til annonseplattformene dine med hashede kundedata fra bestillingen. Den har ingen click id-er, og siden CCV-bestillinger ikke har IP-adresse eller nettleser, har den heller ingen av dem. Det senker andelen events Meta kan koble til en person; Event Match Quality forklarer hvordan Meta scorer dette. I ROASaurus-attribusjonen vises en ikke-matchet bestilling som direkte eller ukjent.
Hva når Meta og TikTok fra en CCV-bestilling?
| CCV-bestillingsdata | Sendt som |
|---|---|
id | Event-ID-en order-58213 og bestillings-ID-en |
total_price, currency | Verdi og valuta (EUR når CCV ikke oppgir valuta) |
create_date | Eventtidspunktet |
| Kundens e-post, mobil- eller telefonnummer, fornavn og etternavn | Hashet med SHA-256 |
| Fakturaby, postnummer og landskode | Hashet med SHA-256 |
| Kunde-ID | Hashet ekstern ID |
| Bestillingslinjer: produktnummer, produkt-ID, antall, pris og navn | Produkter med ID, antall og pris |
| IP-adresse og nettleser | Ikke i CCV-bestillinger: hentes fra eventen på bekreftelsessiden eller den matchede besøkende |
Meta mottar en Purchase gjennom Conversions API, og TikTok en CompletePayment gjennom Events API, begge med event-ID-en order-58213. TikTok viser nå CompletePayment som Purchase i rapportene sine. Når du krysser av for å også laste nettleserpixelen, utløser snippeten på bekreftelsessiden de samme eventene i nettleseren med samme event-ID, og Meta og TikTok beholder én kopi. De samme bestillingene går til Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn og de andre annonseplattformene når du kobler dem til. Kjøpskonverteringer i Google Ads sendes bare fra Shopify checkout, så ROASaurus sender dem ikke fra CCV Shop.
Slik setter du opp konverteringstracking for CCV Shop
- Legg til butikken i ROASaurus
Gå til Add a store, velg CCV Shop og skriv inn butikkadressen din. Fanen Connection viser da script-taggen din og snippeten for bekreftelsessiden.
- Finn API-nøklene dine
I CCV Shop går du til My webshop › Settings › General › API settings og klikker på New API key. Hvis du ikke ser det, installerer du først API-appen fra CCV App Store.
- Legg skriptet til på hver side
Lim inn script-taggen i Header HTML i butikken din. CCVs hjelpesenter plasserer den under Mijn webshop › Instellingen › Lay-out › Layout, nederst på siden. En appkodeblokk i headeren fungerer også.
- Legg snippeten til på bekreftelsessiden
Gå til Mijn webshop › Instellingen › Algemeen › Teksten, åpne teksten som vises etter at en bestilling er lagt inn, bytt til Source og lim inn kodesnutten der. CCV Shop kjører den deretter på bekreftelsessiden for bestillingen.
- Koble til API-et
På fanen Connection skriver du inn den offentlige nøkkelen og den hemmelige nøkkelen. Fyll bare ut Shop URL når API-et ditt kjører på et annet domene enn butikken. Lagre, trykk Test connection, og deretter Create webhook.
- Koble til annonseplattformene dine
Under Tracking & platforms bruker du Connect with Facebook eller Add pixel for Meta, og Add pixel for TikTok. Kryss av for å også laste nettleserpixelen.
Samtykke
Utenfor Shopify leser ROASaurus-skriptet valget til den besøkende fra vanlige samtykkeverktøy: Cookiebot, OneTrust, IAB TCF-bannere og Google consent mode. Med et annet cookie-banner kaller du tlq('consent', true) når den besøkende godtar markedsføringscookies, og tlq('consent', false) når de avslår. Inntil den besøkende godtar, har de ingen besøks-ID eller click id-er, og ingen nettleserpixler utløses. Den betalte bestillingen sendes likevel fra serveren med hashede kundedata fra bestillingen. Hjelpesiden om samtykke forklarer detaljene.
Hvordan tester du konverteringstracking for CCV Shop?
- Åpne butikken din med
?roasaurus=connectedi adressen. Et varsel bekrefter at skriptet kjører.?roasaurus=debuglogger det det sender til nettleserkonsollen. - I Event log, under Collected events, skal sidevisninger vise en besøks-ID.
- Legg inn en bestilling og betal den, eller marker den som betalt. Under Collected events skal Event log vise en Purchase med CCV-bestillings-ID-en i dataene. Hvis den mangler, kjørte ikke snippeten på bekreftelsessiden.
- På fanen Connection viser Last order received bestillingen og Last sync den siste sjekken hvert 5. minutt, med eventuelle feil fra CCV.
- Under Server deliveries i Event log får hver tilkoblede plattform en linje med statusen sent og plattformens svar.
PageView visitor 51c0e9a7Skript på hver sidePurchase order-58213Snippet på bestillingsbekreftelsessidenwebhook orders.updated.ispaidSignatur sjekket, bestilling betaltMeta Purchase sentMatched by thank_youTikTok CompletePayment sentSamme event-ID, deduplisertFor å se eventen i Meta limer du inn koden fra Events Manager › Test events i feltet Test event code på Meta-pixelen din i ROASaurus, og fjerner den når du er ferdig.
Sene betalinger og andre begrensninger
Bankoverføringer og betaling ved levering betales etter at bestillingen er lagt inn. Her er hva som skjer med en eksempelbestilling med bankoverføring, fra dagen den legges inn:
| Når | Hva skjer | Resultat |
|---|---|---|
| Dag 0, i checkout | Bestillingen opprettes, ikke betalt | Ikke sendt: sjekken hvert 5. minutt ber bare om betalte bestillinger |
| Dag 0, omtrent 35 minutter senere | Bestillingens opprettelsestidspunkt faller utenfor sjekkvinduet | Fra nå av kan bare webhooken melde den |
| Dag 3 | Du markerer bestillingen som betalt | Webhooken kommer, ROASaurus sender den. Eventtidspunktet dag 0 er 3 dager gammelt: Meta godtar den |
| Dag 9, i stedet | Du markerer bestillingen som betalt | Webhooken kommer, ROASaurus sender den. 9 dager er mer enn 7: Meta avviser den |
- Betaling ved levering. ROASaurus sender disse bestillingene når CCV markerer dem som betalt, vanligvis etter levering. Se sporing av betaling ved levering for når du bør telle slike bestillinger.
- Kjøp i nettleseren før betaling. Snippeten på bekreftelsessiden kjører når bestillingen legges inn, så nettleserpixlene rapporterer en bestilling med bankoverføring før den er betalt. Hvis betalingen kommer mer enn 48 timer senere, kan ikke Meta og TikTok slå sammen nettleser- og serverkopiene.
- Ingen IP-reserveløsning. Legg til snippeten på bekreftelsessiden, og fang opp e-postadresser tidligere på nettstedet ditt der du kan.
- Kanselleringer og refusjoner sendes ikke. Når et kjøp først er sendt, blir det stående i annonseplattformen.
- Bare sidevisninger, uten kode. Produktvisninger og produkter lagt i handlekurven oppdages automatisk bare på Shopify. På CCV Shop kan en utvikler sende dem med et
tlqtrack-kall.
Integrasjonssiden for CCV Shop lister tilkoblingsfaktaene samlet på ett sted, og hjelpesiden for andre nettbutikker sammenligner CCV Shop med de andre plattformene ROASaurus kobler til, som Lightspeed.
Kilder
- 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
I ROASaurus
- CCV Shop-integrasjon
- Hjelp: Wix, Lightspeed og andre nettbutikker
- Server-side tracking
- Meta-integrasjon