Annonceplatforme og webshops

Server-side tracking til WooCommerce: en opsætningsguide

Sæt server-side tracking op på WooCommerce: send betalte ordrer til Meta og TikTok med ROASaurus-pluginet eller webhooks, match dem med annonceklik, og test.

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

Vigtigste pointer
  • Server-side tracking på WooCommerce sender hver betalt ordre fra shoppens egne ordredata til Meta, TikTok og andre annonceplatforme, så et køb tæller, selv når browserpixelen aldrig affyres.
  • ROASaurus regner en WooCommerce-ordre som betalt, når dens status er processing eller completed, hvilket omfatter efterkravsordrer og bankoverførsler, når du har bekræftet dem.
  • ROASaurus-pluginet gemmer besøgs-id'et og annonceklik-cookies på hver ordre ved checkout, så ordren knyttes præcist til sit annonceklik.
  • Uden pluginet leverer webhooks stadig hver betalt ordre, men der er ingen matching via takkesiden: Ordrer knyttes kun via en e-mail, der er oplyst tidligere på websitet, eller via en unik IP-adresse og browser.
  • På WooCommerce følger ROASaurus-scriptet samtykke-plugins, der bruger WP Consent API, for eksempel Complianz og CookieYes, samt bannerne Cookiebot, OneTrust og IAB TCF.

Server-side tracking på WooCommerce sender hver betalt ordre fra din shops ordredata til Meta, TikTok og andre annonceplatforme i stedet for kun at stole på en pixel i shopperens browser. Købet bliver rapporteret, selv når en adblocker stopper pixelen, eller shopperen aldrig når til takkesiden.

Denne guide dækker, hvorfor WooCommerce-shops mister konverteringer, de ordredata, WooCommerce giver dig, og de to måder at forbinde ROASaurus på: WordPress-pluginet eller webhooks. Derefter matching, samtykke, opsætning og test. Hvis du vil have den overordnede idé, så læs hvad server-side tracking er.

Hvorfor mister WooCommerce-shops konverteringer?

En browserpixel rapporterer kun et køb, når pixelscriptet indlæses, shopperen når til takkesiden, og browseren sender eventet. Hvert trin kan svigte. Selve ordren ligger stadig i din database, fordi WooCommerce gemmer den på serveren.

Hvad der skerBrowserpixelOrdredata i WooCommerce
Shopperen betaler via en omdirigering (for eksempel PayPal eller en bank-app) og lukker fanenIngen takkeside, ingen købseventBetalt ordre, status processing
En adblocker eller privatlivsindstilling blokerer pixelscriptetIntet købseventBetalt ordre
Den besøgende afviser marketingcookiesPixelen må ikke indlæsesBetalt ordre
En bankoverførsel bekræftes tre dage senereIngen browser er åben på det tidspunktStatus skifter fra on hold til processing
Et caching- eller scriptoptimeringsplugin forsinker pixelenEventet kan komme for sent eller mangleBetalt ordre
I alle tilfælde findes den betalte ordre i WooCommerce. Server-side tracking sender den ordre, uanset hvad der skete i browseren.

Manglende køb gør skade på to måder. Annonceplatformen optimerer på færre konverteringer, og dine rapporter viser et lavere afkast, end du reelt får. Her er den anden effekt i tal for en eksempelshop med en break-even-ROAS på 2.2:

Eksempelshop, én månedKun pixelAlle betalte ordrer
Annonceforbrug på Meta$8,000$8,000
Køb fra Meta-klik260320
Omsætning ved $60 pr. ordre$15,600$19,200
ROAS15,600 ÷ 8,000 = 1.9519,200 ÷ 8,000 = 2.40
Mod break-even (2.2)Ser ud som et tabRentabel
Illustrative tal. Den samme kampagne ser ud som et tab på pixeldata og tjener penge på ordredata.

Det, WooCommerce giver dig: ordrer, webhooks og REST API'et

Hvilke ordrestatusser tæller som betalt?

