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.