Attribution PlaybookMeasurement that survives the browser

Sep 15, 2026 - Attribution Playbook

Why Your Attribution Broke: A Short History of Losing the Signal

Most ecommerce teams know their attribution is worse than it used to be. Fewer can say precisely why, which layer failed, or what a fix actually restores. The erosion came in three distinct waves, and each needs a different response.

Wave one: intelligent tracking prevention

Browser privacy features - led by Safari's ITP - capped the lifespan of cookies set by JavaScript. A shopper who clicked your ad on Monday and bought on Saturday suddenly looked like two different visitors, because the cookie that connected them expired mid-week. Effect: returning visitors were reclassified as new, and multi-touch journeys collapsed into single sessions.

Wave two: ad blockers and tracking protection

Browser extensions and built-in protections began blocking analytics and ad pixels outright. These sessions never appear in your data at all - not misattributed, just absent. Effect: reported traffic and conversions fell below reality, and the missing share skews toward technical, higher-income audiences.

Wave three: cookie deprecation and mobile identifiers

The long phase-out of third-party cookies and mobile ad IDs removed the connective tissue between platforms. Cross-site retargeting and view-through attribution - always the least reliable numbers - degraded most. Effect: platform-reported ROAS diverged further from anything a finance team can verify.

Which fix restores which loss

Wave one's fix is first-party, server-set identifiers with durable lifetimes. Wave two's fix is server-side collection - events sent from your own domain and infrastructure rather than third-party scripts the blocker recognizes. Wave three has no full fix; the honest response is first-party data plus modeled or incrementality-based measurement. The common thread: the closer tracking lives to your own infrastructure and the network edge, the more signal survives.

Your Platforms Disagree Because Their Revenue Is Not Your Revenue

Meta counts gross, Shopify reports net of some things and not others, and the finance sheet has a fourth number. Defining revenue once, tax, shipping, discounts, refunds, is the unglamorous fix under every attribution fight.

The monthly meeting has four revenue numbers on the table and every one of them is defensible. The ad platform claims the most, because it counts the order value it touched, gross, on its own attribution window. Shopify reports less. The analytics tool reports a third figure. Finance, net of refunds and tax, reports the least and trusts only itself.

Teams try to fix this with a better attribution model. The prior problem is dumber: the word revenue names four different arithmetic definitions across the four systems, and until a store picks one definition for channel decisions, model arguments are theatre. This post itemises the differences that account for nearly all of the gap, and how to document a house definition.

The four usual suspects

Tax first. Ad platforms typically receive the order total the store sends them, which often includes tax, while Shopify's total sales figures and finance reporting treat tax as money collected for the state, not revenue. Shipping second: some feeds send shipping in the conversion value, some do not, and a store offering free shipping over a threshold will watch platform revenue wobble with its own shipping policy. Discounts third: whether the conversion value is pre or post discount code depends on the integration, and a heavy promo month widens the gap automatically. Refunds fourth: platforms rarely subtract them, or subtract on the refund date in a different period, while finance nets them against the original sale.

Add the timing difference, platforms counting on click or impression date, the store on order date, and a calendar month comparison that never reconciles is fully explained without anyone's tracking being broken. The overlap of claimed conversions across platforms then inflates the total further: add every platform's claimed revenue for a real store and a figure like 128 percent of actual sales is unremarkable, because the same order is being counted by everyone who touched it.

Write the house definition down

Pick the number channel decisions will use, for most stores that is Shopify order value net of discounts, excluding tax, with a stated shipping treatment and a stated refund window, and publish it in the same document as your attribution model and window. Then teach the reconciliation as a monthly ritual: platform claims on one side, house revenue on the other, and the expected gap explained by the four suspects rather than investigated as an anomaly each month.

The payoff is that arguments move to the question that matters. Whether paid social causes sales is worth a holdout. Whether its dashboard number matches finance is a definitions question that was settled in the document, and settled questions stop eating meetings.

Related reading: Glossary, About, Attribution Windows: Why 1 Day View and 7 Day Click Never Agree.

Frequently asked questions

Why do ad platforms claim more revenue than the store made?

Two reasons compound: each platform counts conversions on its own definitions, often gross of tax or refunds and on click date rather than order date, and multiple platforms claim the same order. Summed claims exceeding actual revenue, sometimes by a quarter or more, is structural, not evidence of a broken pixel.

What revenue definition should we use for channel decisions?

One, written down: typically order value net of discount codes, excluding tax, with an explicit choice on shipping and on how refunds within a set window are handled. The exact choice matters less than using it consistently across channels and months.

Does Shopify revenue match finance revenue?

Not automatically. Shopify's sales reports have their own treatments of tax, shipping, returns, and gift cards, and finance usually reports net of refunds and excluding tax collected. Reconcile the two once, document the bridge, and reuse it instead of rediscovering the differences monthly.

Should we send platforms net or gross conversion values?

Send the value that matches your house definition if your integration allows it, usually net of tax, so platform optimisation and your reporting at least argue about the same number. Where the integration sends a fixed definition, record what it sends in the attribution document.

Frequently asked questions

Why did attribution get so much worse so quickly?

Several supports fell at once: third party cookies declined, mobile platforms restricted tracking, consent rates cut the observable share, and journeys spread across devices. Each change removed signal the old models quietly depended on.

Is last click attribution still useful for anything?

As a rough operational signal for bottom funnel activity, cautiously. As a budget setting truth it misleads, because it credits the last touch for demand other channels created and cannot see the touches privacy changes hid.

What should replace a single attribution model?

A blend: platform data read with scepticism, controlled experiments and holdouts for big questions, and marketing mix thinking for budget level decisions. No single replacement carries the certainty the old dashboards pretended to.

How should teams talk about attribution uncertainty?

Openly, with ranges and confidence stated. Reports that admit what cannot be observed produce better budget decisions than precise numbers built on a shrinking, biased sample presented as complete.