Why Ads Manager Sales Don't Match Your Payment Gateway (and How to Fix It)
Tracking

Why Ads Manager Sales Don't Match Your Payment Gateway (and How to Fix It)

9 min read

It's the most familiar scene in paid traffic: Ads Manager shows one number of sales, you open your payment gateway — Kirvano, Hotmart, Ticto, Kiwify — and find another. Sometimes the gateway has fewer sales than Meta reports; sometimes it has more. And then comes the inevitable question: which one is lying?

The short answer: neither. The two numbers measure different things, under different rules, at different moments. In this article you'll understand exactly where each discrepancy comes from — attribution windows, reporting delay, iOS modeling, sales duplicated across campaigns, and orphan sales — and how to build a simple reconciliation process so you know, with confidence, how much each campaign actually sold.

The two numbers measure different things

The payment gateway counts transactions: every approved purchase becomes a line in the statement, recorded on the day and time the money came in. It doesn't know (and doesn't need to know) where the buyer came from. It's an accounting record.

Ads Manager counts attributed conversions: Meta takes the purchase events it receives (from the pixel and CAPI) and tries to link them to an ad click or an ad view within a time window. If it can make the link, it credits the sale to the campaign — and records the conversion on the date of the click or impression, not the date of the purchase. It's a marketing record, built to answer a different question: which ads are driving results?

Attribution windows: 7-day click, 1-day view

Meta's default attribution window is 7 days after a click and 1 day after a view. That means a purchase gets credited to the ad if it happens within 7 days of the person clicking it, or within 1 day of them merely seeing the ad, even without clicking.

That second case is the one that surprises people most: view-through attribution counts as a campaign conversion a sale from someone who saw your ad scroll past in the feed and bought through another path hours later — a Google search, a bio link, a WhatsApp message. To the gateway, that sale could have come from anywhere; to Meta, it belongs to the campaign.

  • Purchase on day 5 after a click on day 1: Meta reports the conversion on day 1 (the click date). The gateway records it on day 5. Daily reports will never line up.
  • Purchase 1 day after only seeing the ad: Meta counts it (view window); no click-based tracker will ever attribute that sale to the campaign.
  • Purchase 10 days after the click: Meta no longer counts it (outside the 7-day window), but the gateway records it normally — now it's Meta showing less.
  • The window is configurable per ad set (for example, 1-day click). If you compare periods, you need to know which window is active.

Meta isn't last-click — and your tracker probably is

Another source of divergence is the attribution model. Most trackers and spreadsheets work on last-click: the sale belongs to the last tracked click before the purchase. Meta, inside its own ecosystem, doesn't work that way — it credits the conversion to any ad that touched the buyer within the window, and uses statistical models to distribute credit when there are multiple touches.

Sales duplicated across campaigns

Here's one of the most common reasons the sum of your campaigns in Meta exceeds the gateway total: when the same buyer is reached by several of your ads (top of funnel, remarketing, a scaling campaign running in parallel), more than one campaign can claim that same purchase within its windows.

  • The buyer clicks ad A on Monday and ad B on Wednesday, then buys on Thursday: depending on the windows, both campaigns may show the conversion.
  • The more active campaigns competing for the same audience, the greater the overlap — and the more inflated the total purchase count in Ads Manager becomes.
  • Classic symptom: each campaign looks healthy in isolation, but the sum of reported sales is 20 or 30% higher than the gateway statement.
  • This isn't a bug: it's what happens when you read campaign by campaign a number that was designed to be read with overlap.

Reporting delay: Meta can take up to 72 hours

The gateway records the sale in real time — the payment clears, the line appears. Meta doesn't: conversions can take hours to show up in Ads Manager, and the report itself warns that data may be updated for up to 72 hours. Modeled conversions and view-attributed sales usually take even longer to settle.

Rule of thumb: never judge the discrepancy of a day that hasn't been closed for at least 72 hours. Meta's number for the day before yesterday is still being written.

iOS, ATT, and modeled (estimated) sales

Since iOS 14.5 and App Tracking Transparency, a meaningful share of iPhone users can't be tracked individually. To keep those conversions from simply vanishing, Meta uses statistical modeling: it estimates how many sales that untrackable group probably generated and adds those modeled conversions to the report.

Orphan sales: the purchase that arrived with no trail

