- Webbläsarpixlar missar ordrar som slutförs utanför den vanliga kassan, som postförskottsformulär, externa kassor, orderformulär och funnels.
- En order med postförskott förblir obetald tills transportören tar betalt, så en uppsättning som skickar köp vid betalning rapporterar den sent eller aldrig.
- Meta avvisar händelser med en händelsetid som ligger mer än 7 dagar bakåt i tiden, så de flesta butiker med postförskott bör skicka köpet när ordern skapas eller bekräftas.
- Vägrade ordrar finns kvar i Ads Manager, så dividera din break-even-ROAS med andelen ordrar som blir betalda.
- I ROASaurus väljer du External / COD checkout i Store settings för att skicka Shopify-köp när ordern skapas.
Konverteringstracking för postförskott innebär att du skickar varje köp till dina annonsplattformar från själva ordern, på servern, i stället för att förlita dig på en webbläsarpixel på en tacksida. Ordrar från appar för postförskott, externa kassor, orderformulär och funnels slutförs ofta utanför den vanliga kassan, så pixeln missar dem eller rapporterar dem vid fel tidpunkt.
Den här guiden förklarar varför de ordrarna försvinner och varför betalstatusen spelar roll. Den jämför tre tidpunkter för att skicka köpet: när ordern skapas, när den bekräftas och när den betalas. Den tar också upp vägrade ordrar och återbetalningar, och hur ROASaurus hanterar externa kassor.
Varför missar pixlar ordrar med postförskott?
En webbläsarpixel rapporterar ett köp när köparen når en sida som kör den. Det är vanligtvis tacksidan i din kassa. Varje orderväg som hoppar över den sidan, eller kör den på en annan domän, förlorar köphändelsen eller det annonsklick som hör till den.
| Orderväg | Där ordern slutförs | Vad som går fel med en webbläsarpixel |
|---|---|---|
| App med formulär för postförskott | Ett formulär på produktsidan; appen skapar ordern | Butikens kassa körs aldrig, så dess köphändelse utlöses aldrig |
| Extern kassa | En kassa som drivs av en annan app, ofta på en annan domän | Din pixel kanske inte laddas där, och annonsklickets cookies finns kvar på din butiksdomän |
| Orderformulär eller manuell order | Ett formulär, en chatt eller ett telefonsamtal; personal lägger in ordern | Det finns ingen webbläsarsession som en pixel kan se |
| Funnel med egen kassa | En byggare av landningssidor på en egen domän | Annonsklicket finns på en domän och köpet på en annan |
Själva ordern går aldrig förlorad. Den hamnar i din webbshop eller ditt funnelverktyg med ett order-id, ett belopp, en e-postadress och ofta ett telefonnummer. Därför är den pålitliga lösningen att skicka köpet från orderdatan, server-side, och att föra med annonsklicket till ordern. Server-side tracking på Shopify förklarar den allmänna metoden. Det här inlägget tar upp de ordrar som kräver extra omsorg.
Vissa appar för postförskott utlöser också egna pixelhändelser. Om de använder samma pixel som din server-side tracking men ett annat händelse-id räknar plattformen ordern två gånger. Stäng av de apphändelserna, eller följ stegen för att förhindra dubbelräkning.
Därför spelar betalstatusen roll
En kortbetalning dras i kassan, så ordern är betald i samma stund som den finns. En order med postförskott är annorlunda. Shopify listar postförskott som en manuell betalningsmetod, och de här ordrarna förblir Payment pending tills du markerar dem som betalda. I praktiken sker det efter att transportören har tagit betalt, vilket kan ta flera dagar. Vissa ordrar blir aldrig betalda alls, eftersom köparen vägrar paketet eller inte är hemma.
Många trackinguppsättningar skickar köpet när ordern är betald, eftersom det för kortordrar är den säkraste tidpunkten. För en order med postförskott innebär samma regel att köpet kommer flera dagar för sent eller aldrig. Loggen nedan visar ett typiskt fall i en butik som skickar köp vid betalning.
14 Oct 10:02 orders/create #4821 $50.00Order lagd med postförskott, betalning väntar14 Oct 10:02 PurchaseSkickades inte: den här butiken skickar köp när de är betalda16 Oct 09:40 #4821 shippedPaketet lämnat till transportören22 Oct 15:12 orders/paid #4821Markerad som betald efter att transportören betalat ut22 Oct 15:12 Purchase event_time=14 OctAvvisad: händelsetiden är mer än 7 dagar gammalWooCommerce fungerar tvärtom. Det sätter ordrar med postförskott till Processing tills betalningen är inkasserad, utom ordrar med en nedladdningsbar produkt, som hamnar i On hold. En uppsättning som skickar ordrar i Processing skickar dem därför så snart de läggs. Kontrollera vilken status din plattform ger de här ordrarna innan du bestämmer något annat.
Skapad, bekräftad eller betald: när ska du skicka köpet?
Det finns tre tidpunkter att välja mellan. Varje tidpunkt väger snabbhet mot noggrannhet.
| Skicka köpet när ordern är | Typisk fördröjning efter ordern | Inkluderar ordrar som aldrig betalas | Största risk |
|---|---|---|---|
| Skapad | Sekunder | Ja: vägrade och falska ordrar | Ads Manager visar mer intäkter än du får in |
| Bekräftad av ditt team, via telefon eller meddelande | Timmar till en dag | Bara vägrade ordrar | Kräver ett bekräftelsesteg som kan utlösa händelsen |
| Betald eller levererad | Dagar till veckor | Nej | Sen eller förlorad: annonsklicket hamnar utanför attributionsfönstret, eller så avvisas händelsen |
Därför är sena köphändelser ett problem
Annonsplattformar tillskriver ett köp till en annons bara när det sker inom attributionsfönstret efter klicket. Med en klickattribution på 7 dagar på Meta räknas ett köp för en annons upp till 7 dagar efter klicket. Metas Conversions API tar inte heller emot händelser vars event_time ligger mer än 7 dagar bakåt i tiden, och det avvisar hela begäran när en händelse är för gammal. Ett köp som skickas vid betalning har därför två dåliga alternativ:
- Skicka det med orderns tidpunkt. Om betalningen kom mer än 7 dagar senare avvisar Meta det.
- Skicka det med betalningens tidpunkt. Meta accepterar det, men annonsklicket kan nu vara mer än 7 dagar gammalt, så köpet tillskrivs inte annonsen.
Snabbhet spelar också roll för optimeringen. Kampanjer som optimerar för köp lär sig av de köp du skickar. En signal som kommer en vecka för sent berättar för algoritmen om förra veckans målgrupp.
Vilken tidpunkt du ska välja
För de flesta butiker med postförskott är det bättre standardval att skicka vid skapande. Signalen är omedelbar, klicket ligger fortfarande inom fönstret och inget avvisas. Priset är att vägrade ordrar räknas som köp i Ads Manager. Det korrigerar du för i dina mål, som nästa avsnitt visar.
Om ditt team bekräftar varje order via telefon eller meddelande innan den skickas är bekräftelsen en bra mellanväg. Den tar bort falska ordrar, och den sker oftast inom ett dygn. Använd den när ditt eget system kan skicka köpet vid den tidpunkten, till exempel via ett API. Falska ordrar spelar större roll än de verkar: om annonsplattformen lär sig av dem letar den efter fler människor som lägger ordrar och inte betalar.
Så hanterar du vägrade ordrar, avbeställningar och återbetalningar
När ett köp har skickats finns det kvar i Ads Manager. Ett paket som vägras vid dörren tar inte bort det. ROASaurus skickar inte heller återbetalningar eller avbeställningar till Meta, TikTok och de flesta andra annonsplattformar, så intäkterna de rapporterar inkluderar ordrar som du aldrig fick betalt för. Bara värden i Google Ads och Microsoft Advertising kan korrigeras efter en återbetalning, när värdekorrigeringar är påslagna. Lösningen är att mäta din andel vägrade ordrar och justera de siffror du jämför mot.
Här är ett genomgånget exempel för en månad. För enkelhetens skull är priserna utan moms.
| Rad | Belopp |
|---|---|
| Ordrar som skickats till Meta vid skapande | 200 ordrar × $50 = $10,000 |
| Vägrade vid dörren (18%) | 36 ordrar, $1,800 |
| Levererade och betalda | 164 ordrar, $8,200 |
| Produktkostnad för levererade ordrar (30%) | −$2,460 |
| Frakt för alla 200 paket à $6 | −$1,200 |
| Returfrakt för 36 vägrade paket à $6 | −$216 |
| Avgift för kontantinkassering, $1.50 per betald order | −$246 |
| Hantering, $1 per order | −$200 |
| Bruttovinst | $3,878 |
Med $3,000 i annonskostnad ser samma månad mycket olika ut beroende på vilka intäkter du använder:
Bruttomarginalen på levererade intäkter är $3,878 ÷ $8,200 = 47.3%, så break-even-ROAS är 1 ÷ 0.473 = 2.11. Den break-even gäller levererade intäkter. Ads Manager räknar också de vägrade ordrarna, så du måste räkna om den innan du jämför. Break-even-ROAS förklarar grundformeln.
- Break-even-ROAS
- 1 ÷ bruttomarginal, beräknad enbart på betalda ordrar.
- Betalningsandel
- Andelen ordrar som betalas, till exempel 82% när 18% vägras.
2.114 ÷ 0.82 = 2.58. En kampanj som visar mindre än 2.58 i Ads Manager går med förlust, trots att den ser ut att ligga långt över 2.11.
Du kan kontrollera resultatet direkt. Annonserna går på break-even när annonskostnaden är lika med bruttovinsten på $3,878, och $10,000 i rapporterade intäkter ÷ $3,878 = 2.58.
Andelen vägrade ordrar skiljer sig ofta mellan regioner, produkter och kampanjer. Räkna ut den per kampanj när du har tillräckligt många ordrar, och använd POAS-kalkylatorn för att kontrollera resultatet på bruttovinst.
Återbetalningar och avbeställningar i dina egna siffror
På Shopify når avbeställningar och återbetalningar ROASaurus via webhook, så vinstanalysen räknar återbetalningar mot intäkterna. Du väljer om avbeställda ordrar som aldrig expedierats ska räknas, och som standard utesluts de. En avbeställd order som redan skickats finns kvar, eftersom fraktkostnaden ändå kostade dig pengar. För nya ordrar som fortfarande kan komma tillbaka håller inställningen Predicted returns inne en förväntad andel av försäljningen tills verkliga återbetalningar kommer in.
Så hanterar ROASaurus postförskott och externa kassor
Shopify
Varje Shopify-butik har en Checkout type i Store settings, med två alternativ:
- Shopify checkout: köpet skickas när Shopify rapporterar ordern som betald, via webhooken
orders/paid. - External / COD checkout: köpet skickas när ordern skapas, via webhooken
orders/create. Använd det för postförskott och för externa kassor, som CheckoutChamp eller Checkify, som skapar Shopify-ordern själva.
Inställningen gäller varje order i butiken. Kortordrar som betalas i kassan skapas och betalas nästan i samma ögonblick, så valet ändrar främst när obetalda ordrar skickas. Varje order skickas en gång. När den betalda uppdateringen för en order med postförskott kommer senare skickas inget andra köp.
Köpet använder orderns egna data: beloppet, valutan, produkterna samt köparens e-post, telefonnummer och adress, hashade innan de lämnar systemet. ROASaurus matchar ordern mot annonsklicket via det besökar-id som skriptet sparar på varukorgen. När en order inte bär det försöker ROASaurus, i den här ordningen: varukorgs- och kassatokens, köphändelsen från kassan, en e-postadress som besökaren angett tidigare på din sajt, samt samma IP-adress och webbläsare strax före ordern, när exakt en besökare passar. Sidan Shopify-integration har hela uppsättningen.
WooCommerce och andra webbshoppar
WooCommerce-pluginet skickar en order när den når Processing eller Completed. Ordrar med postförskott når Processing när de läggs, så de skickas direkt. Ordrar med banköverföring skickas när de flyttas till Processing. Övriga kopplingar för webbshoppar skickar en order vid dessa tidpunkter:
- Wix, Squarespace, Ecwid, Lightspeed, CCV Shop och Shopware: när orderns betalstatus är betald.
- BigCommerce: när ordern når en status som Awaiting Fulfillment, Awaiting Shipment, Shipped eller Completed.
- Magento: när orderns status är Processing eller Complete.
- PrestaShop: när ordern markeras som giltig.
- Custom webhook och orders API: när ditt eget system skickar ordern.
Kontrollera hur din plattform markerar ordrar med postförskott. Om de förblir obetalda tills transportören betalar ut kommer deras köp sent.
Funnels och din egen kassa
- Lägg till skriptet på funnelsidorna
Använd samma butiksnyckel som din webbshop, så att en besökare behåller ett besökar-id på båda domänerna.
- Lista dina domäner
Under Store settings lägger du till funnel- och butiksdomänerna under Linked domains. Länkar mellan de domänerna för då med sig besökar-id:t och klick-id:n.
- Skicka ordrarna via orders API
Om funneln tar emot ordern själv, posta varje order till
/api/v1/ordersmed cookien_tlsomvisitor_id. Ditt system bestämmer tidpunkten: vid skapande, vid bekräftelse eller vid betalning. - Kontrollera Event log
När de första riktiga ordrarna kommer in öppnar du Event log och kontrollerar att varje order skickades till varje ansluten plattform.
POST /api/v1/orders
X-Roasaurus-Key: <store key>
Authorization: Bearer <API key>
Content-Type: application/json
{
"order_id": "F-20931",
"created_at": "2026-10-20T14:05:00Z",
"total": 50.00,
"currency": "USD",
"email": "buyer@example.com",
"phone": "+15555550123",
"country": "US",
"visitor_id": "<value of the _tl cookie>",
"click_ids": { "fbc": "<_fbc cookie>", "fbp": "<_fbp cookie>" },
"client_ip": "203.0.113.7",
"user_agent": "Mozilla/5.0 ...",
"items": [{ "variant_id": "SKU1", "quantity": 1, "price": 50.00 }]
}Orders API behåller den första kopian av varje order-id. Om ditt system anropar det vid skapande och igen vid betalning skickar bara det första anropet ett köp. Mer detaljer finns i funnels och flera domäner.
Vanliga misstag att undvika
- Att vänta på betalstatus i en butik med postförskott. Köp kommer en vecka för sent eller inte alls, och sena händelser avvisas eller hamnar utanför attributionsfönstret.
- Att jämföra ROAS i Ads Manager med en break-even som är gjord för betalda ordrar. Dividera break-even med din betalningsandel först.
- Två källor för ett köp. En formulärapps egen pixel och dina serverhändelser räknar samma order två gånger. Se dubbla köphändelser.
- Att tappa klicket mellan domäner. En funnel på en annan domän behöver skriptet och länkade domäner, annars kommer dess ordrar utan annonsklick.
- Att utelämna manuella ordrar. Ordrar via telefon och chatt har ingen webbläsarsession, men de har ändå en e-postadress eller ett telefonnummer. Skickade från orderdatan ger de annonsplattformen något att matcha mot.
Källor
- Meta for Developers: Server Event Parameters
- Shopify: WebhookSubscriptionTopic (GraphQL Admin API)
- Shopify Help Center: Manual payment methods
- Shopify Help Center: Understanding your order statuses
- WooCommerce: Cash on Delivery documentation