WooCommerce beskriver processing som modtaget betaling, hvor ordren venter på at blive ekspederet. ROASaurus sender ordrer med status processing eller completed og springer ordrer med status pending payment, on hold, failed, cancelled og refunded over. To betalingsmetoder kræver opmærksomhed:

  • Efterkrav. WooCommerce sætter disse ordrer til processing, indtil betalingen er indkrævet, så ROASaurus sender dem, når de afgives. Ordrer med et downloadbart produkt er undtagelsen: De sættes on hold. Se tracking af efterkravsordrer for, hvad det betyder for returneringer og afviste pakker.
  • Bankoverførsel. WooCommerce sætter disse ordrer on hold, mens du verificerer betalingen. ROASaurus sender dem, når du flytter dem til processing.

Webhooks

En webhook er en besked, som WooCommerce sender til et andet system, når noget ændrer sig. Du opretter den under WooCommerce › Settings › Advanced › Webhooks. For et ordreemne er payloaden det samme ordreobjekt, som REST API'et returnerer. Hver levering har en X-WC-Webhook-Signature-header: en base64 HMAC-SHA256-hash af payloaden, lavet med den hemmelige nøgle, du vælger. ROASaurus tjekker den signatur, før den accepterer en ordre.

To detaljer har betydning i praksis. WooCommerce leverer webhooks i baggrunden, som standard med WP-Cron, så en levering kan blive forsinket, når den kø halter. Og WooCommerce deaktiverer en webhook efter mere end fem mislykkede leveringer i træk.

REST API

REST API'et lader ROASaurus selv spørge efter ordrer. Med en skrivebeskyttet API-nøgle spørger ROASaurus hvert 5. minut efter processing- og completed-ordrer, der er ændret siden det seneste tjek, med 30 minutters overlap. Ordrer, den allerede har, ignoreres. Det fanger enhver ordre, en webhook missede.

OrdrefeltHvad ROASaurus bruger det til
idBliver til event-id'et order-1042, som deles af server- og browser-events
totalKøbsværdien: totalbeløbet, inklusive moms og forsendelse
Fakturerings-e-mail, telefon, navn, by, stat, postnummer, landHashes med SHA-256 og sendes som kundedata
customer_ip_address, customer_user_agentSendes med eventet og bruges til at matche ordren med en besøgende
line_itemsProdukt-id'er (variant-id'et, når der er et), antal og priser
date_paid_gmtEventtidspunktet for ordrer fra en webhook eller REST API'et (oprettelsesdatoen, når der ikke er nogen betalingsdato)
meta_dataMed pluginet: besøgs-id'et og Meta- og TikTok-cookies
Det, ROASaurus læser fra en WooCommerce-ordre. Webhooken og REST API'et returnerer de samme felter.

Plugin eller webhooks: to måder at forbinde på

Begge forbindelser sender hver betalt ordre. De adskiller sig i, hvor godt hver ordre bliver knyttet til det annonceklik, der bragte shopperen ind.

CheckoutPluginet gemmer besøgs-id'et og klik-cookies på ordren
Ordre betaltStatus processing eller completed
ROASaurusModtager ordren fra pluginet eller en webhook
AnnonceplatformeMeta, TikTok og andre får et Purchase med event-id'et order-1042
Datastien med pluginet. Uden det gemmer checkout-trinnet ikke noget ekstra, og ordren ankommer kun via webhook.
ROASaurus-pluginKun webhooks
Hvad du installererEt WordPress-plugin (PHP 7.4 og WooCommerce 6.0 eller nyere)Ingenting: en webhook i WooCommerce-indstillingerne
Sådan ankommer ordrernePluginet sender hver betalt ordre til ROASaurus' ordre-APIWooCommerce sender Order updated; valgfrit REST API-tjek hvert 5. minut
TrackingscriptIndlæses af pluginet på hver sideDu tilføjer det selv, for eksempel med WPCode-pluginet eller i dit theme
Besøgs-id og klik-cookies på ordrenJa, gemt ved checkout (klassisk checkout og block checkout)Nej
Browserkøb på takkesidenJa, med samme event-id som server-eventetNej
Matching via takkesidenJaNej
Begge forbindelser sender hver betalt ordre. Kun pluginet knytter hver ordre til dens besøgende ved checkout.

