Why Your Platform Reports Don't Match (And What to Trust)
Platform reports conflict because each platform uses different attribution windows, takes credit for the same conversion, and can only see its own touchpoints. Google Ads uses 30-day click; Meta uses 7-day click, 1-day view. Both claim credit for overlapping journeys. The solution: use a neutral third-party attribution tool as your single source of truth, and treat platform data as directional for within-platform optimization only.
The Problem: One Conversion, Three Claims
Here's a scenario every marketer has experienced:
Your Actual Sales: 100 conversions Platform Reports: ├── Google Ads: 85 conversions ├── Meta Ads: 45 conversions ├── Email: 35 conversions ├── Organic Search: 25 conversions └── Total Claimed: 190 conversions ← 90% overcounting!
You sold 100 products, but your platforms claim responsibility for 190. Someone is lying—or more accurately, everyone is telling their version of the truth.
This isn't a bug. It's how platform attribution works by design.
Why Platforms Disagree
1. Different Attribution Windows
Each platform uses different time windows to claim credit:
| Platform | Click Window | View Window | Total Window |
|---|---|---|---|
| Google Ads | 30 days | 1 day (optional) | Up to 90 days |
| Meta Ads | 7 days | 1 day | 7 days |
| TikTok Ads | 7 days | 1 day | 7 days |
| LinkedIn Ads | 30 days | 7 days | 30 days |
| Email (typical) | 30-90 days | N/A | Varies |
| GA4 | Up to 90 days | N/A | Configurable |
Consider this journey:
Day 1: Customer clicks Google Ad Day 15: Customer clicks Meta Ad Day 20: Customer converts Who gets credit? ├── Google Ads: ✓ (within 30-day click window) ├── Meta Ads: ✓ (within 7-day click window) └── Reality: Both touched the customer, one conversion occurred
Both platforms legitimately claim this conversion under their own rules. Neither is wrong—they're just using different definitions.
2. Platforms Only See Their Own Touchpoints
Google can't see your Meta ads. Meta can't see your email campaigns. Each platform operates in a silo:
What Google Sees:
[Google Ad] → [???] → [???] → [Conversion]
↑
"We drove this conversion!"
What Meta Sees:
[???] → [Meta Ad] → [???] → [Conversion]
↑
"We drove this conversion!"
What Actually Happened:
[Google Ad] → [Meta Ad] → [Email] → [Conversion]
Platforms can only credit what they can see. The result is each claiming more credit than they deserve.
3. Self-Serving Attribution Logic
Platforms aren't neutral observers—they're selling you ads. Their attribution is designed to make their platform look effective:
| Platform Behavior | Effect |
|---|---|
| Google favors Google | GA4 over-attributes to Google Ads in same-session scenarios |
| Meta credits views | 1-day view attribution claims credit for ads users merely saw |
| Email claims last-touch | Email platforms default to last-click, taking credit from earlier touches |
| Each maximizes their number | No platform has incentive to share credit fairly |
This isn't conspiracy—it's incentives. Platforms that show better ROAS get more ad spend.
Each platform claims credit for the same conversions
Sum the platform dashboards. Compare to your actual order count. The gap is double-counting.
Overcount: 60% — the platforms collectively claim 160 conversions for the same 100 real orders. Each user clicked through multiple ads before buying; every platform counted that user as theirs.
If you set budget by platform-reported ROAS, you're overspending. Every channel looks profitable when each one over-reports its share. Independent attribution deduplicates the conversions across channels — the only way to see which platform drove the marginal sale.
The Real-World Impact
Budget Misallocation
When you optimize budget based on platform data:
Platform-Reported ROAS: ├── Google Ads: 4.2x → "Increase budget!" ├── Meta Ads: 3.1x → "Maintain" ├── Display: 0.8x → "Cut this!" Multi-Touch Reality: ├── Google Ads: 2.8x (overcredited by 50%) ├── Meta Ads: 2.2x (overcredited by 40%) ├── Display: 1.9x (undercredited by 140%!) Result: You cut Display, which was actually introducing customers that Google and Meta later converted.
The Attribution Arms Race
Platforms continuously adjust attribution to maintain perceived performance:
- Meta shortened their window from 28 days to 7 days (post-ATT) partly because shorter windows showed more immediate impact
- Google extended conversion windows and added data-driven attribution that favors Google touchpoints
- Each platform adds "modeled conversions" that estimate untracked activity—conveniently in their favor
You're not measuring marketing performance. You're measuring each platform's attribution marketing.
How to Build a Single Source of Truth
Option 1: Third-Party Attribution Tool (Recommended)
Use a neutral tool that sees all touchpoints and applies consistent logic:
How it works:
1. Track all touchpoints (ads, email, organic, direct) in one system
2. Apply a single attribution model across all channels
3. Deduplicate conversions—each sale counts once
4. Report consistent metrics across channels
Benefits:
- Unbiased cross-channel comparison
- Deduplicated conversion counts
- Consistent attribution windows
- Full journey visibility
Limitations:
- Additional cost
- Implementation required
- May not match platform optimization signals
Option 2: Incrementality Testing
Measure true causal impact through experiments:
INCREMENTALITY TEST DESIGN
Question: does Meta actually drive incremental revenue?
Setup: 50% of geos paused (control), 50% running normal Meta spend (treatment). 4 weeks.
- Treatment revenue: $500,000
- Control revenue: $420,000
- Incremental lift: $80,000 (19%)
- Meta spend: $50,000
- True iROAS: 1.6×
Incrementality tests reveal what each platform actually causes, not just what it touches.
Option 3: Marketing Mix Modeling (MMM)
Use aggregate data and econometrics to estimate channel contribution:
Best for:
- High spend ($500K+/year)
- Mix of online and offline channels
- Strategic planning (not tactical)
How it helps reconciliation:
- Estimates total channel impact independent of platform reporting
- Accounts for brand effects, seasonality, competition
- Provides calibration factors for platform data
The reconciliation framework
Four steps from biased platform data to decisions you can defend.
Platform data
Each platform's dashboard. Inflated by double-counting and click attribution. Useful only as a starting point.
Independent attribution
Server-side MTA layer that captures touchpoints from every channel and dedupes across platforms. Removes the double-counting.
Incrementality test
Geo holdouts or RCTs validate which channels actually move outcomes. Calibration factors derived from these tests get applied to step 2.
Confident budget decisions
Reallocate spend toward channels with proven incremental return. Re-test every 6–12 months — calibration factors drift.
Platform data
Each platform's dashboard. Inflated by double-counting and click attribution. Useful only as a starting point.
Independent attribution
Server-side MTA layer that captures touchpoints from every channel and dedupes across platforms. Removes the double-counting.
Incrementality test
Geo holdouts or RCTs validate which channels actually move outcomes. Calibration factors derived from these tests get applied to step 2.
Confident budget decisions
Reallocate spend toward channels with proven incremental return. Re-test every 6–12 months — calibration factors drift.
Skip a step and you import its bias into the next one. Going straight from platform dashboards to budget decisions is what created the over-spend pattern in the first place. Each step is a calibration on the layer below.
Practical Reconciliation Workflow
Step 1: Establish Baseline Discrepancy
Document how much platforms over-report:
-- Compare platform-reported vs actual conversions
SELECT
date_trunc('week', conversion_date) as week,
SUM(google_reported) as google_claims,
SUM(meta_reported) as meta_claims,
SUM(email_reported) as email_claims,
SUM(actual_conversions) as actual,
(SUM(google_reported) + SUM(meta_reported) + SUM(email_reported))
/ NULLIF(SUM(actual_conversions), 0) as overcount_ratio
FROM conversion_reconciliation
GROUP BY 1
ORDER BY 1 DESC;
Typical result: 1.4x to 2.0x overcounting.
Step 2: Apply Discount Factors
Create platform-specific discount factors based on historical overcounting:
| Platform | Typical Overcredit | Discount Factor |
|---|---|---|
| Google Ads | 30-50% | 0.70 |
| Meta Ads | 40-60% | 0.60 |
| 50-70% | 0.50 | |
| Display | -50% (undercredited) | 1.50 |
Warning: These are rough averages. Your actual factors depend on your funnel, customer behavior, and channel mix. Calculate your own from historical data.
Step 3: Use Each Data Source Appropriately
| Decision Type | Data Source | Why |
|---|---|---|
| Cross-channel budget allocation | Third-party MTA | Unbiased, deduplicated |
| Google Ads bid optimization | Google Ads | Platform-specific signals |
| Meta creative testing | Meta Ads | Platform-specific signals |
| Executive reporting | Third-party MTA | Defensible, consistent |
| Quarterly planning | MMM + Incrementality | Strategic, causal |
Don't try to make platforms agree. Use each data source for what it's good at.
Step 4: Validate with Holdout Tests
Quarterly, validate your reconciliation with incrementality tests:
QUARTERLY VALIDATION TEST
Pick one channel. Run a geo-holdout. Compare the three numbers:
- Platform-reported contribution: 25%
- MTA-calculated contribution: 18%
- Incrementality-measured: 15% ← ground truth
MTA is closer to truth than the platform data. Adjust discount factors accordingly and re-run quarterly.
What NOT to Do
Don't Sum Platform Numbers
❌ Wrong: "Google (85) + Meta (45) + Email (35) = 165 conversions"
✓ Right: "We had 100 conversions. MTA credits Google 35%,
Meta 28%, Email 22%, Organic 15%."
Don't Pick the Highest Number
Some teams use "whichever platform claims the conversion." This systematically over-credits bottom-funnel and always distorts the picture.
Don't Ignore the Problem
Using platform data "because it's what we have" leads to systematic misallocation. The effort to build a single source of truth pays back in better decisions.
Don't Expect Platforms to Agree
They have different incentives, different windows, different visibility. Reconciliation isn't about making them match—it's about building your own truth.
A WORKED EXAMPLE
A DTC brand pulls reports from Meta, Google, TikTok, and Klaviyo. Each says it drove the strongest week. Summed, the four platforms claim 162 conversions for a week that produced 100 actual orders. Every platform optimization algorithm is bidding harder for the same buyers, and nobody can tell which platform is the marginal driver.
After deploying server-side multi-touch attribution that dedupes the orders across platforms, the picture changes: Klaviyo's email flow is mostly closing already-won customers, Display is doing more sourcing than any platform credited it for, and TikTok's reported ROAS is inflated by 50%+ from view-through claims that don't survive the dedupe. Six weeks of reallocation later, blended ROAS is up 18% on flat spend — the same dollars buying more incremental orders because they're going to the channels that earn them.
Summary
Platform attribution data conflicts because:
- Different windows — Google uses 30 days, Meta uses 7 days
- Siloed visibility — Each platform only sees its own touchpoints
- Self-serving logic — Platforms are incentivized to maximize their claimed value
What to do:
| Action | Purpose |
|---|---|
| Use third-party MTA | Unbiased, deduplicated cross-channel view |
| Calculate discount factors | Adjust platform data for overcounting |
| Run incrementality tests | Validate true causal impact |
| Match data source to decision | Platform data for within-platform; MTA for cross-channel |
Never sum platform-reported conversions. They're each telling their version of the truth, and those versions overlap.
Further Reading
On Building Your Source of Truth:
- What is Multi-Touch Attribution? — The cross-channel solution
- MTA vs MMM — Complementary measurement approaches
On Platform-Specific Issues:
- Why Did GA4 Remove Attribution Models? — Google's attribution changes
- Last-Touch Attribution — Why platform defaults mislead
Key Takeaways
- ✓Platforms use different attribution windows (Google 30-day, Meta 7-day)
- ✓Each platform only sees its own touchpoints—they can't see the full journey
- ✓Adding up platform-reported conversions always exceeds actual conversions
- ✓Use third-party attribution for cross-channel decisions; platform data for within-channel optimization
Why does Google Ads show more conversions than I actually have?▼
Should I trust Google Analytics or Google Ads data?▼
How do I know which platform actually drove the conversion?▼
Why do my total conversions from all platforms exceed my actual sales?▼
Can I just pick one platform as my source of truth?▼
How mature is your marketing measurement?
The free Measurement Maturity Assessment shows where you stand, where you're exposed, and what to fix first. 10 questions, 3 minutes.
Take the AssessmentReady to try server-side attribution?
Set up in 10 minutes. Free up to 30K records/month.