A client ran Meta ads, but also used Google Ads, email, and organic — full-funnel. Meta showed a magical ROAS of 6.2. But the CRM told a different story: half the orders came from email and brand traffic.
Once we lined up the data, it was clear: Meta was claiming conversions it didn’t earn. The team was about to increase budget — luckily, we caught it in time.
Here’s the issue: Meta uses 7 days last-click within its ecosystem and also counts view-through conversions — meaning:
• Not visible in GA4
• Doesn’t match CRM data
• Creates a false sense of performance
• Leads to budget decisions based on borrowed credit
To Meta, if someone saw an ad → remembered the brand → bought via direct — Meta claims the win.
How I validate cases like this:
• Check view-through conversions in Ads Manager. They inflate ROAS but often happen with no click
• Compare CRM, GA4, and Meta. If Meta shows 100 purchases, but GA4 with utm_source=facebook shows 30 — I investigate the gap
• Use fbclid in BigQuery. It shows real Meta click-throughs
• Track first-party sources/.Look at first interaction in GA4/BQ to find the true origin
• Send custom parameters via CAPI. Include user_data.
• Set clear expectations. Meta only sees its own clicks and impressions — not email, search, or CRM data. It fills in the blanks.
Meta isn’t lying — it’s just biased by design. If you don’t verify what it claims, you’ll optimize based on fiction.
What to do:
• Use server-side tracking to send consistent events to Meta and GA4
• Build a unified table across all channels and compare
• Don’t trust Ads Manager ROAS alone
• Remember: when a platform grades its own homework — red flag
Attribution control isn’t paranoia. It’s how you protect your budget — and know what actually works.
If you work with GA4 to BigQuery exports, be sure to check out my SQL cheat sheet.