- På Shopify sender server-side tracking hvert køb fra den betalte ordre, som Shopify melder via webhook, så det ikke afhænger af, at takkesiden indlæses.
- Besøgs-id'et og annonceklikkenes id'er gemmes som kurvattributter, så Shopify kopierer dem over på ordren, og ordren kan matches med klikket.
- Browser- og server-events deler ét event-id, der er bygget ud fra ordre-id'et, så Meta, TikTok, Snapchat, Pinterest og Reddit tæller hvert køb én gang.
- Når Respect visitor consent er slået til, får en besøgende, der afviser marketingcookies, intet besøgs-id, og vedkommendes browser-events sendes ikke til annonceplatforme, men den betalte ordre sendes stadig med hashede kundedata fra ordren.
- Opsætningen i ROASaurus har fire hovedtrin: installér appen, slå theme app embed til, tilføj checkout-pixelen, og forbind dine annonceplatforme.
Server-side tracking på Shopify betyder, at hvert køb når Meta, TikTok og andre annonceplatforme fra din shops ordredata, sendt af en server, og ikke kun fra en pixel i shopperens browser. Shopify melder hver betalt ordre til tracking-appen via webhook, og appen sender den til hver platforms conversions API, matchet med det annonceklik, der bragte shopperen ind.
Denne guide dækker Shopify-delene af dette flow: theme app embed og app proxy, pixels i checkout, orders/paid-webhooken, ordrematching, deduplikering, samtykke og opsætningen i ROASaurus. Læs først hvad server-side tracking er for den generelle idé.
Sådan fungerer server-side tracking på Shopify
Klikket og købet sker på forskellige tidspunkter og forskellige steder. Klikket er kun synligt i browseren, på landingssiden. Den betalte ordre er først sikker på Shopifys side, når betalingen er gennemført. Server-side tracking registrerer det første, venter på det andet og forbinder dem.
Shopify-delene: app embed, app proxy, pixels og webhooks
En Shopify-shop giver en tracking-app fire steder at arbejde. Hvert sted har en forskellig opgave, og en komplet opsætning bruger alle fire.
| Del | Hvor den kører | Hvad den gør |
|---|---|---|
| Theme app embed | Hver side i storefronten | Indlæser trackingscriptet, læser annonceklikkenes id'er og gemmer besøgs-id'et på kurven |
| App proxy | En sti på dit eget shopdomæne | Modtager storefront-events som first-party-forespørgsler |
| Customer events (pixels) | Checkout og takkeside | Rapporterer checkout-trinnene og den gennemførte checkout fra en sandbox |
| Ordre-webhooks | Shopifys servere | Sender ordren til appen, når den oprettes, og når den betales |
Theme app embed og app proxy
En theme app embed er en blok, som en app tilføjer til dit theme. Du slår den til i theme-editoren, så der er ingen kode at indsætte. ROASaurus-embedden indlæser et script på hver side. På landingssiden læser det klik-id'er som fbclid, ttclid og gclid og UTM-parametrene og gemmer dem med et first-party-besøgs-id.
Scriptet sender sine events gennem Shopifys app proxy. En app proxy videresender forespørgsler fra en sti på dit eget domæne, for eksempel yourstore.com/apps/roasaurus, til appens server. For browseren er det en forespørgsel til dit eget website, hvilket kan hjælpe mod adblockere, der blokerer kendte trackingdomæner. Shopify fjerner Cookie-headeren fra app proxy-forespørgsler og Set-Cookie-headeren fra svarene, så besøgs-id'et rejser inde i selve eventet, ikke i en cookie.
Customer events og pixels i checkout
I Shopifys checkout kører trackingscripts som pixels i en sandbox, ikke i selve siden. Du administrerer dem under Settings › Customer events. Der er to slags. App pixels følger med en app og kører i en streng sandbox. Custom pixels tilføjes af shopejeren og kører i en mindre streng sandbox, som kan indlæse tredjepartsscripts som Meta-pixelen.
ROASaurus bruger begge. Dens app pixel slås til, når du installerer appen. Den rapporterer starten af checkout, kontakttrinnet og den gennemførte checkout til ROASaurus. Den valgfrie custom pixel tilføjer browserpixels fra Meta, TikTok, Snapchat, Pinterest og Reddit til checkout, og den sender Google Ads-konverteringer.
Ordre-webhooks
En webhook er en besked, som Shopify sender til en app, når der sker noget i shoppen. ROASaurus abonnerer blandt andet på orders/paid og orders/create. Ordren i webhooken indeholder ordre-id'et, værdien, ordrelinjerne, kundeoplysningerne, kurv- og checkout-tokens, kurvattributterne og den IP-adresse og browser, ordren blev afgivet fra. Den kommer fra Shopifys servere, så en adblocker eller en lukket fane kan ikke stoppe den.
Sådan matches ordrer med annonceklik
Webhooken fortæller ROASaurus, at en ordre er betalt. For at sende en brugbar konvertering skal ROASaurus også vide, hvilken besøgende der afgav ordren, fordi besøgsregistreringen rummer klik-id'erne. Den prøver disse koblinger i rækkefølge, fra den mest direkte til den mindst direkte:
| Metode | Sådan virker det | Hvornår den bruges |
|---|---|---|
| Kurvattribut | Scriptet skriver besøgs-id'et og værdierne fbc, fbp, ttp, gclid og ttclid som kurvattributter. Shopify kopierer dem over på ordren. | Første valg |
| Kurv- og checkout-tokens | Scriptet knytter kurv-tokenet til den besøgende, og checkout-pixelen knytter checkout-tokenet. Webhooken bærer begge tokens. | Når kurvattributten mangler |
| Checkout-event | Checkout-pixelen rapporterer den gennemførte checkout med ordre-id'et og besøgs-id'et. | Når intet token matcher |
| E-mailadresse | Den hashede e-mail fra en besøgende, der har indtastet den tidligere, for eksempel i kontakttrinnet i checkout. | Når der ikke er noget checkout-event |
| IP-adresse og browser | En besøgende, der er set med den samme IP-adresse og browser kort før ordren. | Kun når præcis én besøgende passer |
Kurvattributter er grunden til, at matchingen er direkte på Shopify. De er nøgle-værdi-par, der gemmes på kurven, og Shopify kopierer dem over på ordren. En værdi, der er skrevet på produktsiden, er der stadig, når webhooken ankommer, selv om shopperen lukkede takkesiden tidligt.
Én undtagelse: Accelererede checkout-knapper som »Køb nu« springer kurven over. ROASaurus anbefaler at slå dem fra, så tilføjelser til kurven altid bliver trackede. Ordrer, der afgives via dem, kan stadig matches via checkout-tokenet.
Én ordre, fra ende til anden
Her er, hvad der sker for en enkelt ordre fra en Meta-annonce, når custom pixel er installeret:
page_view ?fbclid=IwAR2x…En shopper lander fra en Meta-annonce. Klik-id'et gemmes med besøgende 3f2a.cart _tl=3f2a _tl_fbc=fb.1.…Besøgs-id'et og Meta-klikværdien gemmes som kurvattributter.checkout_started ic-c1a9…Checkout-tokenet knyttes til den samme besøgende.checkout_completed order-6123456789012Checkout-pixelen rapporterer ordren, og Meta-pixelen sender Purchase med dette event-id.orders/paid #1042 id 6123456789012 $86.00Shopify sender den betalte ordre via webhook.Meta CAPI Purchase order-6123456789012Efter en kort pause sendes server-eventet af sted med klik-id'er, IP-adresse og user agent.Hvornår købet sendes: orders/paid eller orders/create
Hvilken webhook der udløser købet, afhænger af, hvordan dine kunder betaler. Du vælger den som checkout-type i Store settings.
| Checkout-type | Webhook | Hvornår købet sendes |
|---|---|---|
| Shopify checkout | orders/paid | Når ordren er betalt. Ordrer, der aldrig bliver betalt, sendes ikke. |
| External / COD checkout | orders/create | Når ordren oprettes. Til efterkrav og til checkouts som Checkify og CheckoutChamp, der opretter Shopify-ordrer. |
ROASaurus holder hvert køb tilbage et kort stykke tid, efter at webhooken er ankommet. I den tid når checkout-eventet fra browseren som regel også frem. Dets side-URL, IP-adresse og user agent føjes så til server-eventet ved siden af klik-id'erne fra besøgsregistreringen. Ordrer, som Shopify markerer som testordrer, registreres, men sendes ikke til annonceplatformene.
Sådan fungerer deduplikering med browserpixels
Når browserpixels kører ved siden af server-events, modtager platformen hvert køb to gange og skal kun beholde ét. Det gør den med event-id'et. ROASaurus giver begge kopier af et køb det samme id, bygget ud fra Shopifys ordre-id: order-6123456789012 for ordren med id 6123456789012. Det er det lange tal i ordrens admin-URL, ikke ordrenavnet som #1042. Checkout-pixelen bruger det til browser-Purchase, og serveren bruger det til conversions API-eventet. Meta beholder for eksempel én kopi, når eventnavnet og event-id'et matcher, og begge ankommer inden for 48 timer.
| Platform | Browserpixel fra ROASaurus | Deduplikeret med server-eventet |
|---|---|---|
| Meta, TikTok, Snapchat, Pinterest, Reddit | Storefront og checkout | Ja |
| X, Microsoft Advertising, Taboola | Ingen, kun server-events | Intet at slå sammen |
| Google Ads | Kun checkout, via custom pixel | Sendes én gang, fra checkout |
Event-id'et virker kun mellem events, der bærer det. Hvis en anden app sender den samme pixel, har dens events deres egne id'er, og platformen tæller ordren igen. På Shopify er de sædvanlige årsager Facebook & Instagram-kanalen, der er forbundet til den samme pixel, TikTok-appen og pixelkode, der er indsat i theme.liquid. Vores guide til dobbelte købsevents viser, hvordan du finder dem, og Undgå dobbelttælling viser løsningerne.
Samtykke via Shopifys Customer Privacy API
Shopifys Customer Privacy API gemmer hver besøgendes cookievalg. Dit cookiebanner udfylder det, uanset om du bruger Shopifys eget banner eller en samtykke-app, der er forbundet til API'et. Scripts og pixels kan så spørge det, om marketing er tilladt for denne besøgende.
Når Respect visitor consent er slået til, hvilket er standard i Store settings, spørger ROASaurus' storefront-script og checkout-pixels API'et, før de tracker.
- Et besøgs-id, klik-id'er og browsing-events gemmes
- Browserpixels indlæses og sender events
- Den betalte ordre sendes server-side og matches med annonceklikket
- Der sættes intet besøgs-id, så deres besøg og annonceklik ikke knyttes til dem
- Browser-events gemmes uden besøgs-id, IP-adresse eller browseroplysninger og sendes ikke til annonceplatforme
- Den betalte ordre sendes stadig server-side med hashede kundedata fra ordren og ordrens IP-adresse og user agent
- Eventet, der når annonceplatformen, bærer intet klik-id
E-mails, telefonnumre, navne og adresser hashes med SHA-256, før de sendes til en annonceplatform. Tre detaljer mere har betydning:
- Dit banner afgør. ROASaurus følger det, API'et rapporterer. Hvis API'et ikke er tilgængeligt på siden, behandler ROASaurus den besøgende som samtykkende, så tjek, at dit banner er forbundet til det.
- Landingssiden bliver på ordren. Shopify gemmer landingsside-adressen sammen med hver ordre, og den kan indeholde kampagnetags og klik-id'er. ROASaurus bruger den i sine egne attributionsrapporter, også for besøgende, der har afvist, og sender den ikke til annonceplatformene.
- At sende ordren er en juridisk beslutning. Om den betalte ordre fra en besøgende, der har afvist, overhovedet må sendes, er et juridisk spørgsmål for din shop.
Vores guide til Consent Mode v2 og GDPR forklarer reglerne overordnet, og Samtykke og privatliv har detaljerne.
Sådan sætter du server-side tracking op på Shopify i ROASaurus
Udfør opsætningstrinnene i denne rækkefølge:
- Installér appen
Gå til Add a store, vælg Shopify, indtast dit
.myshopify.com-domæne, og klik på Install app. Godkend appen i Shopify. ROASaurus registrerer ordre-webhooks og slår sin app pixel til. - Slå theme app embed til
Klik på Open theme editor på siden Tracking & platforms, slå ROASaurus-app-embedden til, og gem.
- Tilføj checkout-pixelen
Gå til Settings › Customer events i Shopify admin, og tilføj en custom pixel med navnet ROASaurus. Sæt dens tilladelse til Not required, fordi ROASaurus-scriptet selv tjekker den besøgendes marketingvalg. Indsæt koden fra Tracking & platforms. Du har brug for denne pixel til browserpixels i checkout og til Google Ads.
- Forbind dine annonceplatforme
Klik på Add pixel for hver platform under Tracking & platforms, eller på Connect with Facebook for Meta. Lad muligheden for også at indlæse browserpixelen være slået til, hvis du vil have deduplikerede browser-events.
- Tjek shopindstillingerne
Vælg din checkout-type i Store settings, og behold Respect visitor consent slået til, hvis du sælger, hvor samtykke er påkrævet.
- Fjern andre afsendere
Fjern denne pixel fra indstillingerne for datadeling i Facebook & Instagram-kanalen. Det er ikke nok at sænke niveauet for datadeling, fordi hvert niveau, også Standard, sender Meta-pixelen fra browseren. Hvis TikTok-appen sender den samme pixel, så stop den også dér, og fjern pixelkode fra dit theme.
Koden til custom pixel ser sådan ud. Kopiér den fra Tracking & platforms, hvor din shopnøgle allerede er udfyldt. Shopify-opsætningsguiden har de samme trin.
self.tl = this; document.head.appendChild(document.createElement('script')).src = 'https://app.roasaurus.com/c.js?k=YOUR_STORE_KEY';Sådan tjekker du, at det virker
Test med én rigtig ordre, før du stoler på tallene:
- Åbn din shop med
?roasaurus=connectedtil sidst i URL'en. En besked bekræfter, at scriptet er live. - For Meta skal du indsætte koden fra Events Manager › Test events i feltet Test event code på pixelen.
- Læg en rigtig ordre med lav pris, og refundér den bagefter. Shopifys testordrer sendes ikke.
- I Event log vises serverleveringen for ordren som sent for hver platform, med platformens svar.
- I platformens testvisning skal du tjekke, at browser-Purchase og server-Purchase deler event-id'et
order-plus Shopify-ordre-id'et. - Fjern testeventkoden bagefter.
Hvad server-side tracking på Shopify ikke løser
- Afvist samtykke. Ordrer fra besøgende, der har afvist marketingcookies, sendes, men uden et klik-id, så annonceplatformene matcher dem dårligere.
- Safaris cookiegrænser. En shopper, der vender tilbage efter mere end 7 dage, kan ligne en ny besøgende. Et first-party-trackingsubdomæne holder indsamlingen på dit domæne, men Safari kan stadig begrænse de cookies til 7 dage.
- Forskelle i attribution. Hver annonceplatform tilskriver stadig salg med sine egne vinduer og modeller. For at sammenligne kanaler med ét regelsæt skal du bruge din egen attribution.
- Andre apps på den samme pixel. Event-id'er slår kun events sammen, som deler dem.
Det, den løser, er det køb, der skete, men aldrig nåede annonceplatformen, fordi browser-eventet gik tabt. For hvad ROASaurus sender til hver platform, se server-side tracking og Shopify-integrationen.
Kilder
- Shopify: Customer Privacy API
- Shopify: Authenticate app proxies
- Shopify Help Center: Manage your custom pixels
- Shopify Help Center: Facebook data sharing
- Meta: Handling Duplicate Pixel and Conversions API Events
I ROASaurus
- Hjælp: sæt ROASaurus op på Shopify
- Shopify-integration
- Server-side tracking i ROASaurus
- Hjælp: samtykke og privatliv