Two things happened this week that every DTC brand running paid media needs to understand. Both are quiet. Neither comes with an alert in your dashboard. And together they explain why your attribution numbers are getting less trustworthy at the exact moment your platforms are making them look more complete.

 Here's what's actually going on. 

1. A significant portion of your Meta conversions are now estimated — not measured

Meta's Aggregated Event Measurement has been filling in attribution gaps with modeled conversions for a while. What changed this week is that this practice is now the structural default, not an exception. When a user's signal is lost - through iOS privacy settings, browser restrictions, or consent denial - Meta doesn't leave a blank in your reporting. It estimates what probably happened and adds it to your attributed conversions.

This shows up in your Ads Manager as a normal conversion. There is no asterisk. There is no "modeled" label. The number looks identical to a real measured conversion.

Here's the problem - those modeled conversions flow directly into your ROAS calculation, your campaign performance scores and your Smart Bidding inputs. You are optimizing on numbers that are partially synthetic — and the platform deciding how many conversions to estimate is the same platform you're paying.

This is what "Meta grades its own homework" means in practice. It's not a framing device. It's a structural conflict of interest baked into the measurement layer.

How to check if this is affecting your account

Pull your Shopify revenue for a given period and compare it to Meta's attributed revenue for the same period and same attribution window. If Meta's number is consistently higher - not occasionally, not by a rounding difference, but systematically - you have modeled conversions inflating your reported performance. Your real ROAS is lower than your dashboard shows.

The gap between Meta's number and Shopify's number is your modeled conversion inflation rate. That number tells you how much of your optimization strategy is built on estimates.

2. Brands rushing to server-side tracking are creating a new attribution problem

The industry response to signal loss has been server-side event tracking, running Conversions API directly from your server rather than relying on browser pixels. This is the right instinct. The execution is where it's breaking down.

The most common failure: deduplication isn't configured properly. When both a browser pixel and a Conversions API event fire for the same purchase, Meta counts it as two conversions if deduplication keys aren't matched correctly. Your event quality score looks fine. Your dashboard looks fine. But your reported conversion volume has doubled on affected orders.

That doubled signal flows back into Meta's bidding algorithms. Meta sees more conversions than actually happened. It bids more aggressively. Your CPMs go up. And because your ROAS still looks healthy — because the inflated conversion count keeps the ratio from tanking — nobody flags it.

Server-side tracking done right eliminates noise. Server-side tracking done wrong amplifies it — and the amplification is invisible inside the platform.

How to run a deduplication audit

Compare your Conversions API purchase event count against your Shopify order count for the same time window. They should match within a few percentage points. If Conversions API is reporting significantly more purchase events than Shopify recorded orders, you have a deduplication failure. Your entire bidding stack is running on corrupted signal.

Check your event deduplication key setup. Meta uses the event_id parameter to match browser and server events. If the event_id values don't match between your pixel and your CAPI implementation — or if one side isn't sending them at all — deduplication fails silently.

The throughline - platforms are filling the signal gap with estimates, and presenting the estimates as data

Last week I wrote about Meta reclassifying conversions — changing what counted as a "conversion" and retroactively changing performance benchmarks. This week is the same dynamic from a different angle. The signal loss created by privacy changes and iOS restrictions didn't make platforms show lower numbers. It made them model higher ones.

The shift to dual-model attribution — MTA for tactical campaign decisions, MMM for quarterly budget allocation — is a real and necessary response to this environment. But both models require accurate input data. Modeled Meta conversions fed into an MTA model don't give you multi-touch insight. They give you a multi-touch model built on guesses, optimized toward outcomes that may not have happened.

The fix is the same fix it always is - anchor to revenue your own systems recorded. What Shopify confirmed as a completed purchase. What your CRM logged as a new customer. Not what an ad platform estimated, modeled, or attributed after the fact.

That's the data foundation that makes every other model — MTA, MMM, or anything else — actually work. Want to see how this works in your numbers? Book a demo.

Frequently asked questions

What is Meta Aggregated Event Measurement (AEM) and how does it affect my ROAS?

Meta's Aggregated Event Measurement fills attribution gaps caused by iOS privacy restrictions and consent denials by modeling what conversions probably occurred. These modeled conversions appear in Ads Manager as normal attributed conversions — no label, no asterisk. They flow into your ROAS calculation, making reported performance look higher than your actual Shopify revenue supports.

How can I tell if Meta is modeling my conversions?

Compare Meta's attributed revenue for a given period against your Shopify revenue for the same period and attribution window. If Meta consistently reports higher revenue than Shopify recorded, a portion of your conversions are modeled estimates. The systematic gap between the two numbers is your modeled conversion inflation rate.

What is CAPI deduplication and why does it matter?

When both a browser pixel and a Conversions API server-side event fire for the same purchase, Meta can count the purchase twice if deduplication keys aren't configured correctly. This inflates your reported conversion volume, which trains Meta's bidding algorithms on artificially high signals, drives up CPMs, and corrupts campaign optimization — all while your dashboard looks normal.

How do I audit my Conversions API setup for deduplication errors?

Compare your CAPI reported purchase event count against your Shopify order count for the same window. They should match within a few percentage points. If CAPI reports significantly more events than Shopify recorded orders, deduplication is failing. Check that your event_id parameter is being sent and matches between your pixel and server implementations.

Why do MTA and MMM models both break when Meta data is used as input?

Both Multi-Touch Attribution and Marketing Mix Modeling require accurate conversion data as inputs. When Meta's reported conversions include modeled estimates or deduplication failures, those errors propagate through every model built on top of them. An MTA model fed modeled conversions produces modeled attribution — not actual channel performance insight. Anchoring to verified Shopify order data is what makes either model trustworthy.