← Back to all blogs← Previous article

Why your Meta ROAS is lying to you and how to measure what actually happened

Platform attribution models are built to make platforms look good. We analyzed 48 DTC brands over 90 days and found the average over-attribution gap is 34%. Here is what to do about it.

The problem with platform attribution

When Meta reports a ROAS of 4.2, it means for every euro you spent on Meta ads, Meta saw 4.20 in revenue from users who clicked or viewed your ad within its attribution window. The word saw is doing a lot of work in that sentence.

Meta's default model gives credit to any purchase within a 7-day click or 1-day view window. If someone clicks your Meta ad on Monday, then sees a Google Shopping result on Thursday and converts, both Meta and Google will claim that sale. This is double attribution, and it is not a bug. It is by design.

In our analysis, the average DTC brand was attributing the same purchase to 1.8 different channels simultaneously. Reported ROAS across all channels was overstated by an average of 34%.
34%
Over-attribution avg
48
Brands analyzed
90 days
Analysis window

What server-side measurement actually solves

Server-side CAPI sends event data directly from your server to the ad platform, bypassing browser-based limitations like ad blockers, iOS privacy restrictions, and cookie degradation. It improves signal quality significantly, but it does not solve double attribution on its own.

The real solution is a single source of truth: one event stream, one identity layer, and one attribution logic applied consistently across all channels. Every conversion event is dispatched simultaneously to all platforms using your rules, not the platform's.

Key stat: Brands that switched to unified attribution saw profitable ad spend increase by 18%, not because they spent more but because they knew where to put it.

How to diagnose your current attribution gap

Take your total reported ad revenue across all platforms for the last 30 days. Then look at your actual Shopify revenue for the same period. The ratio between those two numbers is your attribution inflation factor. Anything above 1.3 suggests significant double attribution.

If you want a precise channel-level breakdown, you need incrementality testing or a server-side attribution model. Both require investment, but the payoff is knowing with confidence which channels are driving growth and which are claiming credit for organic intent.

The incrementality test you can run this week

The simplest version is a geo holdout. Pick two comparable regions. Run your normal campaigns in one and pause spend in the other. Measure the difference in conversion rates after two to three weeks. The gap between the two regions is your estimated incrementality.

It is not perfect. Holdout regions are never perfectly matched and seasonality introduces noise. But even a rough incrementality signal is more useful than a platform ROAS number built on circular logic.

Brands that run incrementality tests typically find that 20 to 40 percent of their attributed revenue would have converted anyway. That is budget being spent on convincing people who were already convinced.

What to do next week

Start with your numbers. Calculate your attribution inflation factor. If it is above 1.4, you have a problem worth solving before your next budget cycle. Set up server-side CAPI for Meta and Google first. Those are the two platforms where signal quality improvements have the most impact on optimization.

The goal is not a perfect attribution model. The goal is a consistent one that lets you compare channels on the same terms, see trends clearly, and make budget decisions with confidence.

---

Layer Insights app

See the same decision in your own commerce data

Open Layer Insights →
Read next

Blended ROAS Is Hiding a Broken New Customer Engine

Continue reading →