Skip to content
Bach.ai

Cookieless Attribution: An MER + Incrementality Stack

Your pixel used to tell a clean story: this person saw the ad, clicked, came back four days later, and bought. That story was always part fiction, but now it is mostly gone. Browser tracking restrictions, consent gating, and shorter identifier lifetimes have quietly deleted the deterministic trail your reporting was built on. The mistake most operators make is treating this as a tooling problem with a tooling fix. It is not.

Cookieless attribution for DTC is not a single tool swap. It is a layered stack, and each layer does a job the others cannot. Build it as four layers: server-side event capture, modeled conversions, MER as your ledger of truth, and incrementality testing as your proof of causation. No single layer is “the answer.” Together they stay honest when deterministic signal disappears.

For the surrounding account decisions, compare Cookieless Readiness: 9 Tracking Gaps DTC Must Close and use Meta Ads Measurement: Attribution and Incrementality as the next diagnostic.

Be precise about what actually broke

This matters because it changes the fix. You did not lose conversions. You lost observability of the path to them. Specifically:

  • Cross-session linkage. The browser can no longer reliably connect an ad impression today to a purchase next week.
  • Event fidelity. Client-side pixels fire from the browser, where blockers, consent prompts, and dropped scripts silently eat events before they ever leave the device.
  • Deterministic match. Without a durable identifier, the platform increasingly estimates which conversions belong to which ad rather than observing it directly.

If you treat a modeled estimate as if it were an observed fact, every downstream decision inherits the error. The whole point of the stack is to keep what is measured separate from what is modeled, and to never let one masquerade as the other.

Layer 1: Server-side capture (CAPI) — recover the signal you still can

Start by clawing back the deterministic events that the browser is dropping. A server-side conversions API sends purchase, add-to-cart, and lead events from your backend or store platform directly to the ad platform, instead of relying on the browser to fire them.

The wins are concrete:

  • Events sent server-side are far less exposed to blockers, consent-driven script failures, and flaky page loads.
  • Better match quality. When you pass hashed, normalized customer parameters with each event, the platform reconnects more conversions to the right people and ads.

The discipline that separates a working CAPI setup from a vanity one:

  1. Deduplicate properly. If you run both browser pixel and server events, send a shared event ID so the same purchase is not counted twice. Most inflated CAPI reports are just double-counting.
  2. Pass the right user parameters. Match rate climbs with the completeness and cleanliness of the identifiers you send. Normalize before hashing.
  3. Match server events to your real order ledger. Reconcile event volume against actual confirmed orders weekly. A 30% gap between “events sent” and “orders shipped” is a measurement bug, not a performance story.

CAPI is foundational, but understand its ceiling: it improves signal, not causation. It tells the platform more about what happened. It does not tell you whether the ad caused it.

Layer 2: Modeled conversions — accept the estimate, but label it

Once deterministic matching thins out, the platform fills the gap by modeling. It uses the events it can still see to estimate the conversions it cannot directly observe. This is not a workaround you can switch off; it is how reporting works now.

The operator’s job is not to fight the model. It is to handle it honestly:

  • Treat platform-reported conversions as a modeled number, not a counted one. It is directionally useful for in-platform optimization and increasingly unreliable as a source of absolute truth.
  • Feed the model well. Modeling quality depends on signal quality, which loops straight back to Layer 1. Strong CAPI inputs produce better modeled outputs.
  • Give the optimizer enough events to learn. When a campaign or ad set starves for conversion signal, both delivery and modeling get noisier. As a rough planning range, the platform needs enough recent optimization-event volume per ad set to stabilize — think on the order of dozens of conversions a week, not a handful. Treat that as a structuring guideline, not a assured threshold, and consolidate ad sets that cannot clear it.

Modeled conversions keep the in-platform auction working. They are the steering signal. They are not the scoreboard.

Layer 3: MER — your ledger of truth above the platform

