Short answer: use your MMP for cross-channel totals and budget splits, because it counts each install once. Use each ad network's own numbers for optimisation inside that network. On iOS, read paid results from SKAN, AdAttributionKit and network aggregates. No single tool is wrong; each answers a different question.
Why no two tools agree
Source of truth: the one report a team agrees to use for a given decision, so that numbers are not argued over each time.
Every tool measures installs with its own rules: its own windows, its own definition of an install, its own time zone and date basis, and its own view of which ads the user saw. Google says discrepancies between Google Ads and third-party reports are expected. Meta says MMP results may differ, typically because of attribution windows.
Which number should I use for budget decisions?
Use your MMP for budget splits between networks, because it is the only tool that sees every network and gives each install to one source. Network numbers overlap, so adding them together overstates installs.
What each tool is good for
| Tool | Best used for | Why its number differs |
|---|---|---|
| MMP | Cross-channel totals, budget splits, cohort revenue | One winner per install, its own windows |
| Meta Ads Manager | Optimising inside Meta | Own windows, view-through, AEM modelling on iOS |
| Google Ads | Optimising inside Google | Play downloads, reinstalls, Every counting, interaction-day reporting |
| TikTok Ads Manager | Optimising inside TikTok | Own windows and fixed time zone, per its help centre |
| GA4 or Firebase | Product analytics, Google paid | Google-only paid crediting, reinstalls, 30-day first_open lookback |
| SKAN or AdAttributionKit | iOS paid results without ATT | Aggregate, delayed, privacy tiers |
The reconciliation checklist
Before treating any gap as a fault, line up these five things:
- Same date range and data age. Leave out the most recent two to three days; Google, Meta and Apple all document delays.
- Same time zone. Meta defaults new ad accounts to Pacific time; Google uses the account's local time zone.
- Same date basis. Use conversion time in Meta and the Conversions (by conv. time) column in Google.
- Same windows. Compare each network's click and view windows with your MMP's.
- Same definition. First opens, not downloads; reinstalls counted the same way; One, not Every.
Then compare counts before values. Google's help centre says reconciling on values is highly discouraged, because single missing or refunded purchases move revenue a lot.
How to read the remaining gap
Once the five items match, what is left usually comes from things that cannot be aligned:
- Cross-network overlap. Each network claims installs it touched; the MMP picks one. See installs claimed by two networks.
- View-through claims that a last-click MMP gives to a later click elsewhere.
- iOS privacy limits. Without ATT permission the IDFA is all zeros, so user-level iOS numbers will be lower than aggregate ones. See iOS attribution lower than Android.
- Modelled results. Meta says it may model iOS results where reporting is incomplete.
Track this remaining gap per network over time. A stable gap is a known difference; a sudden change is worth investigating with the Meta vs MMP troubleshooter or the Google installs troubleshooter.
A simple reporting policy
- Weekly business review: MMP installs and revenue by channel.
- Campaign optimisation: each network's own dashboard, inside that network.
- iOS: SKAN or AdAttributionKit cohorts by install week, labelled as incomplete until all postbacks are due.
- Product metrics: GA4 or Firebase.
- Disputes: look up individual installs in the MMP and read their touchpoints.
MMPs such as Linkrunner, Tenjin or Kochava give each install a single source across all connected networks, which is what makes them the usual source of truth for budget splits.
Where Linkrunner fits: Best for mobile-first teams running paid UA on Meta, Google and TikTok that want attribution, deep linking and SKAN in one platform. It is deterministic-first with no fingerprinting, and pricing is pay-as-you-go from $0.010 per attributed install after 25k free installs.
Related pages
- Attribution windows explains the window settings behind most gaps.
- Self-attributing networks explains why network totals overlap.