Annonsplattformar och webbshoppar

Konverteringstracking för CCV Shop: en installationsguide

Konverteringstracking för CCV Shop: skicka betalda ordrar till Meta och TikTok med en signerad webhook, koppla dem till annonsklick, sätt upp, testa och hantera sena betalningar.

·Uppdaterad ·10 min läsning·Av ROASaurus-teamet

Det viktigaste
  • 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 ShopVad ROASaurus använder den till
REST API, med en publik nyckel och en hemlig nyckelLäser varje betald order och dess orderrader
Webhook för händelsen orders.updated.ispaidCCV rapporterar en order i samma stund som dess betalstatus ändras
Orderbekräftelsesidan, med Vertoshop.jsSnippeten läser order-id:t där och kopplar ordern till besökaren
API:et och webhooken levererar ordern. Snippeten på bekräftelsesidan kopplar den till annonsklicket.
Order markerad som betaldI CCV Shop, efter betalningen
WebhookCCV postar order-id:t, signerat med x-hash
ROASaurusLäser ordern och dess rader med signerade API-anrop
AnnonsplattformarPurchase med händelse-id order-58213
Datavägen för varje betald order. ROASaurus kontrollerar att ordern är betald innan något skickas.

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.

Så signeras anrop till CCV Shop
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:

MetodPå CCV ShopSå fungerar det
1. Snippet på orderbekräftelsesidanJaDen 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-postadressJaEn 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äsareNejOrdrar 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
På de flesta andra plattformar fångar IP-reserven upp några ordrar som snippeten missar. På CCV Shop kan den inte det, så lägg till snippeten.

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-orderdataSkickas som
idHändelse-id:t order-58213 och order-id:t
total_price, currencyVärde och valuta (EUR när CCV inte anger någon valuta)
create_dateHändelsetiden
Kundens e-post, mobil- eller telefonnummer, förnamn och efternamnHashade med SHA-256
Faktureringsort, postnummer och landskodHashade med SHA-256
Kund-idHashat externt id
Orderrader: produktnummer, produkt-id, antal, pris och namnProdukter med id, antal och pris
IP-adress och webbläsareFinns inte i CCV-ordrar: hämtas från händelsen på bekräftelsesidan eller den matchade besökaren
Vad ROASaurus läser från varje CCV Shop-order och hur det visas i serverhändelsen.

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

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

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

  3. 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å.

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

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

  6. 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=connected i adressen. En avisering bekräftar att skriptet körs. ?roasaurus=debug loggar 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 sida
Purchase order-58213Snippet på bekräftelsesidan
webhook orders.updated.ispaidSignatur kontrollerad, order betald
Meta Purchase sentMatched by thank_you
TikTok CompletePayment sentSamma händelse-id, deduplicerat
Exempel på en felfri testorder. Fetch orders now på fliken Connection kör 5-minuterskontrollen direkt.

Fö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ärVad som händerResultat
Dag 0, i kassanOrdern skapas, men är inte betaldSkickas inte: 5-minuterskontrollen frågar bara efter betalda ordrar
Dag 0, cirka 35 minuter senareOrderns skapandetid hamnar utanför kontrollfönstretFrån och med nu kan bara webhooken rapportera den
Dag 3Du markerar ordern som betaldWebhooken kommer in och ROASaurus skickar den. Händelsetiden dag 0 är 3 dagar gammal: Meta accepterar den
I stället dag 9Du markerar ordern som betaldWebhooken kommer in och ROASaurus skickar den. 9 dagar är mer än 7: Meta avvisar den
Illustrativ tidslinje. Händelsetiden är orderns skapandedatum, och Meta accepterar serverhändelser upp till 7 dagar efter händelsetiden.
  • 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

  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

I ROASaurus

Läs vidare

Annonsplattformar och webbshopparKonverteringstracking för postförskott och externa kassorKonverteringstracking för postförskott: varför pixlar missar ordrar med postförskott och externa kassor, när köpet ska skickas och hur du hanterar ordrar som kunden vägrar ta emot.Annonsplattformar och webbshopparGoogle Ads enhanced conversions på ShopifyEnhanced conversions lägger till hashad kunddata på Google Ads-köp på Shopify. Så fungerar de, hur de skiljer sig från offlineimporter och hur du sätter upp dem.Annonsplattformar och webbshopparKonverteringstracking för Lightspeed eCom-webbshopparKonverteringstracking för Lightspeed eCom (C-Series): skicka betalda ordrar till Meta och TikTok från servern, koppla dem till annonsklick, sätt upp och testa.
Vanliga frågor

Frågor, besvarade

Var hittar jag mina CCV Shop API-nycklar?

I My webshop › Settings › General › API settings. Om den sidan saknas installerar du först API-appen från CCV App Store.

Vad gör snippetet på orderbekräftelsesidan?

Den läser order-id:t med Vertoshop.getOrder().getId() samt ordersumman och valutan och skickar ROASaurus-köpet med det id:t. ROASaurus använder det för att koppla ordern till besökaren och deras annonsklick.

Varför kan ROASaurus inte matcha CCV-ordrar via IP-adress?

Ordrar från CCV Shop innehåller inte köparens IP-adress eller webbläsare. Utan snippeten eller en e-postadress som besökaren angett tidigare på sajten förblir en order omatchad.

Skickas ordrar som betalas dagar senare ändå?

Ja, via webhooken för betald order. 5-minuterskontrollen tittar bara på nyligen skapade ordrar, så håll webhooken aktiv. Meta avvisar händelser mer än 7 dagar efter att ordern skapades.

Hur använder ROASaurus min hemliga nyckel för CCV Shop?

ROASaurus lagrar den hemliga nyckeln krypterad och använder den bara för att signera varje API-anrop med HMAC-SHA512, som CCV kräver. Själva nyckeln skickas aldrig till CCV, bara signaturen.

Varje försäljning, spårad till annonsen som genererade den

Server-side tracking, vinst och livstidsvärde i en app. 14 dagars gratis provperiod, inget kreditkort.

Starta din gratis provperiod →