Why Meta Ads Manager and RevenueCat never match, and which number to trust

Ads Manager and RevenueCat count different events, on different days, in different money. Why they never match, and which to trust for each decision.

Key takeaways

  • Ads Manager shows the conversions Meta attributes to its ads, by its own rules and partly modeled on iOS. RevenueCat shows every purchase the stores record. They answer different questions.
  • Most of the gap comes from three places: who gets credit (attribution windows), when it counts (impression date, time zones) and how it is valued (gross or proceeds, refunds, currency).
  • To compare the two, line up the period, the clock, the event and the revenue basis first. Then expect a steady ratio, not a match.
  • Use Ads Manager to compare campaigns, ad sets and creatives inside Meta. Use RevenueCat or store proceeds to judge whether the spend makes money.
  • Neither number says what the ads added on top of organic. That takes a baseline or an experiment.

Why the two numbers never match

Meta Ads Manager and RevenueCat never match because they count different things. Ads Manager reports the conversions Meta attributes to its own ads, under its own rules. RevenueCat reports every purchase the App Store and Google Play record, whoever or whatever caused it.

So a gap is normal. A gap that jumps from week to week is the one to investigate.

Where the two numbers part ways
Meta Ads ManagerRevenueCat
Who is countedPeople Meta ties to an ad within its windowEvery customer, from any source
Which dayImpression date, in the ad account's time zoneTransaction date, in UTC
iOS dataPartly delayed, aggregated or modeledStore transactions
MoneyThe value sent with each eventGross after refunds, net of taxes, or proceeds
RefundsNot sent by RevenueCat's integrationDeducted on the day processed

Attribution windows decide who gets credit

An attribution window is the time after someone clicks or sees an ad during which a conversion still counts for that ad. Meta's help center gives the default for new ad sets as 7-day click or 1-day view: a conversion within 7 days of a click, or within 1 day of seeing the ad, counts (Meta).

The choices have changed recently. Meta now offers click-through windows of 1 or 7 days, a 1-day view-through window and a 1-day engage-through window (Meta). In March 2026, Meta limited click-through for website and in-store conversions to link clicks, and moved shares, saves and other non-link clicks to engage-through (Meta). Meta also announced that its Ads Insights API would stop returning 7-day view and 28-day view results from January 12, 2026 (Meta for Developers).

  • View-through credit includes people who never clicked, some of whom would have paid anyway.
  • Trial payments can fall outside the window. Someone clicks on Monday, installs on Tuesday and starts a 7-day trial. The first payment lands about 8 days after the click, past a 7-day click window, so Ads Manager may show the trial and miss the payment.

On iOS, part of what Meta reports is modeled

On iOS 14 and later, Meta measures app campaigns with its Aggregated Event Measurement or with Apple's SKAdNetwork. Both hide individual people, so some results are estimates and some arrive late.

  • Aggregated Event Measurement (AEM) is Meta's protocol for iOS events. It removes identifiers, adds differential privacy and aggregates data across users (Meta). Reporting is close to real time, app events get 1-day or 7-day click windows, and Meta may model results where data is partial or missing (Meta).
  • SKAdNetwork (SKAN) is Apple's privacy-preserving install attribution. Version 4 sends up to three postbacks, for days 0 to 2, 3 to 7 and 8 to 35 after the first launch, each after a random delay of 24 to 48 hours for the first and 24 to 144 hours for the others. Only the first can carry a detailed conversion value (Apple). Meta reports SKAN results on the day it receives them, may model them at the ad set and ad level, and leaves the second and third postbacks out of Ads Manager (Meta).
  • AdAttributionKit is Apple's newer framework, available from iOS 17.4. It builds on SKAdNetwork and works alongside it (Apple), and Apple now tells developers to use it for app ad campaigns (Apple).

So iOS results in Ads Manager can be estimates, can change after the fact, and are least complete for recent days. RevenueCat reads store transactions, so its iOS numbers are unaffected.

