Research & Benchmarks Optimization AI Ads Analytics Why Madgicx? About Us Blog Careers Case Studies Events Pricing Login Try for Free

Why do Meta Ads Manager results differ from my actual revenue?

Ads Manager counts only the purchases Meta receives and can credit to an ad within your attribution window, by default 7 days after a click or 1 day after a view. Your store counts every order from every channel on the day it was placed, so the two totals rarely match, and the gap usually comes from tracking, timing or attribution.

TL;DR

  • Compare the same dates with the same attribution setting every time. Meta's default is 7-day click and 1-day view.
  • Ads Manager can date a sale by the day someone saw the ad, while your store dates it by the order.
  • Fewer purchases in Ads Manager usually means events aren't reaching Meta: ad blockers, consent choices or a browser-only Pixel.
  • More purchases in Ads Manager usually means view-through credit, or the same purchase counted twice.
  • Send purchases from your server through the Conversions API alongside the Pixel, with the same event ID on both.
  • Reconcile weekly with four numbers: store orders, purchases Meta received, orders from Meta traffic and purchases Meta credited.

Quick diagnosis

What you see Most likely cause How to check First fix
Fewer purchases in Ads Manager than in your store Many orders came from other channels, or purchase events never reached Meta Compare orders from Meta traffic, and purchase events in Events Manager, with store orders Compare like with like; add the Conversions API
More purchases in Ads Manager than store orders The Pixel and your server both sent the purchase without a matching event ID Place a test order: does it show as two purchases? Send the same event name and event ID from both
Ads Manager credits sales your analytics gives to email or search View-through credit, or several channels claiming one order Compare 7-day click results with the default setting Report click-only results next to the default
Ads Manager revenue above store net sales Refunds, cancellations, tax or shipping in the purchase value Compare gross and net sales; check the value in a test order Compare gross with gross
Last week's results keep rising in Ads Manager Late purchases are added to the day of the ad Pull the same dates again a week later Judge a period only after the click window has passed
The gap grew suddenly A site change broke the purchase event or added a second copy Test events, and old pixel code in your theme Keep one source for each event
The gap is bigger on iPhones or in Europe Privacy settings and consent limit browser events Break results down by device or country Add server events for customers who consent

How does the attribution window change the numbers?

Ads Manager counts a purchase only if it happens within a set time after someone interacts with an ad. Meta can give credit for clicks, views and engagements, and a view-through means the purchase came within 1 day of seeing the ad, without a click. Meta's default setting is 7-day click and 1-day view.

Your store has no window. A customer who clicked an ad 10 days ago and buys today is a store order, but not a Meta purchase. A customer who saw an ad, didn't click, then bought after a Google search can count as a Meta purchase and a Google conversion at once.

How to check: add the Attribution setting column in Ads Manager, then compare results with 7-day click only. The difference is your view-through share.

The fix: pick one attribution window for reporting and use it every time. Report click-only results beside the default if your finance team questions view-through credit. Also note that Meta stopped returning 7-day and 28-day view windows in its Ads Insights API from 12 January 2026, so older reports may not match new ones. Our guide to Facebook ads attribution explains each setting.

Let Madgicx's AI do the work

Its AI marketer finds what's working and prepares the next move. You approve.

Try for Free ($0 Trial)

Why does Ads Manager date sales differently from my store?

Your store records an order on the day it's placed. Meta's reporting can record it on the day of the ad instead. Meta's Insights API documentation gives the example of a person who saw an ad on 1 January and bought on 2 January. Reported by impression time, which is the API's default, the purchase appears on 1 January.

This is why yesterday often looks weak and then improves, and why monthly totals shift after the month ends. A purchase made 6 days after a click is added back to the day of the ad.

How to check: pull the same date range twice, a week apart. If last week's purchases grew, timing explains part of your gap.

The fix: compare complete weeks, and wait until the click window has passed before you close a period. If you pull data through the API or a reporting tool, ask for conversion-time reporting when you need to match your store's order dates.

Why does Ads Manager show fewer purchases than my Shopify store?

Three reasons cover most cases.

How to check

  • In Events Manager, compare the purchase events Meta received with your store's online orders for the same days. Received events are counted before attribution, so with working tracking the two should be close.
  • In Shopify, open Sales channels > Facebook & Instagram > Settings > Data sharing settings and see which level is on.
  • Check the Event Match Quality of your purchase event.