On the opposite side are the sales the gateway records but no campaign claims: orphan sales. They're real purchases, money in the account, that arrived with no trace of origin — the gateway webhook came in without the tracking parameter (SCK, src, or equivalent) and without usable UTMs.

  • The click parameter got lost on the way to checkout: redirects, link shorteners, and intermediate pages that don't pass the query string along break the trail.
  • The checkout doesn't return the parameters in the webhook: each gateway has its own field (src, sck, checkout_params) and not every funnel fills it correctly.
  • The buyer switched devices: clicked the ad on their phone and completed the purchase on a computer, with nothing linking the two sessions.
  • The purchase genuinely came from a non-paid channel (referral, organic, email) — in that case the orphan is correct, and forcing attribution would inflate your campaign.

UTMs: your independent source of truth

If Meta attributes by its own rules and the gateway attributes nothing, you need a third witness — and it's called UTM. Well-built URL parameters (utm_source, utm_medium, utm_campaign, utm_content) travel from the ad to the page, from the page to the checkout, and from the checkout to the gateway webhook. When that works, every transaction carries with it the campaign, ad set, and ad that originated it.

The advantage of UTMs is that they don't depend on windows, modeling, or cookies: they're text in the URL, saved alongside the sale. The disadvantage is that they're essentially last-click and break if any step of the funnel fails to pass the parameters along. That's why they complement Meta rather than replace it.

How to reconcile in practice: the 3-column spreadsheet

  1. Export the approved transactions from the gateway for the period (closed for at least 72 hours), with date, value, and the tracking fields (src/sck, UTMs).
  2. For each transaction, extract the utm_campaign (or the tracking identifier) and note the corresponding campaign. Transactions with no trail go in the 'orphan' column.
  3. Total the sales per campaign and put next to it the number Meta reports for the same period, with the same date range.
  4. Analyze the gaps: Meta above the gateway points to view-through, campaign overlap, and modeling; gateway above Meta points to expired windows, blocked pixels, or events that never arrived.
  5. Track the orphan rate over time: if it exceeds a small slice of sales, the problem is the parameter plumbing, and that's what you fix first.

When to trust each number

  • Use Meta to optimize and read trends: comparing creatives, ad sets, and audiences against each other. The attribution rules are the same for all of them, so the relative comparison is fair — even if the absolute number isn't accounting-grade.
  • Use the gateway (crossed with your tracker/UTMs) for real cash: deciding budget, calculating ROI and margin, and knowing whether the operation closes in the black.
  • Never scale or kill a campaign based only on the Ads Manager number for a day that hasn't consolidated yet.
  • Never calculate profit from Meta's conversion value: modeling and overlap inflate it; windows and pixel blocking underreport it. Profit is calculated from the statement.

Best practices to make the numbers converge

  • Build your URL parameters in a standardized way across all ads (utm_campaign with the real campaign name or ID) and verify that the landing page and checkout preserve them.
  • Connect the gateway webhook to a server-side tracker: the confirmed sale arrives with the click trail, even when the browser pixel was blocked.
  • Compare periods with a fair window: the same date range on both sides, closed for 72 hours or more, and aware that Meta dates the conversion by the click, not the purchase.
  • Standardize the attribution window across compared campaigns — mixing 7-day click with 1-day click invalidates the comparison.
  • Monitor orphan sales weekly: every avoidable orphan is a sale your campaigns generated that nobody got credit for.
  • Document your funnel's plumbing (redirects, shorteners, thank-you pages) and test the full path from click to webhook after any change.

Conclusion

Ads Manager and your gateway will never match to the cent — and that's fine. Meta counts conversions attributed by click and view, within windows, dated at the click, with iOS modeling and overlap across campaigns. The gateway counts money in the account, on the day it landed, with no idea where it came from. Once you understand both sets of rules, you stop hunting for the 'lying number' and start using each for what it's for: Meta to optimize, the gateway crossed with your tracking to decide with real cash.

The heavy lifting is the reconciliation: making every gateway sale arrive with the trail of the campaign that generated it. Building that by hand — parameters, webhooks, spreadsheets, orphans — burns hours every week. IzeAds delivers it ready-made, no code: the server-side tracker links your gateway's webhook (Kirvano, Hotmart, Ticto, Kiwify, Cartpanda, and others) to the ad click via SCK, shows real sales per campaign, ad set, and ad side by side with spend, and separates the orphans so you can see exactly where the trail breaks. If you're tired of auditing spreadsheets to know how much each campaign really sold, it's worth a look.

Ready to operate with more control?

Create campaigns in bulk, track sales in real time and protect your offers with IzeAds.

Create free account