Du kan bruge begge på én gang. Pluginet gemmer besøgs-id'et på ordren som ordre-metadata, og webhook-payloaden tager det med. ROASaurus gemmer hver ordre én gang, efter dens WooCommerce-ordre-id, så pluginet og webhooken aldrig opretter to køb. Pluginet erklærer også understøttelse af WooCommerces High-Performance Order Storage.

Hvordan matches en WooCommerce-ordre med annonceklikket?

En annonceplatform kan kun give en annonce kredit for et køb, når den kan forbinde de to. ROASaurus gør dette ved at knytte ordren til den besøgende, der klikkede på annoncen, og den besøgende bærer klik-id'erne (som fbclid og ttclid) og UTM-parametrene fra landingen. Den prøver disse metoder i rækkefølge og stopper ved den første, der virker:

  1. Besøgs-id'et gemt på ordren. Kun med pluginet. Det er en præcis kobling.
  2. Browserkøbet på takkesiden, som bærer det samme ordre-id. Kun med pluginet.
  3. En hashet e-mail, som den besøgende har oplyst tidligere på dit website, for eksempel i en popup-formular fra Klaviyo, Attentive eller Wisepops eller via et Identify-kald.
  4. Den samme IP-adresse og browser, set fra 3 timer før til 15 minutter efter ordren, men kun når præcis én besøgende passer. På delte netværk, som kontorer og mobiludbydere, deler flere besøgende ofte én IP-adresse, og så gætter ROASaurus ikke.

ROASaurus venter kort, før den sender hvert køb, så eventet fra takkesiden kan nå frem først. Hvis ordren stadig ikke er matchet, prøver den igen ved afsendelsen. Siden Orders viser resultatet pr. ordre i kolonnen Matched by. Ordrer, der er knyttet via pluginets besøgs-id, viser cart, den samme betegnelse som Shopify-ordrer får.

Sendt til Meta for ordre 1042Matchet (plugin)Ikke matchet (kun webhooks)
Event-id order-1042JaJa
Hashet e-mail, telefon, navn og adresseJaJa
Ordrens IP-adresse og browserJaJa
Metas klik-id og browser-id (fbc, fbp)JaNej
Hashet besøgs-id (external_id)JaNej
Annonceklikket i ROASaurus-attributionKlikkets kampagne og annonceVises som direkte eller ukendt
En ikke-matchet ordre når stadig Meta med ordredataene. En matchet ordre tilføjer de klik-identifikatorer, som Meta bruger til at give annoncen kredit.

Disse klik-identifikatorer hæver Metas matchrate for eventet. Event Match Quality forklarer, hvordan Meta scorer dem.

Hver shop i ROASaurus har indstillingen Respect visitor consent, som er slået til som standard. På WooCommerce læser ROASaurus-scriptet den besøgendes valg fra WP Consent API, som samtykke-plugins, for eksempel Complianz og CookieYes, udfylder. Det læser også Cookiebot, OneTrust, IAB TCF-bannere og Google consent mode. Indtil den besøgende accepterer marketingcookies, sætter scriptet intet besøgs-id og indlæser ingen browserpixels.

Når en besøgende afviser, sætter scriptet intet besøgs-id, gemmer ingen klik-id'er og udløser ingen browserpixels, og pluginet gemmer ingen trackingcookies på ordren. Den betalte ordre sendes stadig fra serveren til dine forbundne annonceplatforme med hashede kundedata fra ordren og ordrens IP-adresse og browser. Hvis din juridiske rådgivning siger, at købsevents også kræver forudgående samtykke, så kontakt ROASaurus, før du slår server-side-køb til. Hjælpesiden om samtykke har detaljerne, og indlægget om Consent Mode v2 og GDPR dækker den juridiske baggrund.

