The Numbers Problem Every Advertiser Faces
You open Facebook Ads Manager. It says you got 50 purchases yesterday. You check Google Ads. It shows 35 conversions. Then you log into Shopify — 42 orders.
None of these numbers match. All of them are "correct."
This isn't a bug. It isn't a tracking error (although those make it worse). It's the fundamental reality of cross-platform attribution: each advertising platform measures conversions from its own perspective, using its own rules, its own data, and its own definition of what counts.
If you're spending money on both Facebook and Google Ads, understanding why these numbers diverge — and how to find the actual truth — is the difference between smart scaling and expensive guessing.
How Facebook Counts Conversions
Meta (Facebook/Instagram) uses a people-based attribution model. Here's what that means in practice:
Attribution windows
Meta's default attribution setting is 7-day click, 1-day view:
- 7-day click: If someone clicks your ad and converts within 7 days, Facebook takes credit
- 1-day view: If someone sees your ad (without clicking) and converts within 1 day, Facebook takes credit
That second part — view-through attribution — is where most of the discrepancy comes from.
What Meta tracks
| Signal | How It Works | Reliability |
|---|---|---|
| Ad clicks | User clicks → fbclid parameter attached to URL | High (when not stripped by iOS) |
| Ad impressions | User sees ad in feed, stories, reels | Tracked internally by Meta |
| Cross-device matching | Email/phone hash matches user across devices | Medium (depends on logged-in status) |
| Pixel events | JavaScript fires on website | Medium (blocked by ad blockers, iOS) |
| CAPI events | Server sends events directly to Meta | High (bypasses browser restrictions) |
The view-through multiplier
Here's why Facebook's numbers tend to be higher: a view-through conversion means someone saw your ad in their Instagram feed at 8 AM, didn't click, then searched for your brand on Google at 2 PM and bought.
Facebook counts this as a conversion. Google counts it too (because the user clicked a search ad or organic result). The same sale is claimed by both platforms.
This isn't fraud — it's genuinely different measurement philosophies. Meta believes the impression influenced the purchase. Google believes the click drove it. Both have reasonable arguments.
How Google Ads Counts Conversions
Google uses a click-based attribution model by default (with some view-through for YouTube and Display):
Attribution windows
Google Ads' default is 30-day click for Search/Shopping:
- 30-day click: If someone clicks a Search or Shopping ad and converts within 30 days, Google takes credit
- View-through: Only available for Display and YouTube campaigns (default 1-day), not for Search
What Google tracks
| Signal | How It Works | Reliability |
|---|---|---|
| Ad clicks | User clicks → gclid parameter attached to URL | High (when not stripped by browsers) |
| Google Signals | Cross-device matching for logged-in Google users | Medium-High |
| Enhanced Conversions | Hashed customer data sent server-side | High |
| Consent Mode modeling | Estimates conversions from non-consented users | Modeled (not observed) |
| Conversion linker tag | First-party cookie for click attribution | Medium (limited by cookie lifetimes) |
Why Google's numbers tend to be lower
For Search campaigns, Google only counts conversions from clicks. No clicks, no credit. This makes Google's numbers more conservative — but also means Google misses conversions it influenced through ad impressions.
For Shopping campaigns, Google's numbers can be closer to Facebook's because product listing ads generate both clicks and high-intent browsing.
The Attribution Model Comparison
Here's the core difference laid out side by side:
| Factor | Meta (Facebook/Instagram) | Google Ads |
|---|---|---|
| Default window | 7-day click, 1-day view | 30-day click (Search) |
| View-through | Yes (1-day, all campaigns) | Only Display/YouTube |
| Cross-device | People-based (Facebook login) | Google Signals (Google login) |
| Attribution model | Last-touch (default) | Data-driven (default since 2024) |
| Modeled conversions | Yes (fills iOS gaps) | Yes (Consent Mode) |
| Click tracking | fbclid parameter | gclid parameter |
| Server-side API | Conversions API (CAPI) | Enhanced Conversions |
What this means for your reporting
A single customer journey might look like this:
- Monday: User sees your Facebook ad (impression, no click)
- Tuesday: User searches your product on Google, clicks a Shopping ad, browses, leaves
- Wednesday: User returns directly and buys
Facebook says: 1 conversion (view-through from Monday's impression) Google says: 1 conversion (click from Tuesday's Shopping ad) Reality: 1 order
Your combined "platform" total: 2 conversions. Actual conversions: 1. That's a 100% inflation in reported performance.
Multiply this across hundreds or thousands of conversions per month, and you can see why your platform totals never match your backend.
The 5 Biggest Causes of Mismatch
Beyond the attribution model differences, several technical factors make the gap worse:
1. Different conversion counting rules
Facebook defaults to counting 1 conversion per user for standard events. Google defaults to every conversion (one click can generate multiple conversions). If a user buys twice after clicking a Google ad, Google counts 2 conversions. Facebook might count 1.
Fix: Check your Google Ads conversion settings. Change to "One" if you want to count unique converters (like Facebook does).
2. Conversion window mismatch
Facebook's 7-day click window and Google's 30-day click window mean they're literally measuring different time ranges. A conversion that happens 14 days after a Google click gets counted by Google but wouldn't be counted by Facebook (if the user didn't also see an ad within the 1-day view window).
Fix: Align your attribution windows where possible. Set Google to 7-day click for a more apples-to-apples comparison (knowing you'll lose some long-cycle conversions from Google's count).
3. Data loss from ad blockers and iOS
Both platforms lose tracking data from browser-side restrictions, but they lose different data:
| Issue | Impact on Facebook | Impact on Google |
|---|---|---|
| Ad blockers | Facebook Pixel blocked (~30% of desktop users) | Google tag blocked (similar rate) |
| iOS 14.5+ | Major — reduces Pixel data + limits ad targeting | Moderate — gclid less affected |
| iOS 18 link stripping | Severe — strips fbclid from URLs | Moderate — gclid partially protected |
| Safari ITP | Cookie lifetime limited to 7 days | Cookie lifetime limited to 7 days |
Each platform then models the lost data differently, adding another layer of estimation that can diverge.
Fix: Implement server-side tracking for both platforms — Facebook CAPI and Google Enhanced Conversions. This recovers the browser-side data loss for both, reducing the modeling-driven divergence.
4. Time zone and attribution timing
Facebook attributes conversions based on the time of the ad impression or click, not when the purchase happened. Google attributes based on the time of the click (not the conversion).
If a user clicks your Google ad at 11:55 PM on March 1 and completes the purchase at 12:05 AM on March 2, Google may count it on March 1 (click time) while Shopify records it on March 2 (order time).
Fix: When comparing, always use multi-day windows (weekly or monthly) rather than day-by-day comparisons.
5. Deduplication failures
When a conversion is reported by both the Pixel and CAPI (for Facebook), or both the Google tag and Enhanced Conversions (for Google), each platform is supposed to deduplicate using the event_id. If deduplication isn't set up correctly, the same conversion gets counted twice within a single platform.
Fix: Ensure every conversion event has a consistent event_id sent through both the browser tag and the server-side API. Learn more in our Event Match Quality guide.
How to Find the Truth
Since neither platform gives you the complete picture, you need a single source of truth — and that source should be your own server-side data.
The reconciliation framework
Your Backend (Shopify, Stripe, CRM)
↓
Source of truth: actual orders/leads
↓
Compare against:
├── Facebook reported conversions
├── Google reported conversions
└── Combined total
↓
Calculate platform-specific "accuracy ratio"
Step 1: Export your real conversions
Pull your actual orders or leads from your backend (Shopify, WooCommerce, CRM, Stripe) for a given time period. This is your ground truth.
Step 2: Compare platform totals
| Metric | Example |
|---|---|
| Actual backend orders (weekly) | 200 |
| Facebook reported conversions | 165 |
| Google Ads reported conversions | 120 |
| Platform total (Facebook + Google) | 285 |
| Over-count ratio | 285 / 200 = 1.42x |
In this example, the platforms collectively over-report by 42% due to overlapping attribution.
Step 3: Calculate platform accuracy ratios
You can't simply divide by 2 — each platform's over-counting rate is different. Use historical data to calculate each platform's accuracy ratio:
- Facebook accuracy: If Facebook says 165 and reality is ~120 from Facebook-driven traffic → ratio = 0.73
- Google accuracy: If Google says 120 and reality is ~95 from Google-driven traffic → ratio = 0.79
These ratios let you "normalize" platform reporting going forward.
Step 4: Use server-side tracking for real-time reconciliation
Manual reconciliation works but is slow and backward-looking. Server-side tracking with proper attribution gives you this reconciliation in real time:
- Every conversion event is captured server-side (bypassing browser limitations)
- The event is forwarded to both Facebook (via CAPI) and Google (via Enhanced Conversions) with proper
event_iddeduplication - Your own analytics dashboard shows the single, deduplicated truth while each platform gets the best possible data for optimization
This is exactly what SignalBridge does — gives you one source of truth while feeding each platform the data it needs to optimize properly.
What the Numbers Should Look Like
After proper server-side tracking setup with deduplication, here's what healthy reporting looks like:
| Metric | Before Server-Side | After Server-Side |
|---|---|---|
| Facebook reported vs actual | Off by 30-50% | Off by 5-15% |
| Google reported vs actual | Off by 15-30% | Off by 5-10% |
| Platform over-count ratio | 1.3x–1.6x | 1.05x–1.15x |
| Missing conversions (total) | 20-40% | Under 5% |
| EMQ score | 3-5 | 8-10 |
The numbers will never be exactly identical — that's the nature of different attribution models. But server-side tracking dramatically narrows the gap by ensuring both platforms have complete, high-quality data.
Common Mistakes When Comparing Platforms
Mistake 1: Looking at daily numbers
Daily comparisons amplify time zone and attribution timing differences. Always compare at weekly or monthly level when benchmarking platforms against each other.
Mistake 2: Adding platform totals for "total conversions"
If Facebook says 100 and Google says 80, your total conversions are NOT 180. There's always overlap. Use your backend as the real total.
Mistake 3: Declaring a platform "broken" when numbers drop
A sudden drop in one platform's reported conversions might be a tracking issue — but it might also be an attribution window change, a browser update, or a platform algorithm change. Check your server-side data first before assuming the worst.
Mistake 4: Ignoring view-through conversions entirely
Some advertisers turn off view-through attribution to make Facebook's numbers "more accurate." This isn't wrong, but it means Facebook's optimization algorithm loses signal. It's better to leave view-through on but understand what it includes.
Mistake 5: Not implementing both CAPI and Enhanced Conversions
If you only implement server-side tracking for one platform, the gap between the platforms' data quality gets wider, not narrower. Both platforms need the same level of data quality for a fair comparison.
FAQ
Why does Facebook always show more conversions than Google?
Because Facebook counts view-through conversions by default — if a user sees your ad and later converts (even without clicking), Facebook claims it. Google Search only counts click-through conversions. This structural difference means Facebook will almost always report a higher number for the same period.
Should I trust Facebook or Google numbers when they disagree?
Trust neither in isolation. Both are measuring from their own perspective. Your backend (Shopify, Stripe, CRM) is the source of truth for total conversions. Platform-reported numbers are useful for understanding each platform's contribution and for optimizing within that platform.
Can I make the numbers match exactly?
No, and you shouldn't try. Different attribution models exist for a reason — they measure different kinds of advertising influence. The goal isn't identical numbers; it's understanding what each number represents and having a reliable source of truth for actual business outcomes.
Does server-side tracking fix the mismatch?
Server-side tracking significantly reduces the mismatch by eliminating data loss (ad blockers, iOS, cookie expiration) from both platforms simultaneously. It doesn't eliminate attribution model differences, but it ensures both platforms are working with the same complete dataset — which makes their respective numbers more trustworthy.
What attribution window should I use for comparing platforms?
For the most apples-to-apples comparison, set both platforms to 7-day click only (disabling view-through on Facebook). For day-to-day optimization, keep each platform's recommended settings — just don't compare them directly.
Related Reading
- What is Facebook Conversions API (CAPI)? — understand how server-side tracking works for Meta specifically
- Complete Guide to Event Match Quality (EMQ) — the score that determines how well your events are matched to real users
- How Bot Traffic Wastes Your Ad Spend — another hidden source of conversion discrepancies
- What is Server-Side Tracking? — the foundation for fixing attribution across all platforms
Ready to See Your Real Numbers?
Stop guessing which platform to believe. SignalBridge gives you server-side tracking for Facebook CAPI, Google Enhanced Conversions, and TikTok Events API — all feeding from one deduplicated data source. See the truth in one dashboard.
Start your 14-day free trial today. No credit card required.
Related Articles
What is Facebook Conversions API (CAPI)? Complete Guide
Learn what Facebook Conversions API is, how it works, why it matters for your ads in 2026, and how to set it up properly for better attribution and lower CPAs.
Complete Guide to Event Match Quality (EMQ) in 2026
Learn what Facebook Event Match Quality is, why your EMQ score matters for ad performance, and exactly how to improve it from a 4 to a 9+.
