- Konverteringstracking för CCV Shop är som mest komplett när varje betald order skickas från CCV:s orderdata på servern, med en snippet på orderbekräftelsesidan som kopplar ordern till annonsklicket.
- Ett klick på Create webhook får CCV Shop att rapportera varje order i samma stund som den markeras som betald, och varje leverans måste bära din butiks privata token.
- Ordrar från CCV Shop innehåller inte besökarens IP-adress, så snippeten på orderbekräftelsesidan betyder mer på CCV Shop än på de flesta plattformar.
- 5-minuterskontrollen tittar bara på nyligen skapade ordrar, så ordrar som betalas dagar senare beror på webhooken: håll den aktiv.
- Meta avvisar serverhändelser mer än 7 dagar efter att ordern skapades, så en mycket sen banköverföring når inte Meta.
Konverteringstracking för CCV Shop innebär att varje betald order i din CCV Shop-webbshop rapporteras till annonsplattformar som Meta och TikTok, så att de tillskriver rätt annonser och optimerar på verklig försäljning. Det mest kompletta sättet är att skicka varje köp från CCV:s orderdata på servern och lägga till en kort snippet på orderbekräftelsesidan som kopplar ordern till annonsklicket.
CCV Shop är en hostad webbshopplattform från det nederländska företaget CCV, som uppger att det driver 17,000 webbshoppar. Den här guiden förklarar hur ROASaurus ansluter till den, hur ordrar kopplas till annonsklick, vad som når Meta och TikTok, uppsättningen, testningen och hur sena betalningar fungerar. För den allmänna idén, läs vad server-side tracking är.
Hur ansluter ROASaurus till CCV Shop?
ROASaurus använder tre delar av CCV Shop, alla beskrivna i CCV:s API-dokumentation:
| Del av CCV Shop | Vad ROASaurus använder den till |
|---|---|
| REST API, med en publik nyckel och en hemlig nyckel | Läser varje betald order och dess orderrader |
Webhook för händelsen orders.updated.ispaid | CCV rapporterar en order i samma stund som dess betalstatus ändras |
Orderbekräftelsesidan, med Vertoshop.js | Snippeten läser order-id:t där och kopplar ordern till besökaren |
Varför missar webbläsarpixlar köp i CCV Shop?
En webbläsarpixel rapporterar ett köp bara när köparens webbläsare laddar orderbekräftelsesidan och pixelskriptet körs. Flera vanliga situationer bryter det:
- Köparen betalar via omdirigering, till exempel med iDEAL, och stänger fliken innan bekräftelsesidan laddas.
- En annonsblockerare eller en sekretessinställning i webbläsaren blockerar pixelskriptet.
- Besökaren tackar nej till marknadsföringscookies, så pixeln får inte laddas.
- Ordern betalas senare, via banköverföring eller vid leverans, när ingen webbläsare är inblandad.
I varje fall markerar CCV Shop ändå ordern som betald. ROASaurus skickar den ordern från servern, så köpet rapporteras oavsett vad som hände i webbläsaren. Snippeten på bekräftelsesidan har ett annat jobb: den berättar för ROASaurus vilken besökare, och därmed vilket annonsklick, ordern tillhör.
Webhooken för betald order och 5-minuterskontrollen
Vad Create webhook gör
När du trycker på Create webhook registrerar ROASaurus en CCV-webhook för händelsen orders.updated.ispaid, som CCV utlöser när en orders betalegenskap ändras. Adressen är din butiks webhook-URL i ROASaurus, som innehåller din butiksnyckel och en privat token. CCV lägger inte till något i en webhook som identifierar butiken, och dokumentationen rekommenderar att man lägger en identifierare i adressen. Butiksnyckeln gör det.
CCV ger varje webhook en egen hemlig nyckel på 32 tecken. När CCV returnerar den nyckeln sparar ROASaurus den, och därefter måste varje leverans ha en giltig header x-hash. Varje leverans måste också bära din butiks token. När ROASaurus får en leverans ignorerar den ordrar som inte är betalda, läser hela ordern och dess orderrader från API:et och skickar ordern först när CCV säger att den är betald.
Signerade API-anrop
CCV kräver att varje API-anrop signeras. ROASaurus skickar tre headers: x-public med din publika nyckel, x-date med aktuell tid och x-hash. CCV avvisar en tidsstämpel som skiljer sig mer än 5 minuter från serverns tid. Din hemliga nyckel skickas aldrig i sig.
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-minuterskontrollen
Var 5:e minut frågar ROASaurus dessutom CCV efter betalda ordrar som skapats sedan senaste kontrollen, med 30 minuters överlapp, och registrerar de som den ännu inte har. CCV filtrerar ordrar enbart på skapandedatum. Kontrollen hittar alltså ordrar som betalas strax efter att de lagts, och en order som betalas dagar senare når ROASaurus bara via webhooken.
CCV räknar svar med 200, 201, 202 eller 204 som lyckade. Det håller en leverans öppen och försöker igen vid nästa tillfälle efter svar med 307, 408, 503 eller 504, och markerar alla andra svar som misslyckade. Det väntar 2 sekunder på en anslutning och 5 sekunder på svaret.
Hur kopplas en CCV Shop-order till annonsklicket?
För att tillskriva en annons behöver plattformen klick-identifierarna för besökaren som beställde, som Meta-klick-id:t (fbc) och TikTok-klick-id:t (ttclid). ROASaurus-skriptet sparar dem för varje besökare när de landar från en annons. ROASaurus får inte det besökar-id:t från CCV-ordern, så det kopplar ordrar till besökare på andra sätt:
| Metod | På CCV Shop | Så fungerar det |
|---|---|---|
| 1. Snippet på orderbekräftelsesidan | Ja | Den läser order-id:t med Vertoshop.getOrder().getId() samt ordersumman och valutan och skickar ett ROASaurus-köp med händelse-id:t order-58213 |
| 2. Tidigare e-postadress | Ja | En hashad e-postadress som besökaren angett tidigare på din sajt, i ett popup-formulär eller via ett Identify-anrop |
| 3. IP-adress och webbläsare | Nej | Ordrar från CCV Shop innehåller inte köparens IP-adress eller webbläsare, så den här reserven har inget att jämföra |
ROASaurus väntar en kort stund innan varje köp skickas, så att händelsen från bekräftelsesidan hinner komma först, och försöker matcha igen vid sändningen. Sidan Orders visar resultatet per order i kolumnen Matched by: thank_you, email eller not matched.
En order som inte matchas går ändå till dina annonsplattformar med hashad kunddata från ordern. Den har inga klick-identifierare, och eftersom CCV-ordrar saknar IP-adress och webbläsare saknar den också dem. Det sänker andelen händelser som Meta kan matcha mot en person; Event Match Quality förklarar hur Meta bedömer detta. I ROASaurus attribution visas en omatchad order som direkt eller okänd.
Vad når Meta och TikTok från en CCV-order?
| CCV-orderdata | Skickas som |
|---|---|
id | Händelse-id:t order-58213 och order-id:t |
total_price, currency | Värde och valuta (EUR när CCV inte anger någon valuta) |
create_date | Händelsetiden |
| Kundens e-post, mobil- eller telefonnummer, förnamn och efternamn | Hashade med SHA-256 |
| Faktureringsort, postnummer och landskod | Hashade med SHA-256 |
| Kund-id | Hashat externt id |
| Orderrader: produktnummer, produkt-id, antal, pris och namn | Produkter med id, antal och pris |
| IP-adress och webbläsare | Finns inte i CCV-ordrar: hämtas från händelsen på bekräftelsesidan eller den matchade besökaren |
Meta tar emot ett Purchase via sitt Conversions API, och TikTok ett CompletePayment via sitt Events API, båda med händelse-id:t order-58213. TikTok visar numera CompletePayment som Purchase i sina rapporter. När du kryssar i alternativet att även ladda webbläsarpixeln skickar snippeten på bekräftelsesidan samma händelser i webbläsaren med samma händelse-id, och Meta och TikTok behåller en kopia. Samma ordrar går till Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn och de andra annonsplattformarna när du ansluter dem. Köpkonverteringar i Google Ads skickas bara från Shopify-kassan, så ROASaurus skickar dem inte från CCV Shop.
Så sätter du upp konverteringstracking för CCV Shop
- Lägg till butiken i ROASaurus
Gå till Add a store, välj CCV Shop och ange din butiksadress. Fliken Connection visar sedan din skripttagg och snippeten för bekräftelsesidan.
- Hitta dina API-nycklar
Gå till My webshop › Settings › General › API settings i CCV Shop och klicka på New API key. Om du inte ser det installerar du först API-appen från CCV App Store.
- Lägg till skriptet på varje sida
Klistra in skripttaggen i butikens Header HTML. CCV:s hjälpcenter placerar den under Mijn webshop › Instellingen › Lay-out › Layout, längst ner på sidan. Ett appkodblock i headern fungerar också.
- Lägg till snippeten på bekräftelsesidan
Gå till Mijn webshop › Instellingen › Algemeen › Teksten, öppna texten som visas efter att en order har lagts, växla till Source och klistra in snippeten där. CCV Shop kör den sedan på orderbekräftelsesidan.
- Anslut API:et
På fliken Connection anger du den publika nyckeln och den hemliga nyckeln. Fyll i Shop URL bara när ditt API körs på en annan domän än din butik. Spara, tryck på Test connection och därefter Create webhook.
- Anslut dina annonsplattformar
Under Tracking & platforms använder du Connect with Facebook eller Add pixel för Meta och Add pixel för TikTok. Kryssa i alternativet att även ladda webbläsarpixeln.
Samtycke
Utanför Shopify läser ROASaurus-skriptet besökarens val från vanliga samtyckesverktyg: Cookiebot, OneTrust, IAB TCF-bannrar och Google consent mode. Med en annan cookiebanner anropar du tlq('consent', true) när besökaren accepterar marknadsföringscookies och tlq('consent', false) när besökaren tackar nej. Tills besökaren accepterar har besökaren inget besökar-id eller klick-id:n, och inga webbläsarpixlar utlöses. Den betalda ordern skickas ändå från servern med hashad kunddata från ordern. Hjälpsidan om samtycke förklarar detaljerna.
Hur testar du konverteringstracking för CCV Shop?
- Öppna din butik med
?roasaurus=connectedi adressen. En avisering bekräftar att skriptet körs.?roasaurus=debugloggar vad det skickar till webbläsarkonsolen. - Under Collected events i Event log ska sidvisningar visa ett besökar-id.
- Lägg en order och betala den, eller markera den som betald. Under Collected events ska Event log visa ett Purchase med CCV:s order-id i sin data. Om det saknas har snippeten på bekräftelsesidan inte körts.
- På fliken Connection visar Last order received ordern och Last sync den senaste 5-minuterskontrollen, med eventuella fel från CCV.
- Under Server deliveries i Event log får varje ansluten plattform en rad med statusen sent och plattformens svar.
PageView visitor 51c0e9a7Skript på varje sidaPurchase order-58213Snippet på bekräftelsesidanwebhook orders.updated.ispaidSignatur kontrollerad, order betaldMeta Purchase sentMatched by thank_youTikTok CompletePayment sentSamma händelse-id, dedupliceratFör att se händelsen i Meta klistrar du in koden från Events Manager › Test events i fältet Test event code för din Meta-pixel i ROASaurus, och tar bort den när du är klar.
Sena betalningar och andra begränsningar
Banköverföringar och postförskott betalas efter att ordern lagts. Så här går det för en exempelorder med banköverföring, från dagen den läggs:
| När | Vad som händer | Resultat |
|---|---|---|
| Dag 0, i kassan | Ordern skapas, men är inte betald | Skickas inte: 5-minuterskontrollen frågar bara efter betalda ordrar |
| Dag 0, cirka 35 minuter senare | Orderns skapandetid hamnar utanför kontrollfönstret | Från och med nu kan bara webhooken rapportera den |
| Dag 3 | Du markerar ordern som betald | Webhooken kommer in och ROASaurus skickar den. Händelsetiden dag 0 är 3 dagar gammal: Meta accepterar den |
| I stället dag 9 | Du markerar ordern som betald | Webhooken kommer in och ROASaurus skickar den. 9 dagar är mer än 7: Meta avvisar den |
- Postförskott. ROASaurus skickar de här ordrarna när CCV markerar dem som betalda, oftast efter leverans. Se tracking för postförskott för när sådana ordrar bör räknas.
- Webbläsarköp före betalning. Snippeten på bekräftelsesidan körs när ordern läggs, så webbläsarpixlarna rapporterar en order med banköverföring innan den är betald. Om betalningen kommer mer än 48 timmar senare kan Meta och TikTok inte slå ihop webbläsarkopian och serverkopian.
- Ingen IP-reserv. Lägg till snippeten på bekräftelsesidan och fånga e-postadresser tidigare på din sajt där du kan.
- Avbeställningar och återbetalningar skickas inte. När ett köp har skickats finns det kvar i annonsplattformen.
- Endast sidvisningar, utan kod. Produktvisningar och tillägg i varukorgen upptäcks automatiskt bara på Shopify. På CCV Shop kan en utvecklare skicka dem med ett
tlq-track-anrop.
Integrationssidan för CCV Shop listar anslutningsfakta på ett ställe, och hjälpsidan för andra webbshoppar jämför CCV Shop med de andra plattformar som ROASaurus ansluter till, som Lightspeed.
Källor
- 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-integration
- Hjälp: Wix, Lightspeed och andra webbshoppar
- Server-side tracking
- Meta-integration