Sådan sætter du server-side tracking op på WooCommerce

Det er trinnene for plugin-vejen:

  1. Tilføj shoppen

    Gå til Add a store i ROASaurus, vælg WooCommerce, og indtast det domæne, dine kunder besøger.

  2. Opret en API-nøgle

    Åbn Store settings, og klik under Orders API på Create API key. Kopiér nøglen med det samme: Den vises kun én gang, ved siden af din shopnøgle. Endpointet er adressen foran /api/v1/orders på den side.

  3. Installér pluginet

    Download pluginet, og upload zip-filen i WordPress under Plugins › Add New Plugin › Upload Plugin. Aktiver det derefter.

  4. Indtast nøglerne

    Under WooCommerce › ROASaurus indtaster du endpointet, shopnøglen og API-nøglen og gemmer.

  5. Forbind dine annonceplatforme

    På Tracking & platforms bruger du Connect with Facebook eller Add pixel til Meta, TikTok og de andre. Sæt kryds ved muligheden for også at indlæse browserpixelen, så købet på takkesiden deduplikeres med server-eventet.

  6. Opsæt samtykke, og test

    Bloker scriptet i dit samtykkeværktøj, indtil den besøgende accepterer marketingcookies, og læg derefter en testordre.

Uden pluginet skal du tilføje script-tagget fra Tracking & platforms på hver side og derefter oprette webhooken. Fanen Connection i din shop viser din webhook-URL. Hold den privat: Alle med URL'en kan sende ordrer til din shop.

Webhook-indstillinger
WooCommerce › Settings › Advanced › Webhooks › Add webhook

Status        Active
Topic         Order updated
Delivery URL  (your webhook URL from the Connection tab)
Secret        (a secret of your choice; paste the same one in ROASaurus)
API version   WP REST API Integration v3

Til backup opretter du en nøgle under WooCommerce › Settings › Advanced › REST API med læseadgang. Indsæt consumer key og secret på fanen Connection, gem, og tryk på Test connection. Fetch orders now henter de seneste betalte ordrer med det samme. På WooCommerce-integrationssiden finder du alle muligheder samlet ét sted.

Hvordan tester du server-side tracking på WooCommerce?

Test først browsersiden, læg derefter en ordre, og følg den videre til annonceplatformene.

  • Åbn din shop med ?roasaurus=connected i adressen. En advarsel bekræfter, at scriptet kører. Med ?roasaurus=debug logger scriptet i browserkonsollen, hvad det sender.
  • I Event log skal sidevisninger under Collected events vise et besøgs-id.
  • Læg en testordre. Efterkrav er det hurtigste, fordi ordren har status processing med det samme.
  • På fanen Connection viser Last order received tidspunktet for den seneste ordre.
  • I Event log får hver forbundne platform under Server deliveries en linje med status sent og platformens svar.
PageView visitor 3f9c2a1eScript indlæst med samtykke
Purchase order-1042Takkeside, browserpixels udløst
order 1042 processingModtaget fra pluginet
Meta Purchase sentSamme event-id, deduplikeret
TikTok CompletePayment sentSamme event-id, deduplikeret
Eksempel på en sund testordre med pluginet. Med kun webhooks mangler linjen for takkesiden, og det er forventet.

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. Fjern den, når du er færdig, fordi koden kun er beregnet til test. Hvis pluginet ikke kan levere en ordre, tilføjer det en ordrenote i WooCommerce, der starter med »ROASaurus: order not sent«, efterfulgt af fejlen.

