Ecommerce tracking you can check order by order against your store
The test for ecommerce tracking is simple and almost nobody passes it: take one closed week, and match each order in your store against what each platform reported. Not the totals, which hide offsetting errors, but order by order. Stores that pass have three things in common — purchase sent from the order record rather than a thank-you page, the order ID used as the deduplication key everywhere, and refunds wired as reversals. We build those three things.
Free30 minutesNo obligation
Ecommerce tracking · what breaks
The reasons ecommerce numbers disagree
- 01
Four dashboards, four revenue figures
Summing to more than was banked, with nobody able to say which one to use in a meeting.
- 02
Reported ROAS better than the bank statement
Which is usually how the problem finally gets noticed, and usually months late.
- 03
Refunds never reversed
So the reported number only ever climbs and drifts further from reality at exactly your return rate.
- 04
Wallet and express checkouts skipping the thank-you page
Real orders, real money, no conversion recorded — and the share grows every year.
Ecommerce tracking · the fix
What you get out of it — Ecommerce tracking
One order, one conversion, everywhere
Deduplicated on the order ID, which is stable and already exists, at every destination.
Revenue that reconciles per order
Over a closed window, against your store admin, at an agreed value definition.
Refunds and cancellations reversed
So the number can go down as well as up, which is the only way it stays honest.
The full funnel above purchase
Product view, add to cart, checkout started — sized so bidding has enough volume to learn from.
Ecommerce tracking · architecture
Why the numbers were wrong before you got here — Ecommerce tracking
Worth understanding before buying anything, because it decides which tier you need — and for some readers the answer is that you don't need us yet.
- 1
The browser is the weakest link, and it is getting weaker on purpose
Every browser-side tag has to survive the page loading, the visitor staying, the script running and the request leaving. All four are now contested. The order in your database is certain; the browser event reporting it is not.
- 2
Safari caps the cookie your attribution depends on
Intelligent Tracking Prevention limits JavaScript-set cookies to seven days whatever expiry you set, so a customer who takes longer than a week to decide returns as a stranger. A cookie your own server writes in an HTTP response is not capped — the single largest practical difference between browser-side and first-party server-side.
- 3
Ad blockers remove the tag with no error
A blocked pixel does not warn anyone. The customer buys, the order lands, and no platform hears about it. First-party events from your own subdomain are not a third-party request and are not filtered the same way.
- 4
Consent is enforced by hope, not by architecture
Client-side consent means trusting each vendor script to honour a flag. A server container decides at the container: a denied destination receives nothing. That is a materially stronger position, and it also stops the over-blocking that discards data no law required losing.
- 5
Checkout can end where your tag isn't
Wallets and hosted payment pages can be abandoned after the money moves. Sending the purchase from the order record means it arrives whether or not anyone came back.
Ecommerce tracking · diagnose
How we scope ecommerce tracking
Before quoting. Each step narrows what the work actually is, so the price reflects your account rather than an average.
- 01
Included: full ecommerce event sequence
Defined, built and tested on real orders.
- 02
Included: server-side purchase
From the order webhook, deduplicated on the order ID.
- 03
Included: refund and cancellation reversals
At every destination that supports them.
- 04
Included: per-order reconciliation
Over a closed week, with the residual difference named.
- 05
Not included: fixing your store's data quality
If product IDs are inconsistent between your catalog and your orders, that has to be fixed on your side first.
- 06
Not included: catalog and feed management
Related, genuinely important, and a different discipline.
- 07
Not included: subscription billing
Renewals live in the billing system and need their own treatment. We will tell you if that applies to you.
- 08
Not included: marketplace channels
Amazon and similar do not expose the data this approach depends on.
Ecommerce tracking · prove
How the work gets proven — Ecommerce tracking
A dashboard turning green proves a dashboard turned green. These are what we hand over instead.
Source of truth
Your store admin's order records for the same window, in the same timezone and currency, at an agreed value definition
- Every order in a closed week matched against every platform's reported conversions, individually.
- A real refund confirmed to reverse at each destination, not just the sale confirmed to send.
- A wallet or express checkout order confirmed to report, since that is the path browser-side setups miss.
- The value definition agreed in writing before reconciliation, so nobody is comparing two different numbers.
- Reconciled over a fully closed window, matched on ID rather than on totals — totals hide equal and opposite errors.
- Payload evidence captured from real transactions, saved to your own records.
- The same reconciliation repeated 30 days later, because a setup that works once and drifts is the harder failure.
Ecommerce tracking · free audit
What we check in the free audit
- Included: full ecommerce event sequence
- Included: server-side purchase
- Included: refund and cancellation reversals
- Included: per-order reconciliation
- Not included: fixing your store's data quality
- Not included: catalog and feed management
Checked against
Your store admin's order records for the same window, in the same timezone and currency, at an agreed value definition
Free30 minutesNo obligation
Ecommerce tracking · when not to buy
When you shouldn't buy this — Ecommerce tracking
We would rather say it now than three weeks into an engagement.
- If your platform numbers already reconcile with your store admin within a few percent per order, this is working and there is nothing to buy.
- Check it yourself first: take last week, and match orders to platform conversions one by one. It takes an hour and it is the entire argument.
- If you spend under about a thousand a month on paid media, the browser-side starter is probably the right level and we will say so.
- If your store is on a platform with a genuinely good native integration and you sell in one currency with few refunds, you may already be fine.
Ecommerce tracking · what we deliver
What's included in ecommerce tracking
Purchase from the order webhook
Server-side, from the record, so the customer's browser stops being a dependency.
Order ID as the universal deduplication key
Identical at every destination, without coordination between them.
Full ecommerce event sequence
View, add to cart, begin checkout, purchase — defined, implemented and tested.
Refund and cancellation reversals
Wired at every destination that accepts them.
Customer parameters normalized and hashed
Normalization before hashing is where match quality is usually lost, and it is invisible unless you check.
Reconciliation and handover
Per order against your store admin over a closed week, with the residual difference explained.
Written guarantee
95%+ tracking accuracy
Measured against Your store admin's order records for the same window, in the same timezone and currency, at an agreed value definition. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
The correct browser-side build, done properly and verified on a live transaction. Honest about its ceiling: it will not survive Safari's cookie cap, an ad blocker, or a checkout that ends somewhere your tag isn't. If you spend $1K+/month on paid media, start one tier up.
- Correct events, correct parameters, correct values
- Verified on a live transaction, not in preview
- Reconciled against your own order records
- Written handover you keep
1st-party server-side
Recommended$800One-time fee · most popular
The tier that changes the outcome rather than patching it. Your money events stop depending on the browser: they are sent from your order records through a first-party server container on your own subdomain, so iOS, ad blockers, consent banners and interrupted payment redirects can no longer take them away. Built in 2–4 days. You own the stack outright, with no monthly SaaS.
- First-party server container on your own subdomain
- Money events sent from your order records, not the browser
- Meta, Google, TikTok, Microsoft and LinkedIn all fed server-side
- Deduplicated on a shared event ID, verified at every destination
- First-party cookies beyond Safari's 7-day cap on JavaScript-set cookies
- 95%+ conversion accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid-media channel server-side, plus the offline loop that connects closed revenue back to the click. For advertisers whose spend makes an attribution leak more expensive than the build.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop, so closed revenue reaches bidding
- Refunds and cancellations reversed at every destination
- Klaviyo identity stitching, BigQuery and Looker Studio
- Monitoring, so the next break surfaces in days rather than a quarter
FAQ
Ecommerce tracking questions, answered
Because the pixel only fires if the customer's browser reaches the thank-you page with scripts running. Wallet checkouts frequently skip it, customers close the tab, ad blockers stop it, and Safari limits what survives. The order webhook fires because an order exists, which is a much stronger guarantee. The event either happened or it did not.
It would, without deduplication — which is precisely why the order ID is used as the key everywhere. Meta and TikTok deduplicate on a matched event ID; GA4 does not deduplicate Measurement Protocol events at all, so there we pick one side and enforce it.
Two to four days of implementation for most stores, plus a closed reconciliation window before we would call it verified. We will not claim it works until a full week has been matched order by order.
Renewals happen in the billing system with no browser present, so they need a separate build. If a meaningful share of your revenue is recurring, say so on the call — it changes the scope and we would rather know at the start.
Free · 30 min
Match one week of orders against your platforms
Free30 minutesNo obligation
