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.
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.
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.
---