App Advertising Report Reconciliation: Platforms, MMPs and Revenue

Author: Qu Jun Xing

The weekly acquisition report is ready, but the meeting stalls: media buyers show platform purchases, analytics shows MMP-attributed purchases, and finance shows a different revenue total. Each report may describe a different population, date basis or definition of value. Before anyone changes a budget, the team needs to identify which differences are expected and which indicate missing or incorrect data.

Quick take: App advertising report reconciliation means making each number traceable to its source, definition, period and decision. Align comparable fields, preserve differences that cannot be aligned, and assign unexplained gaps to an owner. Use validated, sufficiently mature data for performance decisions; matching totals alone does not establish accuracy.

Start with the question each source answers

A useful weekly report supports several decisions. Media buyers need to understand delivery and platform-reported outcomes. Analysts need a consistent attribution view across channels. Finance needs revenue defined according to the business’s accounting and reporting policies. Choose a source for each question before choosing a headline total.

Ad platform reporting describes delivery, spend and conversions credited under that platform’s reporting settings. Preserve the attribution basis beside its conversion metrics. Platform-attributed purchases should not silently become the company’s verified purchase total.

A mobile measurement partner, or MMP, provides an attribution view across connected acquisition sources, subject to its implementation, settings and available signals. Use it to compare attributed acquisition outcomes under an agreed methodology. Document the particular report and measurement method rather than treating every MMP view as interchangeable.

Internal revenue systems describe transactions or revenue under the business’s chosen rules. Ask whether a report includes all customers or only an acquisition cohort, and whether it represents purchase value, recognized revenue or receipts. Internal revenue can validate business value, but assigning that value to an advertising source still requires a defined attribution or matching method.

Comparison diagram linking ad platform reporting to delivery, MMP reporting to attribution, and internal systems to business revenue
Original editorial diagram: three reporting sources answer related questions with different scopes. Their conversion and revenue totals are not additive.

Keep the three views visible. Adding platform-attributed conversions to MMP conversions can count the same outcomes again. Likewise, summing different platforms’ attributed purchases does not establish a deduplicated business total. The Snapchat app install checklist recommends recording attribution windows, click versus view inclusion, timezone and time basis before comparing reports. That discipline belongs in the weekly reporting process as well as launch QA.

Check definitions, time, maturity and aggregation

The first operational goal is to determine whether a discrepancy could change the decision. A difference caused by comparing all-customer revenue with paid-cohort revenue needs a scope correction. Missing purchase events require a measurement investigation. Both can appear as a revenue gap, but they need different owners and actions.

Use the following checks in order. Preserve the original exports, and record every transformation used to create a comparable view.

CheckRecord or verifyReporting treatment
Scope and definitionApp, account, OS, market, event meaning, event count versus unique users, acquisition versus re-engagement.Compare the same population and outcome; retain excluded populations separately.
AttributionAttribution source, model, click and view windows, and measurement framework.Align where supported; label remaining methodological differences.
TimeTimezone, date boundaries, and whether dates describe ad interactions, conversions or installs.Rebuild on a shared date basis where possible. A timezone label alone cannot repair incompatible daily totals.
Maturity and freshnessExport timestamp, last successful refresh, cohort age, revenue window and processing status.Separate incomplete cohorts from mature results; schedule a recheck.
Revenue basisIAP, IAA or both; currency; exchange-rate method; gross or net treatment; refunds and fees.Use an agreed value definition before calculating return.
AggregationReporting level, stable IDs, join relationships, unknown rows, and modeled or allocated values.Check totals before and after joins; compare at a level both sources support.

Reporting frameworks can coexist without representing separate customers. For example, Moloco’s product documentation describes SKAdNetwork measurement alongside MMP attribution. When both appear in a reporting workflow, record which view a metric comes from before using it in a cross-channel total.

Maturity requires a separate check from freshness. A report refreshed this morning may still contain installs that have not completed the selected revenue window. The Snapchat versus TikTok testing guide distinguishes cohort maturity from attribution lookback and campaign learning. For reconciliation, this means a completed reporting week does not automatically provide complete Day 7 revenue for every install acquired that week.

Aggregation can introduce discrepancies even when source exports are correct. If one campaign row joins to several creative rows, its spend can be repeated. Check row counts, unmatched IDs and totals at each join. Calculate aggregate ROAS from the compatible revenue total divided by the compatible spend total; averaging campaign ROAS values gives each campaign equal weight regardless of spend.

Build a repeatable weekly reconciliation

Assign one analyst to maintain the reconciliation record, with media, measurement and finance owners responsible for their inputs. The output should explain what the team can decide now and what evidence is still missing.

  1. Freeze the review scope. Name the app, accounts, market, OS, period and timezone. State the business question and the source selected for each headline metric.
  2. Save reproducible snapshots. Keep source exports, report settings and extraction timestamps. Record refresh failures or unavailable fields explicitly; missing data should not become zero.
  3. Create a comparable view. Apply the checks above. Start at a shared reporting level, then inspect narrower segments to locate differences.
  4. Document the difference. Record both source values, the comparison basis, the evidence-backed explanation and any unexplained remainder. Do not estimate an adjustment merely to close the gap.
  5. Assign a disposition. Mark the comparison explained, pending maturity or under investigation. Attach an owner, next check and affected decision.
  6. Release the readout with its limits. Show validated results separately from provisional results. Preserve previous snapshots when later data changes the conclusion.

