Skip to main content
Server-side migrationEngagement pattern

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

  1. 01

    A measured gap between orders and reported conversions

    Which is the precondition — without it, this may not be worth doing.

  2. 02

    Safari and iOS a meaningful share of traffic

    Where the seven-day cookie cap does most of its damage.

  3. 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. 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. 2

    Correctness has to precede durability

    Moving a broken event to a server produces a broken server event, delivered more reliably.

  3. 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. 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.

  1. 01

    Measure the gap and segment by browser

    The finding that determines whether to proceed at all.

  2. 02

    Audit whether the browser events are correct

    Correctness first.

  3. 03

    Inventory every existing firing path

    All of them survive the migration unless removed.

  4. 04

    Confirm backend order data is reachable

    A webhook or API — without it the container is only a proxy.

  5. 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

Get my free conversion tracking audit

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.

Get my free conversion tracking audit

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
Fix what I have

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
Rebuild it server-side

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
Get the full stack

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.

Free · 30 min

Migrate without double-counting

Free30 minutesNo obligation