Marketing and finance often look at the same app ad campaigns and land on completely different numbers. This is not a sign that someone made a mistake. It reflects how different systems measure, attribute, and report ad performance. Understanding why these gaps exist helps both teams stop arguing over data and start working from the same page. Here are four common reasons the numbers don’t match, and what you can do about it.
When ad data tells two different stories
Before diving into the specific reasons, it helps to understand the broader dynamic at play. Marketing pulls numbers from ad platforms. Finance pulls numbers from invoices, bank statements, or internal cost trackers. The data in between, covering what those euros actually produced, flows through attribution tools, platform dashboards, and reporting layers that each apply their own logic. The result is that your app ad spend overview can look completely different depending on where you pull it from.
This is one of the most common frustrations we hear from app owners and marketing managers. You’re not dealing with one source of truth. You’re dealing with several systems that each claim to be the source of truth. Knowing which discrepancies are normal and which ones signal a real problem is what separates teams that scale confidently from teams that spend every reporting cycle in damage control.
1: Attribution windows count conversions differently
Attribution windows define how long after an ad interaction a conversion can still be credited to that ad. A user clicks a Meta ad on Monday but only installs the app on Friday. Depending on the window settings, that install may or may not count as a result of that campaign.
Different platforms use different default windows. Meta may apply a 7-day click and 1-day view window. Apple Search Ads uses its own logic. Your MMP (mobile measurement partner), such as AppsFlyer or Singular, may apply yet another window. When finance compares ad costs to reported installs or purchases, they are often comparing costs from one time period to conversions that were counted in a different one.
This matters especially when you are trying to calculate your cost per paying user. A campaign that looks expensive in week one may look highly efficient in week three once deferred conversions are attributed. Aligning on consistent window settings across all platforms and your MMP is the first step toward numbers that actually match.
2: Multi-touch vs. last-click attribution models
Last-click attribution gives 100% of the credit to the final touchpoint before a conversion. Multi-touch attribution distributes credit across every interaction a user had with your ads before converting. These two models produce dramatically different pictures of which channel actually converts.
Finance tends to work with last-click or direct-response logic because it is simple and auditable. Marketing teams using multi-touch models may report strong performance for channels like display or video that rarely get the final click but regularly influence the path to conversion. Neither model is wrong, but mixing them in the same report creates confusion.
If your team is trying to identify the best ad channel for your app, the attribution model you use will heavily influence the answer. A channel that looks weak under last-click may be doing significant work earlier in the funnel. Agreeing on a single model before comparing channel performance removes a major source of internal disagreement.
3: Platform self-reporting vs. MMP data
Every ad platform reports its own results, and every platform has an incentive to show strong performance. This is why Singular vs. AppsFlyer reporting comparisons, or any MMP versus platform comparison, almost always show a gap. Platforms count impressions, clicks, and conversions using their own logic. Your MMP counts conversions using independent tracking that is not tied to any single platform’s interest.
The practical result is double-counting. A user may see a TikTok ad and a Google ad before installing. Both platforms claim the install. Your MMP, using a defined attribution hierarchy, assigns credit to one. When you add up platform-reported installs, the total often exceeds what your MMP reports. Finance sees the MMP number. Marketing presents the platform numbers. The gap looks like a discrepancy but is actually just two different counting methods.
This is why an MMP like AppsFlyer or Singular is not optional if you want a reliable app ad spend overview. It acts as a neutral referee across channels, giving you one consistent install and event count regardless of what each platform claims. Without it, combining app ad reports into a single view becomes nearly impossible.
4: What currency and VAT do to your ad spend totals
This one is easy to overlook but regularly causes friction between marketing and finance. Ad platforms bill in different currencies. Meta bills in euros for Dutch accounts, but Apple Search Ads may bill in USD. If your finance team converts these invoices at a different exchange rate than the one your reporting tool uses, the totals will not match even if everything else is perfectly aligned.
VAT adds another layer. In the Netherlands, B2B ad spend is typically subject to reverse charge VAT, which means the gross invoice amount differs from the net cost your finance team records. Marketing dashboards usually show net spend. Finance may record gross figures or apply VAT adjustments at different points in the month. When you are trying to calculate real app ROI, a 21% VAT difference in your cost base has a significant impact on your efficiency metrics.
Fixing this requires agreeing on a single currency conversion source, a consistent VAT treatment, and a defined reporting period. These are accounting decisions as much as marketing ones, which is exactly why finance needs to be part of the conversation from the start.
How to align both teams on a single source of truth
The goal is not to eliminate all discrepancies. Some variance between platforms and your MMP is normal and expected. The goal is to agree on which numbers are authoritative for which decisions, and to document that clearly so both teams are working from the same framework.
Start by designating your MMP as the primary source for install and event data. Use platform dashboards for campaign optimization only, not for reporting to finance. Align on a single attribution window and model across all campaigns, and document any exceptions. Agree on a currency and VAT treatment with your finance team before the reporting period begins, not after.
If your team is dealing with too many marketing dashboards and app reporting that feels too slow, the underlying issue is usually a lack of agreed data hierarchy. Solving that does not require more tools. It requires clearer decisions about which tool owns which number.
At Wuzzon, we help app teams build the measurement foundation that makes these conversations much shorter. Our app growth stack services include setting up and aligning attribution across platforms so your marketing and finance teams finally see the same picture. If you want to get this right for your own app, request a free consultation and we will walk through your current setup together.
Frequently Asked Questions
How do I know if the discrepancy between my marketing and finance numbers is normal or a sign of a real tracking problem?
A variance of 10–20% between your MMP and platform-reported numbers is generally considered normal due to inherent differences in counting logic. If the gap exceeds that range, or if it suddenly widens without a change in campaign activity, that is a signal worth investigating. Start by checking whether your MMP SDK is firing correctly on all install events, and verify that your attribution windows are consistently set across every platform. Unexplained spikes in discrepancy often trace back to a misconfigured event or a platform update that changed default settings.
Which attribution model should we use if we're just getting started with app campaign measurement?
Last-click attribution is the most practical starting point for most app teams because it is simple, auditable, and widely understood by both marketing and finance. Once you have a reliable baseline and enough conversion volume to analyze multi-touch paths meaningfully, you can layer in a more sophisticated model. The most important thing early on is consistency — pick one model, apply it across all channels, and document it so everyone is comparing the same thing. Switching models mid-reporting period is one of the fastest ways to create internal confusion.
What's the best way to handle currency discrepancies when we're running campaigns across Meta, Apple Search Ads, and Google simultaneously?
Designate a single base currency for all internal reporting — typically the currency your finance team uses for accounting — and agree on one exchange rate source, such as the European Central Bank daily rate or your bank’s monthly average. Apply this conversion consistently in your reporting tool rather than letting each platform or dashboard convert independently. Document the agreed rate and the date it is applied each reporting period, and share that with both teams before numbers are finalized. This single step eliminates most of the currency-related friction between marketing and finance.
Do we really need an MMP if we're a smaller app with a limited budget?
Even on a limited budget, running campaigns across two or more platforms without an MMP means you will almost certainly be double-counting installs and overstating performance. Most MMPs offer entry-level plans that are cost-effective relative to the ad spend they help you measure accurately. Without an independent attribution layer, you have no reliable way to know which channel is actually driving installs, which makes budget allocation decisions essentially guesswork. The cost of a basic MMP setup is almost always smaller than the cost of misallocating even a modest ad budget.
How should we handle VAT in our ROI calculations to make sure we're comparing the right cost figures?
For accurate ROI calculations, always use the net ad spend figure — the cost excluding VAT — since VAT is typically recoverable for B2B advertisers in the Netherlands and should not be treated as a true campaign cost. Agree with your finance team on whether reporting uses invoice date or payment date, as this affects which costs land in which reporting period. Document this decision and apply it consistently every month so that marketing dashboards and finance records are always referencing the same net figures. If your finance team records gross amounts initially, build a simple reconciliation step to strip out VAT before any efficiency metrics are calculated.
What's a common mistake teams make when trying to build a single source of truth for app ad reporting?
The most common mistake is trying to aggregate all platform dashboards into one report without first agreeing on which data source is authoritative for each metric. Teams often build elaborate combined dashboards that pull installs from the platforms themselves rather than from the MMP, which bakes double-counting directly into the report. A single source of truth is not a technical problem solved by a better dashboard — it is an organizational decision about data hierarchy that needs to be made before any tool is configured. Define which system owns installs, which owns spend, and which owns revenue, then build your reporting around those decisions.
How often should marketing and finance align on reporting definitions to keep the numbers from drifting apart again?
A brief alignment check at the start of each reporting period — monthly at minimum — is enough to catch any drift before it becomes a full reporting cycle of mismatched numbers. This does not need to be a long meeting; a shared document that both teams confirm covers attribution window settings, currency conversion rates, VAT treatment, and the designated authoritative data source for each metric. Any platform updates, SDK changes, or new campaign types should trigger an immediate check rather than waiting for the next scheduled review. Treating data alignment as an ongoing process rather than a one-time setup is what keeps the numbers stable as your campaigns scale.
Related Articles
- Why is my app ad reporting always delayed?
- 5 key app store optimization metrics every app team should track
- Branch vs AppsFlyer: app deep linking compared
- 5 reasons switching app tools feels riskier than staying
- How do you advertise an app in competitive markets?
- 7 best platforms to advertise your app for maximum ROI
- How do you advertise an app using performance-based marketing?
- 10 expert tips to advertise your app on a tight budget
- How do you respond to negative app store reviews?
- How many screenshots should you have on your app store listing?