For each discrepancy, write a short record containing: the metric and segment; the two reports and timestamps; the original values; the settings that differ; the evidence tested; the current status; and the next action. If reporting a percentage gap, name its denominator. Where the reference value is zero, show the absolute difference and leave the percentage undefined.

An explained difference needs evidence. A different attribution window is a plausible cause, but it does not prove that it accounts for the entire gap. If the sources cannot expose a comparable breakdown, record the difference as methodological and not fully quantifiable. Keep any remaining uncertainty visible.

Decision diagram routing a reporting gap to documented explanation, scheduled maturity recheck, or owner-led investigation
Original editorial decision diagram: classify each gap by the evidence available. A suspected timing issue remains pending until a later comparison verifies it.

Worked example: purchase revenue disagrees on Monday

Illustrative scenario, with no observed campaign results: an app team reviews the previous week. The media buyer exports platform-attributed purchase value. The analyst exports Day 7 revenue for installs acquired during that week. Finance exports all-customer net revenue recorded during the week.

These reports do not yet form a valid numerical comparison. The platform export needs its attribution and date settings attached. The MMP cohort includes recent installs whose Day 7 window is incomplete. Finance includes customers acquired before the reporting week and applies a different revenue basis.

The analyst first separates the questions. Delivery and spend remain in the operational review. Acquisition return uses matching install cohorts with completed revenue windows and the agreed reporting allowance. Finance’s calendar-period revenue remains a business total, with a separate comparison prepared for any cohort and revenue fields that can actually be matched.

Next, the team tests the explanations. The measurement owner checks event definitions and arrival. Finance identifies which adjustments are included in net revenue. The analyst preserves unmapped transactions or unavailable cohort assignments as unresolved coverage, rather than distributing them across channels.

The weekly conclusion can now be precise: the original exports were not comparable; the recent cohort’s return remains provisional; any residual gap in the aligned purchase data has an owner. This supports continuing delivery checks while deferring the affected performance conclusion.

Escalate when the gap threatens a decision

Set investigation priorities around the business consequence and evidence of a failure. A small unexplained difference can matter if it reverses a stop-or-continue decision. A larger difference may be understood if it comes from clearly documented, incompatible populations. There is no universal acceptable discrepancy percentage in the supplied evidence.

  • Measurement owner: essential events disappear, event meanings change, or duplicate events are suspected. Provide the affected app version, event and period.
  • Data owner: a feed is stale, an account is missing, IDs fail to map, or totals change after a join. Provide the source snapshot and transformation where the discrepancy appears.
  • Finance owner: currency, refunds, fees or revenue recognition cannot be reconciled. Provide the exact revenue definitions being compared.
  • UA decision owner: unresolved data could change a campaign action or automated rule outcome. Identify which decision should wait and which operational checks remain usable.

Do not wait for the next weekly meeting when a confirmed failure affects active decisions. Conversely, elapsed time alone does not resolve a pending issue: rerun the same comparison after the expected update and record whether the explanation holds.

Use XMP to support execution with traceable inputs

Once the reporting basis is understood, a shared operating workspace can help teams act consistently. XMP’s automation layer guide describes rules that use MMP metrics such as ROAS, retention and LTV at campaign, ad set and ad levels, with actions dependent on channel and object level. Measurement ownership remains with the relevant measurement and app teams.

The same guide describes weighted creative breakdowns when exact creative-level MMP data is unavailable. Such allocations should remain labeled as directional. If the purchase evidence exists at a higher level, reconcile there before interpreting creative-level estimates as independently observed outcomes.

For the broader division of responsibilities, see where MMP measurement and XMP operations fit. Centralizing a metric does not change its attribution definition or make an immature cohort complete. Before using a reconciled report in automation, verify the rule’s actual source, window and reporting level.

Close the report with an explicit next action

  1. Validate measurement. Confirm the event, cost and revenue inputs needed for the decision. Resolve missing or duplicated data before interpreting performance.
  2. Check maturity and sample sufficiency. Separate unfinished cohorts and sparse outcomes. A mature cohort can still contain too few payers for a dependable conclusion.
  3. Connect cost with business value. Use compatible spend and revenue definitions, keeping IAP and IAA visible where relevant. Distinguish attributed return from total business revenue.
  4. Choose the next action. Accept a documented difference, schedule a maturity recheck, repair a data issue, or proceed with the supported campaign decision. Name the owner and review date.

The next weekly report should carry forward unresolved items and show what changed. Successful cross-channel reporting reconciliation leaves the team with reproducible comparisons and clear decisions, even when legitimate source differences remain.

Jun Xing
Qu Jun Xing
AdOps & Growth Notes
Ad Ops AI & SaaS Automation
10+ years in mobile growth and AdTech operations. I build practical systems across AdOps, automation, SEO/SEM, GEO, and lifecycle marketing.
Questions or updates? Reach out on LinkedIn or use the “Give feedback about this article” button.
Previous
Ad Automation Rule Validation: Before Rules Change Your Campaigns
Next
Paid Media Operations Capacity Planning: How Much Work Can Your Team Run?
Last modified: 2026-11-09Powered by