Short answer: reconcile on counts first, then explain value differences. Google itself discourages reconciling on values, because one missing, duplicated or refunded purchase can move revenue a lot while barely changing counts. Currency codes are the most common fixable cause.
Why revenue drifts when counts agree
Return on ad spend (ROAS): revenue attributed to a campaign divided by what the campaign cost.
Counts treat every purchase as one. Revenue weights them, so a single large purchase missing in one tool, or counted in a different currency, moves ROAS far more than it moves counts.
Should I reconcile on revenue at all?
Reconcile counts as the main check. Google's help centre says reconciling on values is highly discouraged. Use revenue gaps as a prompt to check currency and refund handling, not as the test of whether tracking works.
Likely causes
- Missing or mismatched currency codes. Google lists currency and value mismatches among discrepancy causes.
- Duplicate events. Purchases sent from both app and server without a shared transaction ID count twice (general practice).
- Refunds and failed payments. Google says Play excludes failed purchases; tools differ in how they handle refunds.
- Different windows. Google tracks in-app conversions within 90 days of the ad interaction by default, and GA4 uses 90 days for most key events; your MMP may use another window.
- Different date basis. Ad platforms often report revenue against the ad interaction day.
How to confirm it
- Confirm counts match on the same date range, time zone and date basis.
- Inspect a sample of revenue events for a currency code.
- Search for pairs of identical purchases seconds apart.
- Check how each tool records refunds and failed payments.
- Compare in-app event windows in the network and your MMP.
How to fix it
- Send an ISO currency code with every revenue event.
- Send each purchase from one source, or add a shared transaction ID.
- Agree one rule for refunds and apply it in every tool you report from.
- Align windows for in-app events where you can.
- Report ROAS from one tool consistently rather than switching between them.
| Gap pattern | Likely cause |
|---|---|
| Revenue off by a steady multiple | Currency |
| Revenue higher in one tool | Duplicates |
| Revenue lower in one tool | Refunds or failed payments |
| Gap grows with cohort age | Different windows |
The events and revenue troubleshooter covers these checks, revenue events missing covers missing counts, and which number to trust covers which ROAS to report.