Annonceplatforme og webshops

Konverteringstracking med CCV Shop: en opsætningsguide

Konverteringstracking med CCV Shop: send betalte ordrer til Meta og TikTok med en signeret webhook, knyt dem til annonceklik, sæt det op, test det, og håndtér sene betalinger.

·Opdateret ·10 min. læsning·Af ROASaurus-teamet

Vigtigste pointer
  • 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 ShopHvad ROASaurus bruger den til
REST API med en offentlig nøgle og en hemmelig nøgleLæser hver betalt ordre og dens ordrelinjer
Webhook til eventet orders.updated.ispaidCCV melder en ordre i det øjeblik, dens betalingsstatus ændres
Ordrebekræftelsessiden med Vertoshop.jsSnippetten læser ordre-id'et dér og knytter ordren til den besøgende
API'et og webhooken leverer ordren. Snippetten på bekræftelsessiden knytter den til annonceklikket.
Ordre markeret som betaltI CCV Shop, efter betalingen
WebhookCCV sender ordre-id'et, signeret med x-hash
ROASaurusLæser ordren og dens linjer med signerede API-kald
AnnonceplatformePurchase med event-id order-58213
Datavejen for hver betalt ordre. ROASaurus tjekker, at ordren er betalt, før noget sendes.

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.

Sådan signerer CCV Shop forespørgsler
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:

MetodeI CCV ShopSådan virker det
1. Snippet på bekræftelsessidenJaDen 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-mailJaEn 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 browserNejOrdrer fra CCV Shop indeholder ikke shopperens IP-adresse eller browser, så denne fallback har intet at sammenligne med
På de fleste andre platforme fanger IP-fallbacken nogle ordrer, som snippetten overser. På CCV Shop kan den ikke det, så tilføj snippetten.

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-ordredataSendes som
idEvent-id'et order-58213 og ordre-id'et
total_price, currencyVærdi og valuta (EUR, når CCV ikke angiver en valuta)
create_dateEventtidspunktet
Kundens e-mail, mobil- eller telefonnummer, fornavn og efternavnHashet med SHA-256
By, postnummer og landekode i faktureringsadressenHashet med SHA-256
Kunde-idHashet eksternt id
Ordrelinjer: produktnummer, produkt-id, antal, pris og navnProdukter med id, antal og pris
IP-adresse og browserFindes ikke i CCV-ordrer: hentes fra eventet på bekræftelsessiden eller den matchede besøgende
Hvad ROASaurus læser fra hver CCV Shop-ordre, og hvordan det fremgår af server-eventet.

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

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

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

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

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

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

  6. 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=connected i adressen. En meddelelse bekræfter, at scriptet kører. ?roasaurus=debug logger 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 sider
Purchase order-58213Snippet på bekræftelsessiden
webhook orders.updated.ispaidSignatur kontrolleret, ordre betalt
Meta Purchase sentMatched by thank_you
TikTok CompletePayment sentSamme event-id, deduplikeret
Eksempel på en sund testordre. Fetch orders now på fanen Connection kører 5-minutterstjekket med det samme.

For 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årHvad der skerResultat
Dag 0, i checkoutOrdren oprettes, men er ikke betaltIkke sendt: 5-minutterstjekket spørger kun efter betalte ordrer
Dag 0, cirka 35 minutter senereOrdrens oprettelsestidspunkt forlader tjekvinduetFra nu af kan kun webhooken melde den
Dag 3Du markerer ordren som betaltWebhooken ankommer, og ROASaurus sender den. Eventtidspunktet, dag 0, er 3 dage gammelt: Meta accepterer den
I stedet dag 9Du markerer ordren som betaltWebhooken ankommer, og ROASaurus sender den. 9 dage er mere end 7: Meta afviser den
Illustrativ tidslinje. Eventtidspunktet er ordrens oprettelsesdato, og Meta accepterer server-events op til 7 dage efter eventtidspunktet.
  • 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

  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 videre

Annonceplatforme og webshopsKonverteringstracking ved efterkrav og eksterne checkoutsKonverteringstracking ved efterkrav: hvorfor pixels overser efterkravs- og eksterne checkout-ordrer, hvornår du skal sende købet, og hvordan du håndterer afviste ordrer.Annonceplatforme og webshopsGoogle Ads enhanced conversions på ShopifyEnhanced conversions tilføjer hashede kundedata til Google Ads-køb på Shopify. Sådan virker de, hvordan de adskiller sig fra offline-importer, og hvordan du sætter dem op.Annonceplatforme og webshopsKonverteringstracking for Lightspeed eCom-webshopsKonverteringstracking for Lightspeed eCom (C-Series): send betalte ordrer til Meta og TikTok fra serveren, knyt dem til annonceklik, sæt det op, og test det.
FAQ

Spørgsmål, besvaret

Hvor finder jeg mine CCV Shop-API-nøgler?

Under My webshop › Settings › General › API settings. Hvis den side mangler, skal du først installere API-appen fra CCV App Store.

Hvad gør snippet på ordresucces-siden?

Den læser ordre-id'et med Vertoshop.getOrder().getId(), samt ordretotalen og valutaen, og udløser ROASaurus-købet med det id. ROASaurus bruger det til at knytte ordren til den besøgende og vedkommendes annonceklik.

Hvorfor kan ROASaurus ikke matche CCV-ordrer via IP-adresse?

Ordrer fra CCV Shop indeholder ikke shopperens IP-adresse eller browser. Uden snippetten eller en e-mail, som den besøgende tidligere har oplyst på sitet, forbliver en ordre umatchet.

Bliver ordrer, der betales dage senere, stadig sendt?

Ja, via webhooken for betalt ordre. 5-minutterstjekket ser kun på nyligt oprettede ordrer, så hold webhooken aktiv. Meta afviser events, der kommer mere end 7 dage efter, at ordren blev oprettet.

Hvordan bruger ROASaurus min hemmelige nøgle fra CCV Shop?

ROASaurus gemmer den hemmelige nøgle krypteret og bruger den kun til at signere hvert API-kald med HMAC-SHA512, som CCV kræver. Selve nøglen sendes aldrig til CCV, kun signaturen.

Hvert salg, sporet til annoncen, der skabte det

Server-side tracking, overskud og livstidsværdi i én app. 14 dages gratis prøve, uden kreditkort.

Start din gratis prøve →