Fejl, du skal undgå

  • Brug af emnet Order created. Ordrer, der betales via omdirigering, oprettes som pending payment. ROASaurus ignorerer ubetalte ordrer, og der følger ingen anden »created«-besked, når betalingen ankommer. Brug Order updated.
  • En hemmelig nøgle, der ikke matcher. ROASaurus afviser en levering, hvis signatur ikke matcher den hemmelige nøgle, den har. Efter mere end fem fejl i træk deaktiverer WooCommerce webhooken. Ret den hemmelige nøgle, sæt webhooken tilbage til Active, og tilføj REST API-nøglen, så ordrer fra hullet bliver hentet.
  • To værktøjer, der sender den samme pixel. Hvis et andet plugin også sender din Meta- eller TikTok-pixel, bruger det sine egne event-id'er, og platformen tæller hvert salg to gange. Slå det fra for den pixel. Se at undgå dobbelttælling og dobbelte købsevents.
  • Forventer add-to-cart-events. På WooCommerce sporer scriptet kun sidevisninger af sig selv. Produktvisninger og tilføjelser til kurven registreres automatisk kun på Shopify. En udvikler kan sende dem med et tlq-track-kald.
  • Forventer Google Ads-konverteringer. ROASaurus sender kun Google Ads-købskonverteringer fra Shopify-checkout. Fra WooCommerce sender den køb til Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn og de andre annonceplatforme, du forbinder.
  • Forsinkede bankoverførsler. Meta accepterer server-events op til 7 dage efter eventtidspunktet. Pluginet sender ordren med den dato, den blev oprettet, så Meta afviser en overførsel, der bekræftes mere end 7 dage efter checkout. Ordrer, der ankommer via webhook eller REST API'et, bruger i stedet betalingsdatoen. Bemærk også, at takkesiden udløser browserkøbet ved checkout, før overførslen er betalt. Hvis betalingen bekræftes mere end 48 timer senere, kan Meta og TikTok ikke samle browser- og serverkopierne, og en overførsel, der aldrig betales, beholder sit browserkøb.

Når ordrerne begynder at komme ind, viser attributionsrapporterne, hvilke kampagner og annoncer de kom fra.

Kilder

  1. WooCommerce: Webhooks Documentation
  2. WooCommerce REST API Documentation - WP REST API v3
  3. WooCommerce: Order Statuses Documentation
  4. WooCommerce: Cash on Delivery Documentation
  5. Meta for Developers: Server Event Parameters

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 webshopsKonverteringstracking med CCV Shop: en opsætningsguideKonverteringstracking 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.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.
FAQ

Spørgsmål, besvaret

Har jeg brug for ROASaurus-pluginet til WooCommerce?

Nej. En WooCommerce-webhook er nok til at sende hver betalt ordre. Pluginet tilføjer besøgs-id'et og klik-cookies til hver ordre og et deduplikeret browserkøb på takkesiden, hvilket knytter ordrer præcist til annonceklik, så det anbefales.

Hvilket WooCommerce-webhook-emne skal jeg bruge?

Order updated med API-versionen WP REST API Integration v3. ROASaurus ignorerer ordrer, der ikke er processing eller completed, og gemmer hver ordre kun én gang, så gentagne opdateringer ikke skaber ekstra køb.

Sendes efterkravsordrer til Meta og TikTok?

Ja. WooCommerce giver efterkravsordrer status processing, når de afgives, og ROASaurus tæller processing-ordrer som betalte. Ordrer med bankoverførsel sendes, når du flytter dem fra on hold til processing.

Hvad sendes, når en besøgende afviser cookies?

Den betalte ordre sendes stadig fra serveren med hashede kundedata og IP-adressen og browseren fra ordren. Scriptet bør ikke køre uden samtykke, så der er intet besøgs-id eller klik-id at knytte ordren til et annonceklik med.

Hvorfor holdt min WooCommerce-webhook op med at virke?

WooCommerce deaktiverer en webhook efter mere end fem mislykkede leveringer i træk. Tjek, at den hemmelige nøgle i WooCommerce matcher den i ROASaurus, sæt webhooken tilbage til Active, og tilføj en REST API-nøgle, så ordrer, der er blevet misset, hentes hvert 5. minut.

Sender ROASaurus Google Ads-konverteringer fra WooCommerce?

Ikke for køb. Google Ads-købskonverteringer sendes kun fra Shopify checkout. Fra WooCommerce sender ROASaurus køb til Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn og de andre annonceplatforme, du forbinder.

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 →