Install, trial and paid are different events

Many mismatches come from comparing two different events. An install, a trial start and a first payment happen on different days.

Which event is which
EventWhat it isWhere RevenueCat counts it
InstallDownloaded and opened. Ads Manager shows those Meta attributes.No install count; the closest is new customers
Trial startA free trial begins. No money moves.New Trials, on the trial's start date, at $0
First paymentA trial converts, or someone buys outright.New Paid Subscriptions, on the conversion day
RenewalA later payment on the same subscription.Revenue, on the renewal date

RevenueCat dates a trial by its start and a paid subscription by the day the trial converted (RevenueCat, RevenueCat). Three details cause most of the confusion.

  1. Subscribe can include renewals. RevenueCat's Meta integration sends trial starts as StartTrial, and initial purchases, trial conversions and renewals as Subscribe (RevenueCat). A renewal inside the window can count in Ads Manager. RevenueCat's new paid subscriptions never include renewals.
  2. A new customer is not an install. RevenueCat creates a customer when its SDK starts, so a reinstall by a user you have not identified shows up as another new customer (RevenueCat).
  3. RevenueCat warns against the naive comparison. Its docs say to compare Meta-attributed results with the matching campaign, date range, attribution window and revenue basis, and not to compare all RevenueCat trials with Meta-attributed conversions (RevenueCat).

Money: gross, proceeds, refunds, taxes and currency

Even for the same purchases, the dollar amounts differ. RevenueCat's Revenue is what customers paid, including taxes and the store's commission, minus refunds recorded in the period (RevenueCat).

  • Gross or proceeds. The same chart offers Revenue (net of taxes), and Proceeds, which also takes out RevenueCat's estimate of the store's commission. Apple defines proceeds as the customer price minus applicable taxes and Apple's commission (Apple). Proceeds are close to what you keep.
  • Meta's purchase value is the value sent with each event. RevenueCat's integration lets you send gross revenue, revenue after commission or revenue after taxes, and it does not send refunds as negative revenue (RevenueCat). A purchase refunded later stays in Meta's figure.
  • Refunds. RevenueCat's current charts deduct a refund on the day it is processed, so finished periods do not change afterwards (RevenueCat).
  • Store fees. Apple and Google usually take 15% to 30% of each sale, depending on the program, the country and how long the subscriber has paid. Our break-even ROAS guide lists the current rates with links.
  • Currency. RevenueCat converts each transaction to US dollars at the purchase day's rate (RevenueCat), while App Store Connect's Sales and Trends uses a rolling average of the previous month's rates (Apple).

Days and time zones do not line up

A day in Ads Manager and a day in RevenueCat cover different hours and hold different events. Meta reports insights in the ad account's time zone (Meta for Developers), and Ads Manager puts a conversion on the date of the impression, not the date of the purchase (Meta). RevenueCat's charts always use UTC and put revenue on the transaction date (RevenueCat).

Say a fictional ad account runs on New York time. Someone clicks an ad at 9 p.m. on Monday and starts a 3-day trial at 9:30 p.m. In RevenueCat that trial is on Tuesday, because 9:30 p.m. in New York is after midnight UTC. When it converts three days later, the payment is on Friday in RevenueCat, while Ads Manager files the conversion under Monday's impression.

The stores add clocks of their own. App Store Connect's downloaded Sales and Trends reports use Pacific Time, while its online charts default to UTC (Apple). Google Play Console shows financial data in UTC (Google) and install statistics in Pacific Time (Google).

Daily comparisons suffer most. Weekly totals line up much better, because these offsets move only a small part of a week.

Reinstalls, devices and web purchases

Customer counts also drift for reasons unrelated to ads. RevenueCat gives each install a random anonymous ID until you identify the user, and a reinstall creates a new one (RevenueCat). Identifying users with an ID you control keeps one person as one customer.