The fix: in Shopify, choose the Enhanced or Maximum data sharing level. Shopify says both add the Conversions API, and that server-to-server data can't be blocked by browser ad blockers. On other platforms, set up the Conversions API yourself and send email or phone, so more purchases match. Our answer on adding the Meta Pixel to Shopify covers the setup.

Why does Ads Manager show more purchases or revenue than my store?

  • View-through credit. A view-through purchase counts even though the buyer never clicked. If they also clicked an email, both channels claim the order.
  • Duplicate events. Meta recommends a redundant setup of the Pixel and the Conversions API. It removes duplicates only when the event name and event ID match, and generally keeps the event it receives first. Without matching IDs, one order counts twice.
  • Old code left behind. A pixel pasted into your theme plus an app connection sends every purchase twice.
  • Different values. The purchase value may include tax and shipping that your net sales report leaves out.

How to check: in Events Manager, open Test events and place a test order. You should see one purchase, with a value and currency. Our list of Meta Pixel standard events shows what each event should send.

The fix: send the same event ID from the Pixel and the server for each order, and remove any old pixel code. Then compare a week of purchases with your store again.

Do refunds, taxes and shipping affect the gap?

Yes. Ads Manager shows the value sent with the purchase event at checkout. Your store's net sales subtract refunds and cancellations later, and may leave out tax and shipping.

Compare your store's gross sales with Ads Manager's purchase value, or subtract your refund rate before you compare ROAS. If refunds are high in your category, track Meta ROAS on net revenue in your own report.

How do I reconcile Ads Manager with my revenue?

  1. Pick a closed period, such as last full week, and wait 7 days after it ends so late purchases from clicks are counted.
  2. Use one attribution setting for every comparison, and write it on the report.
  3. Pull the four numbers in the table below for those dates.
  4. Work out the ratio between each pair, and track the ratios week by week.
  5. Investigate when a ratio moves, not when the totals differ. A steady gap is normal; a sudden change means something broke.
Number Where to find it What it tells you
Store orders Your store's sales report All online sales, from every channel
Purchases Meta received Events Manager, purchase event Should be close to store orders; a big gap means blocked or missing events
Orders from Meta traffic Your analytics, with UTM tags on every ad Sales your own tracking credits to Meta clicks
Purchases Meta credited Ads Manager, Results column Usually above orders from Meta traffic, because it adds view-through and cross-device sales

For a fuller model of what Meta really drives, see our post on Meta ads revenue attribution. Our Facebook ads reporting guide shows how to build the weekly report.

Where Madgicx fits

Madgicx helps on both sides of the gap. Madgicx's tracking sends conversions to Meta from your server, so fewer purchases go missing when a browser blocks the Pixel. Its reports put Meta beside Google Ads, TikTok and Klaviyo in one dashboard, so you can see when several channels claim the same order, and share it by link or PDF. Its AI chat reads your Meta ad account and explains what changed between two periods.

FAQ

Why does Meta Ads Manager show fewer purchases than Shopify?

Meta Ads Manager shows fewer purchases than Shopify because Shopify counts every order, while Meta counts only orders it receives and credits to an ad within your attribution window. Ad blockers, consent choices and browser-only tracking hide more purchases from Meta.

Why does Ads Manager show more sales than I actually made?

Ads Manager can show more sales than your store when it counts view-through purchases or the same purchase twice. Duplicates happen when the Pixel and the Conversions API send one order without a matching event ID.

What is Meta's default attribution setting?

Meta's default attribution setting is 7-day click and 1-day view. A purchase counts if it happens within 7 days of clicking an ad, or within 1 day of seeing it without a click.

Should Ads Manager revenue match my Shopify revenue?

No, Ads Manager revenue and Shopify revenue are not meant to match exactly. They count different orders, date them differently and may use different values, so track the size of the gap over time instead.

Does the Conversions API fix the gap between Ads Manager and my store?

No, the Conversions API closes only the tracking part of the gap. Server events reach Meta when a browser blocks the Pixel, but attribution windows and reporting dates still make the numbers differ.

Why do last week's numbers in Ads Manager keep changing?

Last week's numbers in Ads Manager keep changing because purchases made later are added to the day the person saw the ad. A purchase 5 days after a click can still raise the results of that earlier day.

Sources

Official Meta Business Partner

Now you know how it works. Madgicx's AI does the work.

Madgicx is the agentic AI advertising platform for Meta ads. Its AI marketer finds what is working, prepares the next move and gets it done in one click, while you stay in control.

Try for Free ($0 Trial)
200,000+ advertisers
$10B+ annual ad spend visibility
4.6 / 5 on G2, from 220+ reviews