- På Shopify sender server-side tracking hvert kjøp fra den betalte bestillingen som Shopify melder fra om via webhook, så det er ikke avhengig av at takkesiden lastes.
- Besøks-ID-en og click id-ene fra annonsen lagres som handlekurvattributter, så Shopify kopierer dem over på bestillingen og bestillingen kan kobles til klikket.
- Nettleser- og server-events deler én event-ID som bygges fra bestillings-ID-en, så Meta, TikTok, Snapchat, Pinterest og Reddit teller hvert kjøp én gang.
- Med Respect visitor consent slått på får en besøkende som avslår markedsføringscookies ingen besøks-ID, og nettleser-eventene deres sendes ikke til annonseplattformer, men den betalte bestillingen sendes likevel med hashede kundedata fra bestillingen.
- Oppsettet i ROASaurus har fire hovedtrinn: installer appen, slå på theme app embed, legg til checkout-pixelen og koble til annonseplattformene dine.
Server-side tracking på Shopify betyr at hvert kjøp når Meta, TikTok og andre annonseplattformer fra butikkens bestillingsdata, sendt av en server, og ikke bare fra en pixel i kundens nettleser. Shopify melder hver betalte bestilling til trackingappen via webhook, og appen sender den til conversions API-et til hver plattform, koblet til annonseklikket som brakte kunden inn.
Denne guiden tar for seg Shopify-delene av dette forløpet: theme app embed og app proxy, pixler i checkout, webhooken orders/paid, matching av bestillinger, deduplisering, samtykke og oppsettet i ROASaurus. For grunnideen kan du lese hva server-side tracking er først.
Slik fungerer server-side tracking på Shopify
Klikket og kjøpet skjer på ulike tidspunkter og på ulike steder. Klikket er bare synlig i nettleseren, på landingssiden. Den betalte bestillingen er bare sikker på Shopifys side, når betalingen er gjennomført. Server-side tracking registrerer det første, venter på det andre og kobler dem sammen.
Shopify-delene: app embed, app proxy, pixler og webhooks
En Shopify-butikk gir en trackingapp fire steder å jobbe. Hvert har sin egen jobb, og et komplett oppsett bruker alle fire.
| Del | Hvor den kjører | Hva den gjør |
|---|---|---|
| Theme app embed | Hver side i nettbutikken | Laster trackingskriptet, leser click id-er fra annonser og lagrer besøks-ID-en på handlekurven |
| App proxy | En sti på ditt eget butikkdomene | Mottar butikk-events som førsteparts-forespørsler |
| Customer events (pixler) | Checkout og takkesiden | Rapporterer checkout-trinnene og fullført checkout fra en sandbox |
| Bestillings-webhooks | Shopifys servere | Sender bestillingen til appen når den opprettes og når den betales |
Theme app embed og app proxy
En theme app embed er en blokk som en app legger til i temaet ditt. Du slår den på i temaredigereren, så det er ingen kode å lime inn. ROASaurus-embeden laster et skript på hver side. På landingssiden leser den click id-er som fbclid, ttclid og gclid og UTM-parametrene, og lagrer dem sammen med en førsteparts besøks-ID.
Skriptet sender eventene sine gjennom Shopifys app proxy. En app proxy videresender forespørsler fra en sti på ditt eget domene, for eksempel yourstore.com/apps/roasaurus, til appens server. For nettleseren er dette en forespørsel til ditt eget nettsted, noe som kan hjelpe mot annonseblokkerere som blokkerer kjente trackingdomener. Shopify fjerner Cookie-headeren fra app proxy-forespørsler og Set-Cookie-headeren fra svarene, så besøks-ID-en følger med inne i selve eventen, ikke i en cookie.
Customer events og pixler i checkout
I Shopifys checkout kjører trackingskript som pixler i en sandbox, ikke i selve siden. Du administrerer dem under Settings › Customer events. Det finnes to typer. App-pixler følger med en app og kjører i en streng sandbox. Egendefinerte pixler legges til av butikkeieren og kjører i en mindre streng sandbox, som kan laste tredjepartsskript som Meta-pixelen.
ROASaurus bruker begge. App-pixelen slås på når du installerer appen. Den rapporterer starten på checkout, kontakttrinnet og fullført checkout til ROASaurus. Den valgfrie egendefinerte pixelen legger nettleserpixlene til Meta, TikTok, Snapchat, Pinterest og Reddit til checkout, og den sender Google Ads-konverteringer.
Bestillings-webhooks
En webhook er en melding Shopify sender til en app når noe skjer i butikken. ROASaurus abonnerer blant annet på orders/paid og orders/create. Bestillingen i webhooken inneholder bestillings-ID, verdi, varelinjer, kundeopplysninger, handlekurv- og checkout-tokens, handlekurvattributtene, og IP-adressen og nettleseren bestillingen ble lagt inn fra. Den kommer fra Shopifys servere, så en annonseblokkerer eller en lukket fane kan ikke stoppe den.
Hvordan bestillinger kobles til annonseklikk
Webhooken forteller ROASaurus at en bestilling er betalt. For å sende en nyttig konvertering må ROASaurus også vite hvilken besøkende som la inn bestillingen, fordi besøksposten inneholder click id-ene. Den prøver disse koblingene i rekkefølge, fra den mest direkte til den minst direkte:
| Metode | Slik fungerer det | Når den brukes |
|---|---|---|
| Handlekurvattributt | Skriptet skriver besøks-ID-en og verdiene fbc, fbp, ttp, gclid og ttclid som handlekurvattributter. Shopify kopierer dem over på bestillingen. | Første valg |
| Handlekurv- og checkout-tokens | Skriptet kobler handlekurv-tokenet til den besøkende, og checkout-pixelen kobler checkout-tokenet. Webhooken har med begge tokenene. | Når handlekurvattributtet mangler |
| Checkout-event | Checkout-pixelen rapporterer fullført checkout med bestillings-ID-en og besøks-ID-en. | Når ingen token matcher |
| E-postadresse | Den hashede e-posten til en besøkende som har skrevet den inn tidligere, for eksempel i kontakttrinnet i checkout. | Når det ikke finnes noen checkout-event |
| IP-adresse og nettleser | En besøkende som ble sett med samme IP-adresse og nettleser kort før bestillingen. | Bare når nøyaktig én besøkende passer |
Handlekurvattributter er grunnen til at matchingen er direkte på Shopify. De er nøkkel-verdi-par som lagres på handlekurven, og Shopify kopierer dem over på bestillingen. En verdi som er skrevet på produktsiden, er der fortsatt når webhooken kommer, selv om kunden lukket takkesiden tidlig.
Ett unntak: raske checkout-knapper som Buy it now hopper over handlekurven. ROASaurus anbefaler å slå dem av, slik at Add to cart alltid blir sporet. Bestillinger lagt inn via dem kan likevel matche gjennom checkout-tokenet.
Én bestilling, fra start til slutt
Dette skjer for én enkelt bestilling fra en Meta-annonse, med den egendefinerte pixelen installert:
page_view ?fbclid=IwAR2x…En kunde lander fra en Meta-annonse. Click id-en lagres sammen med besøkende 3f2a.cart _tl=3f2a _tl_fbc=fb.1.…Besøks-ID-en og Meta-klikkverdien lagres som handlekurvattributter.checkout_started ic-c1a9…Checkout-tokenet kobles til den samme besøkende.checkout_completed order-6123456789012Checkout-pixelen rapporterer bestillingen, og Meta-pixelen sender Purchase med denne event-ID-en.orders/paid #1042 id 6123456789012 $86.00Shopify sender den betalte bestillingen via webhook.Meta CAPI Purchase order-6123456789012Etter en kort pause sendes server-eventen med click id-ene, IP-adressen og user agent.Når kjøpet sendes: orders/paid eller orders/create
Hvilken webhook som utløser kjøpet, avhenger av hvordan kundene dine betaler. Du velger det som checkout-type i Store settings.
| Checkout-type | Webhook | Når kjøpet sendes |
|---|---|---|
| Shopify checkout | orders/paid | Når bestillingen er betalt. Bestillinger som aldri betales, sendes ikke. |
| External / COD checkout | orders/create | Når bestillingen opprettes. For betaling ved levering, og for checkouter som Checkify og CheckoutChamp som oppretter Shopify-bestillinger. |
ROASaurus holder hvert kjøp tilbake en kort stund etter at webhooken kommer. I løpet av den tiden kommer vanligvis eventen for fullført checkout fra nettleseren også. Side-URL-en, IP-adressen og user agent fra den legges da til server-eventen, ved siden av click id-ene fra besøksposten. Bestillinger som Shopify markerer som testbestillinger, registreres, men sendes ikke til annonseplattformene.
Hvordan deduplisering fungerer med nettleserpixlene
Når nettleserpixlene kjører ved siden av server-eventene, mottar plattformen hvert kjøp to ganger og må beholde bare ett. Den gjør det med event-ID-en. ROASaurus gir begge kopiene av et kjøp den samme ID-en, bygget fra Shopify-bestillings-ID-en: order-6123456789012 for bestillingen med ID 6123456789012. Dette er det lange tallet i bestillingens admin-URL, ikke bestillingsnavnet som #1042. Checkout-pixelen bruker den for nettleserens Purchase, og serveren bruker den for conversions API-eventen. Meta beholder for eksempel én kopi når eventnavnet og event-ID-en stemmer og begge kommer fram innen 48 timer.
| Plattform | Nettleserpixel fra ROASaurus | Dedupliseres mot server-eventen |
|---|---|---|
| Meta, TikTok, Snapchat, Pinterest, Reddit | Nettbutikken og checkout | Ja |
| X, Microsoft Advertising, Taboola | Ingen, bare server-events | Ingenting å slå sammen |
| Google Ads | Bare checkout, gjennom den egendefinerte pixelen | Sendes én gang, fra checkout |
Event-ID-en fungerer bare mellom events som har den med. Hvis en annen app sender den samme pixelen, har eventene sine egne ID-er, og plattformen teller bestillingen på nytt. På Shopify er de vanlige årsakene Facebook & Instagram-kanalen koblet til den samme pixelen, TikTok-appen og pixelkode limt inn i theme.liquid. Guiden vår om duplikate kjøpsevents viser hvordan du finner dem, og Unngå dobbelttelling lister opp løsningene.
Samtykke gjennom Shopifys Customer Privacy API
Shopifys Customer Privacy API lagrer hver besøkendes cookievalg. Cookie-banneret ditt fyller det ut, enten du bruker Shopifys eget banner eller en samtykkeapp som er koblet til API-et. Skript og pixler kan da spørre det om markedsføring er tillatt for denne besøkende.
Med Respect visitor consent slått på, som er standard i Store settings, spør ROASaurus-skriptet i nettbutikken og checkout-pixlene API-et før de sporer.
- En besøks-ID, click id-er og nettleserevents lagres
- Nettleserpixlene lastes og sender events
- Den betalte bestillingen sendes server-side og kobles til annonseklikket
- Ingen besøks-ID settes, så besøkene og annonseklikkene deres blir ikke koblet til dem
- Nettleser-events lagres uten besøks-ID, IP-adresse eller nettleserdetaljer, og sendes ikke til annonseplattformer
- Den betalte bestillingen sendes likevel server-side med hashede kundedata fra bestillingen, og bestillingens IP-adresse og user agent
- Eventen som når annonseplattformen, har ingen click id
E-poster, telefonnumre, navn og adresser hashes med SHA-256 før de sendes til en annonseplattform. Tre detaljer til er viktige:
- Banneret ditt bestemmer. ROASaurus følger det API-et rapporterer. Hvis API-et ikke er tilgjengelig på siden, behandler ROASaurus den besøkende som samtykkende, så sjekk at banneret ditt er koblet til det.
- Landingssiden blir værende på bestillingen. Shopify lagrer landingssideadressen sammen med hver bestilling, og den kan inneholde kampanjetagger og click id-er. ROASaurus bruker den i sine egne attribusjonsrapporter, også for besøkende som avslo, og sender den ikke til annonseplattformene.
- Å sende bestillingen er en juridisk beslutning. Om den betalte bestillingen til en besøkende som avslo, i det hele tatt kan sendes, er et juridisk spørsmål for butikken din.
Guiden vår om Consent Mode v2 og GDPR forklarer reglene på et overordnet nivå, og Samtykke og personvern har detaljene.
Slik setter du opp server-side tracking på Shopify i ROASaurus
Gjør oppsettstrinnene i denne rekkefølgen:
- Installer appen
Gå til Add a store, velg Shopify, skriv inn
.myshopify.com-domenet ditt og klikk Install app. Godkjenn appen i Shopify. ROASaurus registrerer bestillings-webhookene og slår på app-pixelen sin. - Slå på theme app embed
På siden Tracking & platforms klikker du på Open theme editor, slår på ROASaurus app embed og lagrer.
- Legg til checkout-pixelen
Gå til Settings › Customer events i Shopify admin og legg til en egendefinert pixel med navnet ROASaurus. Sett tillatelsen til Not required, fordi ROASaurus-skriptet sjekker den besøkendes markedsføringsvalg selv. Lim inn kodebiten fra Tracking & platforms. Du trenger denne pixelen for nettleserpixler i checkout og for Google Ads.
- Koble til annonseplattformene dine
På Tracking & platforms klikker du på Add pixel for hver plattform, eller Connect with Facebook for Meta. La alternativet for å også laste nettleserpixelen stå på hvis du vil ha dedupliserte nettleser-events.
- Sjekk butikkinnstillingene
Velg checkout-typen din i Store settings, og behold Respect visitor consent slått på hvis du selger der samtykke er påkrevd.
- Fjern andre avsendere
Fjern denne pixelen fra innstillingene for datadeling i Facebook & Instagram-kanalen. Det er ikke nok å senke nivået for datadeling, fordi alle nivåer, også Standard, sender Meta-pixelen fra nettleseren. Hvis TikTok-appen sender den samme pixelen, må du stoppe den der også, og fjerne pixelkode fra temaet ditt.
Kodebiten for den egendefinerte pixelen ser slik ut. Kopier den fra Tracking & platforms, der butikknøkkelen din allerede er fylt ut. Oppsettguiden for Shopify har de samme trinnene.
self.tl = this; document.head.appendChild(document.createElement('script')).src = 'https://app.roasaurus.com/c.js?k=YOUR_STORE_KEY';Slik sjekker du at det fungerer
Test med én ekte bestilling før du stoler på tallene:
- Åpne butikken din med
?roasaurus=connectedpå slutten av URL-en. En melding bekrefter at skriptet er aktivt. - For Meta limer du inn koden fra Events Manager › Test events i feltet Test event code på pixelen.
- Legg inn en ekte bestilling med lav pris og refunder den etterpå. Shopify-testbestillinger sendes ikke.
- I Event log vises serverleveringen for bestillingen som sendt for hver plattform, med plattformens svar.
- I plattformens testvisning sjekker du at nettleserens og serverens Purchase deler event-ID-en
order-pluss Shopify-bestillings-ID-en. - Fjern testkoden for eventen etterpå.
Hva server-side tracking på Shopify ikke løser
- Avslått samtykke. Bestillinger fra besøkende som har avslått markedsføringscookies, sendes, men uten click id, så annonseplattformene matcher dem dårligere.
- Safaris cookiebegrensninger. En kunde som kommer tilbake etter mer enn 7 dager, kan se ut som en ny besøkende. Et førsteparts tracking-underdomene holder innsamlingen på ditt eget domene, men Safari kan likevel begrense disse cookiene til 7 dager.
- Forskjeller i attribusjon. Hver annonseplattform krediterer fortsatt salg med sine egne vinduer og modeller. For å sammenligne kanaler med ett sett regler bruker du din egen attribusjon.
- Andre apper på den samme pixelen. Event-ID-er slår bare sammen events som deler dem.
Det den derimot løser, er kjøp som skjedde, men aldri nådde annonseplattformen fordi nettleser-eventen gikk tapt. For hva ROASaurus sender til hver plattform, se server-side tracking og Shopify-integrasjonen.
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
- Hjelp: sette opp ROASaurus på Shopify
- Shopify-integrasjon
- Server-side tracking i ROASaurus
- Hjelp: samtykke og personvern