Migrating from browser-only tracking to first-party server-side
The migration itself is straightforward; the mistakes are in sequencing. Legacy firing paths keep running after the container goes live unless they're deliberately removed, which is how accounts end up double-counting on the day they thought they'd improved measurement. The order that works is: measure the gap first, stand up the container alongside the existing setup, verify deduplication, then remove the legacy paths one at a time with a reconciliation between each.
Free30 minutesNo obligation
Server-side migration · what breaks
The situation, as it usually presents — Server-side migration
- 01
A measured gap between orders and reported conversions
Which is the precondition — without it, this may not be worth doing.
- 02
Safari and iOS a meaningful share of traffic
Where the seven-day cookie cap does most of its damage.
- 03
A checkout that can lose the browser event
Wallets and hosted payment pages.
Server-side migration · the fix
What changes — Server-side migration
Money events sourced from records
Rather than from a browser three forces are working against.
Cookies that outlive the consideration window
Set in an HTTP response, so the cap doesn't apply.
Consent enforced at the container
A denied destination receives nothing.
Server-side migration · architecture
Why this pattern keeps recurring — Server-side migration
Most migrations that go wrong go wrong in the same two ways, and both are avoidable by sequencing.
- 1
Legacy paths keep firing
The container going live doesn't switch anything off. Both send, and the account double-counts on the day it was meant to improve.
- 2
Correctness has to precede durability
Moving a broken event to a server produces a broken server event, delivered more reliably.
- 3
Hosting is a decision, not a detail
Cost, data residency and who holds the keys are easier settled before the tags exist than after.
- 4
Ownership outlives the build
A server container is infrastructure. Without someone who notices when it breaks, it degrades quietly.
Server-side migration · diagnose
How the root cause gets found — Server-side migration
In this order. Each step rules out a class of cause, so the last one usually has a single explanation standing.
- 01
Measure the gap and segment by browser
The finding that determines whether to proceed at all.
- 02
Audit whether the browser events are correct
Correctness first.
- 03
Inventory every existing firing path
All of them survive the migration unless removed.
- 04
Confirm backend order data is reachable
A webhook or API — without it the container is only a proxy.
- 05
Decide hosting
Before building.
Server-side migration · prove
How the work is proven — Server-side migration
Against the client's own records, not a dashboard turning green.
Source of truth
Backend order records, segmented by browser
- Tagging subdomain resolving on the client's own certificate.
- First-party cookies confirmed persisting past seven days in Safari on a real device.
- Purchase within a few percent of backend orders for a closed week.
- Deduplication confirmed at every destination before legacy paths were removed.
- Consent verified by denying it and confirming nothing leaves.
- Reconciled over a fully closed window, matched on ID rather than on totals.
- Payload evidence captured from real transactions and handed over.
- The same reconciliation repeated 30 days later.
Server-side migration · free audit
What we check in the free audit
- Measure the gap and segment by browser
- Audit whether the browser events are correct
- Inventory every existing firing path
- Confirm backend order data is reachable
- Decide hosting
Checked against
Backend order records, segmented by browser
Free30 minutesNo obligation
Server-side migration · when not to buy
Why there are no client numbers on this page — Server-side migration
Most agency case studies lead with a percentage. This one doesn't, and the reason is worth stating.
- We don't publish client results we can't substantiate. An audit of this site in August 2026 found named testimonials and before-and-after figures that had never been measured — all of it was removed, and nothing has replaced it that isn't checkable.
- The results that do exist belong to clients under agreement. Publishing anonymised numbers without their sign-off would be the same problem in a thinner disguise.
- What we will commit to in writing is 95%+ conversion accuracy and 8+ Meta Event Match Quality, reconciled against your own order records. That is checkable by you, which a case study percentage never is.
- For proof from actual clients, the video testimonials on the site are real people describing their own rebuild. That is the strongest evidence we have, and it isn't a number we wrote.
Server-side migration · what we deliver
What the work involves — Server-side migration
Container on the client's own subdomain
Their domain, their certificate, hosting of their choosing.
Events wired from backend records
Purchase, refund, renewal, qualified lead.
Deduplication configured per destination
Verified before any legacy path is removed.
Legacy paths removed one at a time
With a reconciliation between each, so a regression is attributable.
Written guarantee
95%+ tracking accuracy
Measured against Backend order records, segmented by browser. 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
Repairs the fault in your existing browser-side setup and verifies it on a live transaction. Honest about its ceiling: it fixes this instance, not the class.
- Root cause fixed, not worked around
- Verified on a live transaction
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Removes the class of failure rather than this instance. Money events sent from your order records through a first-party container on your own subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your order records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, 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
- Refunds reversed at every destination
- Monitoring so the next break surfaces in days
FAQ
Server-side migration questions, answered
You should. Run them in parallel with deduplication verified, then retire the legacy paths one at a time with a reconciliation between each.
Then we say so and you don't do the migration. That finding costs a day and can save the whole build.
Two to four days for the build, plus the reconciliation window. Retiring legacy paths adds a few days if done carefully, which it should be.
Usually a site release that changes the data layer. Monitoring catches it in days rather than at quarter end.
