Storefronts running paid acquisition, checkout extensions and post-purchase upsell apps, subscription and replenishment brands, and the billing system that renews all of it
Direct to consumer
Every paid channel in the account is bidding against a purchase event, so whatever that event reports is what the media does next. The work is making the purchase leave the site once, with the value the store actually recorded, to every platform that has to act on it, and then building the reporting on top of inputs that have been checked rather than assumed.
Paid, fixed scope · Within ten business days after complete access
Where the click dies
This one dies after the sale, twice. The drawing below follows one purchase leaving the browser, and one renewal arriving with nothing behind it.
Where it dies
The order is counted twice and the repeat order is credited to nobody. The tag in the page and the event from the server describe the same purchase, and they collapse back into one sale only where both were built to send the same event ID. The renewal is the second death: it arrives with no line back to the click that produced the first order unless the original source was stored on the customer record and re-attached to it.
What breaks
Diagnosed first-hand on live accounts, not read off vendor documentation.
The purchase event is the one input the whole account is optimised against, and it is routinely wrong in three separate ways before anyone reads a report. One order arrives as two: the theme fires a purchase, then a checkout extension or an app fires it again, or browser and server both send it without a shared event ID to say it happened once. Value is a second, quieter problem. Whether it includes discounts, tax and shipping depends on which surface sent it, so the platforms disagree by an amount nobody can reconcile back to the store record. The largest defect is the one nobody is looking at. A subscription renewal is created by the billing system, not by a browsing session, so it carries no campaign source at all. Every recurring order is credited to nothing, and the channel that acquired a customer is judged on their first order alone.
Why nobody catches it
Blended return on ad spend still reads as plausible, because the double count and the missing renewals push in opposite directions and partly cancel each other out. The figure that would expose it, revenue per acquired customer by channel over time, is on no platform dashboard by default and has to be built on purpose. So the brand scales the channel that wins the first order and quietly starves the one that wins the customer who stays, and the decision looks data-driven the whole way down.
The work
An order-level reconciliation against the store record, the event and value definition in writing, and the identifier the renewal will be joined on.
- 01Reconcile a day of orders against the store record before touching a tag, because the size and direction of the gap decides what gets fixed first
- 02Give the purchase one owner per destination, with a shared event ID wherever browser and server both send it
- 03Settle the value definition once, in writing, including whether it carries discounts, tax and shipping
- 04Write the acquisition source onto the customer record, so a renewal months later can be joined back to it instead of reconstructed from memory
Where it goes missing
The same money, four or five different ways to lose it.
Each of these is a boundary the transaction crosses on its way to being recorded, and each breaks for a structurally different reason, so each one has its own page. Most stacks are running more than one of them at the same time, which is why fixing the obvious one often moves the number less than expected.
- Hosted checkoutStorefronts where the purchase completes on the commerce platform rather than in your own page, and post-purchase scripts run inside a sandboxRead →
- Subscription billingReplenishment and membership brands, recurring charges created on a schedule, dunning and retry flows, and any plan that renews without the customer visitingRead →
- Headless storefrontCustom front ends on their own domain with commerce, cart or checkout served from a platform domain, and any storefront where the buyer changes host mid-purchaseRead →
- Post-purchase upsellOne-click upsell apps, post-purchase offer pages, subscription upgrades taken at checkout, and any flow that changes an order after it is first createdRead →
- Server-side eventsConversions API and server-side tagging setups, hybrid browser plus server sends, and any account where a vendor installed server events on top of an existing pixelRead →
Other industries
- Live entertainmentTrampoline parks, waterparks, family entertainment centres, bowling, mini golf, escape rooms, laser tagRead →
- B2B lead generationDemand generation teams, sales-led pipelines, CRM-owned qualification stages, long consideration windows, and a handoff meeting where two systems disagreeRead →
Start with the smallest useful check
Send one Ecommerce and subscription account and we will read its setup before anyone signs anything.
Send the domain, the customer journey, and the platforms that should receive it. The tracking audit shows what is working, what is missing or duplicated, and the exact build recommended next.
Paid, fixed scope · Within ten business days after complete access