Web purchases widen the gap the other way. Purchases through RevenueCat's web billing or Stripe appear in the same charts as App Store and Google Play revenue (RevenueCat). Ads Manager counts them for your ads only if those purchase events reach Meta. In the United States, App Store apps may now link to purchases on the web (Apple), so this part of the gap may grow.

A reconciliation checklist

Make the two measure the same thing, then follow their ratio over time.

  1. Pick a closed period. Use full weeks that ended at least two weeks ago, longer with long trials, so late iOS postbacks, trial conversions and many refunds have landed.
  2. Match platform and countries. Compare iOS with iOS and Android with Android, in the countries the campaigns targeted.
  3. Use one calendar. Compare whole weeks rather than days, and remember that Ads Manager dates each conversion by its impression.
  4. Match the event. Compare Meta's trials with RevenueCat's new trials, and Meta's purchases or subscriptions with RevenueCat's new paid subscriptions. Leave renewals out of both.
  5. Match the money. Use the same revenue basis on both sides. If the integration sends proceeds, compare with RevenueCat's Proceeds. Note refunds separately, since Meta never sees them.
  6. Compute Meta's share. Divide Meta's attributed trials or payers by RevenueCat's total for the same week. That is the share of your customers Meta claims.
  7. Watch the share, not the gap. A share that holds steady means the two agree on direction. A sudden jump points to a tracking change, a new window, duplicated events or an organic spike.

If Meta claims more than all of a week's customers, look for duplicated events and generous view-through credit. If the share is low, you probably have plenty of organic and other-channel demand, which is normal.

Which number to trust for which decision

Trust Ads Manager to rank things inside Meta, and trust RevenueCat or store proceeds to tell you how much money came in. Neither tells you how much of that money the ads caused.

Which number for which decision
DecisionUseWhy
Which creative, ad set or audience works betterAds ManagerSame rules for every ad, so the ranking is fair even if the level is off.
How much revenue came in and what you keepRevenueCat Proceeds or store reportsThey count every transaction, after refunds, on one clock.
Cash and accountingStore payment reportsPayments are final; dashboard figures are estimates.
Whether Meta spend makes moneyLift over a baseline, valued in proceedsAttribution cannot say what would have happened without the ads.
Moving budget between networksLift over a baseline, or an experimentEach network grades itself by its own rules.

The last two rows are where most budget mistakes happen. Our guide to measuring what your app ads really add covers the methods, from a simple baseline to Meta's Conversion Lift.

How INTARC does this

INTARC does this reconciliation automatically from read-only keys, with no SDK. It lines up Meta's ad days with your revenue's UTC days, counts the paying customers above each app's normal level on the days a campaign spends, and values them at what they actually paid after the store's cut. You can look around the demo or create an account to run it on your own apps.

Frequently asked questions

Why does Meta show more purchases than RevenueCat?

Usually because Meta's credit is generous: view-through conversions and modeled iOS results can add up to more than the stores recorded. Events sent to Meta twice, for example by both an SDK and a server integration, inflate it too.

Why does Meta show fewer trials than RevenueCat?

RevenueCat counts every trial, including organic ones and those from other channels. Ads Manager shows only the trials it attributes to Meta ads within the window, and on iOS some arrive late or only in aggregate.

Which time zone does RevenueCat use?

UTC, and it cannot be changed. Meta reports in your ad account's time zone, so daily figures will not line up.

Does RevenueCat revenue include Apple's and Google's fees?

Yes. RevenueCat's Revenue includes taxes and the store's commission, minus refunds. Choose Proceeds in the Revenue chart to see RevenueCat's estimate of what is left after taxes and commission.

Which number should I use for ROAS?

To compare ads inside Meta, use Ads Manager's ROAS. To judge whether spend pays back, divide the proceeds from the customers your ads added by what you spent, and compare the result with your break-even.

Store fees, attribution settings and reporting rules change often. We checked every linked source on November 9, 2026. Examples use fictional apps and numbers.