- Konverteringstracking i CCV Shop er mest komplet, når hver betalt ordre sendes fra CCV's ordredata på serveren, med et snippet på ordrebekræftelsessiden, der knytter ordren til annonceklikket.
- Ét klik på Create webhook får CCV Shop til at melde hver ordre i det øjeblik, den markeres som betalt, og hver levering skal bære din shops private token.
- Ordrer fra CCV Shop indeholder ikke shopperens IP-adresse, så snippetten på ordrebekræftelsessiden betyder mere på CCV Shop end på de fleste platforme.
- 5-minutterstjekket ser kun på nyligt oprettede ordrer, så ordrer, der betales dage senere, afhænger af webhooken: Hold den aktiv.
- Meta afviser server-events, der kommer mere end 7 dage efter, at ordren blev oprettet, så en meget sen bankoverførsel når ikke frem til Meta.
Konverteringstracking i CCV Shop betyder, at hver betalt ordre i din CCV Shop-webshop meldes til annonceplatforme som Meta og TikTok, så de krediterer de rigtige annoncer og optimerer på reelle salg. Den mest komplette måde er at sende hvert køb fra CCV's ordredata på serveren og tilføje et kort snippet til ordrebekræftelsessiden, der knytter ordren til annonceklikket.
CCV Shop er en hosted webshopplatform fra det nederlandske firma CCV, som oplyser, at det driver 17,000 webshops. Denne guide forklarer, hvordan ROASaurus forbinder til den, hvordan ordrer knyttes til annonceklik, hvad der når frem til Meta og TikTok, opsætningen, test, og hvordan sene betalinger fungerer. For den generelle idé kan du læse hvad server-side tracking er.
Hvordan forbinder ROASaurus til CCV Shop?
ROASaurus bruger tre dele af CCV Shop, som alle er beskrevet i CCV's API-dokumentation:
| Del af CCV Shop | Hvad ROASaurus bruger den til |
|---|---|
| REST API med en offentlig nøgle og en hemmelig nøgle | Læser hver betalt ordre og dens ordrelinjer |
Webhook til eventet orders.updated.ispaid | CCV melder en ordre i det øjeblik, dens betalingsstatus ændres |
Ordrebekræftelsessiden med Vertoshop.js | Snippetten læser ordre-id'et dér og knytter ordren til den besøgende |
Hvorfor overser browserpixels køb i CCV Shop?
En browserpixel rapporterer kun et køb, når shopperens browser indlæser ordrebekræftelsessiden, og pixel-scriptet kører. Flere almindelige situationer bryder det:
- Shopperen betaler via omdirigering, for eksempel med iDEAL, og lukker fanen, før bekræftelsessiden indlæses.
- En adblocker eller en privatlivsindstilling i browseren blokerer pixel-scriptet.
- Den besøgende afviser marketingcookies, så pixelen ikke må indlæses.
- Ordren betales senere, via bankoverførsel eller ved levering, når der ikke er nogen browser involveret.
I hvert tilfælde markerer CCV Shop stadig ordren som betalt. ROASaurus sender den ordre fra serveren, så købet bliver rapporteret, uanset hvad der skete i browseren. Snippetten på bekræftelsessiden har et andet job: Den fortæller ROASaurus, hvilken besøgende og dermed hvilket annonceklik ordren hører til.
Webhooken for betalt ordre og 5-minutterstjekket
Hvad Create webhook gør
Når du trykker på Create webhook, registrerer ROASaurus en CCV-webhook til eventet orders.updated.ispaid, som CCV udløser, når en ordres betalt-egenskab ændres. Adressen er din shops webhook-URL i ROASaurus, som indeholder din shopnøgle og en privat token. CCV tilføjer intet til en webhook, der identificerer shoppen, og dets dokumentation anbefaler at lægge en identifikator i adressen. Det gør shopnøglen.
CCV giver hver webhook sin egen hemmelige nøgle på 32 tegn. Når CCV returnerer nøglen, gemmer ROASaurus den, og derefter skal hver levering have en gyldig header x-hash. Hver levering skal også bære din shops token. Når ROASaurus modtager en levering, ignorerer den ordrer, der ikke er betalt, læser hele ordren og dens ordrelinjer fra API'et og sender kun ordren, når CCV siger, at den er betalt.
Signerede API-kald
CCV kræver, at hvert API-kald er signeret. ROASaurus sender tre headers: x-public med din offentlige nøgle, x-date med det aktuelle tidspunkt og x-hash. CCV afviser et tidsstempel, der afviger mere end 5 minutter fra dets servertid. Din hemmelige nøgle sendes aldrig selv.
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 )
Kontrollen hvert 5. minut
Hvert 5. minut spørger ROASaurus også CCV om betalte ordrer, der er oprettet siden sidste tjek, med 30 minutters overlap, og registrerer dem, den ikke har endnu. CCV filtrerer kun ordrer efter oprettelsesdato. Tjekket finder derfor ordrer, der betales kort efter, de er afgivet, og en ordre, der betales dage senere, når kun ROASaurus via webhooken.
CCV regner et svar med 200, 201, 202 eller 204 som en succes. Det holder en levering åben og prøver den igen ved næste forekomst efter et svar med 307, 408, 503 eller 504, og markerer ethvert andet svar som mislykket. Det venter 2 sekunder på en forbindelse og 5 sekunder på svaret.
Hvordan knyttes en CCV Shop-ordre til annonceklikket?
For at kreditere en annonce har platformen brug for klik-id'erne fra den besøgende, der bestilte, f.eks. Metas klik-id (fbc) og TikToks klik-id (ttclid). ROASaurus-scriptet gemmer dem for hver besøgende, når vedkommende lander fra en annonce. ROASaurus får ikke det besøgs-id fra CCV-ordren, så den knytter ordrer til besøgende på andre måder:
| Metode | I CCV Shop | Sådan virker det |
|---|---|---|
| 1. Snippet på bekræftelsessiden | Ja | Den læser ordre-id'et med Vertoshop.getOrder().getId(), samt ordretotalen og valutaen, og udløser et ROASaurus-køb med event-id'et order-58213 |
| 2. Tidligere e-mail | Ja | En hashet e-mail, som den besøgende tidligere har oplyst på dit site, i en popup-formular eller via et Identify-kald |
| 3. IP-adresse og browser | Nej | Ordrer fra CCV Shop indeholder ikke shopperens IP-adresse eller browser, så denne fallback har intet at sammenligne med |
ROASaurus venter kort, før den sender hvert køb, så eventet fra bekræftelsessiden kan nå frem først, og den prøver matchingen igen på afsendelsestidspunktet. Siden Orders viser resultatet pr. ordre i kolonnen Matched by: thank_you, email eller not matched.
En ordre, der ikke er matchet, går stadig til dine annonceplatforme med hashede kundedata fra ordren. Den har ingen klik-id'er, og fordi CCV-ordrer ikke har nogen IP-adresse eller browser, har den heller ingen af dem. Det sænker andelen af events, Meta kan matche med en person; Event Match Quality forklarer, hvordan Meta vurderer det. I ROASaurus' attribution vises en ikke-matchet ordre som direkte eller ukendt.
Hvad når frem til Meta og TikTok fra en CCV-ordre?
| CCV-ordredata | Sendes som |
|---|---|
id | Event-id'et order-58213 og ordre-id'et |
total_price, currency | Værdi og valuta (EUR, når CCV ikke angiver en valuta) |
create_date | Eventtidspunktet |
| Kundens e-mail, mobil- eller telefonnummer, fornavn og efternavn | Hashet med SHA-256 |
| By, postnummer og landekode i faktureringsadressen | Hashet med SHA-256 |
| Kunde-id | Hashet eksternt id |
| Ordrelinjer: produktnummer, produkt-id, antal, pris og navn | Produkter med id, antal og pris |
| IP-adresse og browser | Findes ikke i CCV-ordrer: hentes fra eventet på bekræftelsessiden eller den matchede besøgende |
Meta modtager et Purchase via sin Conversions API og TikTok et CompletePayment via sin Events API, begge med event-id'et order-58213. TikTok viser nu CompletePayment som Purchase i sine rapporter. Når du sætter flueben ved indstillingen om også at indlæse browserpixelen, udløser snippetten på bekræftelsessiden de samme events i browseren med samme event-id, og Meta og TikTok beholder én kopi. De samme ordrer går til Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn og de andre annonceplatforme, når du forbinder dem. Google Ads-købskonverteringer sendes kun fra Shopify checkout, så ROASaurus sender dem ikke fra CCV Shop.
Sådan sætter du konverteringstracking op i CCV Shop
- Tilføj shoppen i ROASaurus
Gå til Add a store, vælg CCV Shop, og indtast din shopadresse. Fanen Connection viser derefter dit script-tag og snippetten til bekræftelsessiden.
- Find dine API-nøgler
Gå til My webshop › Settings › General › API settings i CCV Shop, og klik på New API key. Hvis du ikke kan se den, skal du først installere API-appen fra CCV App Store.
- Tilføj scriptet til alle sider
Indsæt script-tagget i Header HTML i din shop. CCV's hjælpecenter placerer det under Mijn webshop › Instellingen › Lay-out › Layout, nederst på siden. En app-kodeblok i headeren virker også.
- Tilføj snippetten til bekræftelsessiden
Gå til Mijn webshop › Instellingen › Algemeen › Teksten, åbn den tekst, der vises, når en ordre er afgivet, skift til Source, og indsæt snippeten dér. CCV Shop kører den derefter på ordrebekræftelsessiden.
- Forbind API'et
Indtast den offentlige nøgle og den hemmelige nøgle på fanen Connection. Udfyld kun Shop URL, hvis dit API kører på et andet domæne end din shop. Gem, tryk på Test connection, og derefter Create webhook.
- Forbind dine annonceplatforme
Under Tracking & platforms skal du bruge Connect with Facebook eller Add pixel til Meta og Add pixel til TikTok. Sæt flueben ved indstillingen om også at indlæse browserpixelen.
Samtykke
Uden for Shopify læser ROASaurus-scriptet den besøgendes valg fra almindelige samtykkeværktøjer: Cookiebot, OneTrust, IAB TCF-bannere og Google consent mode. Med et andet cookiebanner kalder du tlq('consent', true), når den besøgende accepterer marketingcookies, og tlq('consent', false), når vedkommende afviser. Indtil den besøgende accepterer, har vedkommende intet besøgs-id eller klik-id'er, og ingen browserpixels udløses. Den betalte ordre sendes stadig fra serveren med hashede kundedata fra ordren. Hjælpesiden om samtykke forklarer detaljerne.
Hvordan tester du konverteringstracking i CCV Shop?
- Åbn din shop med
?roasaurus=connectedi adressen. En meddelelse bekræfter, at scriptet kører.?roasaurus=debuglogger det, det sender, i browserkonsollen. - I Event log skal sidevisninger under Collected events vise et besøgs-id.
- Afgiv en ordre og betal den, eller markér den som betalt. Under Collected events skal Event log vise et Purchase med CCV-ordre-id'et i sine data. Hvis det mangler, kørte snippetten på bekræftelsessiden ikke.
- På fanen Connection viser Last order received ordren og Last sync det seneste 5-minutterstjek med eventuelle fejl fra CCV.
- Under Server deliveries i Event log får hver forbundet platform en linje med status sent og platformens svar.
PageView visitor 51c0e9a7Script på alle siderPurchase order-58213Snippet på bekræftelsessidenwebhook orders.updated.ispaidSignatur kontrolleret, ordre betaltMeta Purchase sentMatched by thank_youTikTok CompletePayment sentSamme event-id, deduplikeretFor at se eventet i Meta skal du indsætte koden fra Events Manager › Test events i feltet Test event code på din Meta-pixel i ROASaurus og fjerne den, når du er færdig.
Sene betalinger og andre begrænsninger
Bankoverførsler og efterkrav betales, efter ordren er afgivet. Her er, hvad der sker med en eksempelordre betalt med bankoverførsel, fra den dag, den afgives:
| Hvornår | Hvad der sker | Resultat |
|---|---|---|
| Dag 0, i checkout | Ordren oprettes, men er ikke betalt | Ikke sendt: 5-minutterstjekket spørger kun efter betalte ordrer |
| Dag 0, cirka 35 minutter senere | Ordrens oprettelsestidspunkt forlader tjekvinduet | Fra nu af kan kun webhooken melde den |
| Dag 3 | Du markerer ordren som betalt | Webhooken ankommer, og ROASaurus sender den. Eventtidspunktet, dag 0, er 3 dage gammelt: Meta accepterer den |
| I stedet dag 9 | Du markerer ordren som betalt | Webhooken ankommer, og ROASaurus sender den. 9 dage er mere end 7: Meta afviser den |
- Efterkrav. ROASaurus sender disse ordrer, når CCV markerer dem som betalt, som regel efter levering. Se tracking ved efterkrav for, hvornår du skal tælle sådanne ordrer med.
- Browserkøb før betaling. Snippetten på bekræftelsessiden kører, når ordren afgives, så browserpixels rapporterer en bankoverførselsordre, før den er betalt. Hvis betalingen kommer mere end 48 timer senere, kan Meta og TikTok ikke samle browser- og serverkopien.
- Ingen IP-fallback. Tilføj snippetten på bekræftelsessiden, og indsaml e-mails tidligere på dit site, hvor du kan.
- Annulleringer og refunderinger sendes ikke. Når et køb først er sendt, bliver det stående i annonceplatformen.
- Kun sidevisninger uden kode. Produktvisninger og tilføjelser til kurven registreres kun automatisk på Shopify. På CCV Shop kan en udvikler sende dem med et
tlq-track-kald.
Siden om CCV Shop-integrationen samler fakta om forbindelsen ét sted, og hjælpesiden om andre webshops sammenligner CCV Shop med de andre platforme, ROASaurus forbinder til, f.eks. 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