This is the layer that stays honest when everything below it gets fuzzy, because it ignores attribution entirely.

Marketing Efficiency Ratio (MER) is total revenue divided by total advertising spend across all channels, for a period. It does not ask which ad gets credit. It asks a blunt, un-fakeable question: for every unit of spend across everything, how much revenue came back?

Why MER anchors a cookieless stack:

  • It is attribution-agnostic. No pixel, no identifier, no modeling assumption can inflate it. Both numbers come from systems you control — your ad bills and your store’s confirmed revenue.
  • It catches the lie that platform ROAS tells. When platform-reported ROAS climbs while blended MER stays flat, the platform is reattributing conversions it would have captured anyway. That gap is the wasted-spend signal.
  • It connects to the only thing that pays the bills. Pair MER with contribution margin. A campaign can post a flattering reported ROAS and still lose money once you account for COGS, shipping, and fulfilment. Always pressure-test efficiency against CPA-to-margin, not against a platform number in isolation.

Read MER as a trend, not a single day. Daily blended figures jump around with order timing; the weekly and monthly slope is where the truth lives. When you scale spend and MER holds or improves, you are buying real incremental revenue. When you scale and MER decays, you are paying more to reach people who were already going to buy.

Layer 4: Incrementality — the only layer that proves cause

Everything above tells you what happened with varying confidence. Only incrementality testing tells you what your spend actually caused — the revenue that would not have existed if the ad never ran.

Two practical, cookieless-safe methods:

  • Holdout / matched-market tests. Split comparable populations into a group exposed to a campaign and a group deliberately held back. The difference in outcomes is your lift. Because it relies on aggregate outcomes rather than individual tracking, no cookie is required.
  • Platform conversion-lift studies. Randomized exposure tests that compare buyers in a treated group against a control. Run these on your largest line items, where the budget justifies the measurement cost.

Incrementality is heavier to run and you cannot test everything at once, so prioritize: your biggest spend lines, your retargeting (the usual home of over-credited “incremental” sales that would have converted anyway), and any channel where reported performance looks too good to be true. As an illustrative planning range, many brands find a meaningful slice of reported conversions — frequently somewhere in the 20-40% band on heavy retargeting — are not truly incremental. Do not take that as a fact about your account; take it as the reason to test before you trust.

Putting the stack together

The four layers are not interchangeable. They answer different questions and reinforce each other:

Layer What it recovers What it cannot do
CAPI Lost deterministic events, match quality Prove causation
Modeled conversions In-platform optimization signal Serve as absolute truth
MER An un-fakeable efficiency ledger Tell you which ad worked
Incrementality Causal, true lift Run cheaply on everything

The operating loop: feed the optimizer with strong CAPI signal, steer day-to-day with modeled conversions, judge real efficiency on the MER trend against margin, and periodically recalibrate your trust in the platform’s numbers with an incrementality test. When the test disagrees with the dashboard, the test wins, and you adjust how much weight you give reported ROAS going forward.

This is also where keeping a clean, reconciled ledger pays off operationally. A read-only operator like Bach can watch the MER-versus-reported-ROAS gap widen and flag it before you have scaled spend into reattributed, non-incremental revenue — but the judgment of what to test next stays yours.

The takeaway

Stop hunting for the one tool that “fixes” attribution. There isn’t one, and anything sold as a perfect deterministic replacement is quietly modeling under the hood anyway. Build the stack instead: server-side events to recover signal, modeled conversions to steer, MER to keep score honestly, and incrementality to prove cause. Deterministic tracking is not coming back. A measurement system that survives without it is the actual deliverable — and the brands that build it now will read their numbers straight while their competitors keep trusting a story the browser already stopped telling.

See what your Meta ads are really costing you.

Connect your account and Bach ranks every revenue leak in minutes — each with the money it costs and a one-tap fix. Free for 7 days, no credit card.

Start Free Audit
Start your free audit