Skip to main content
Missing Meta purchasesMeta Purchase event repair

Get your Missing Meta purchases tracking to 95%+ accuracy guaranteed in writing.

Your store's order count and your Events Manager purchase count don't agree, and the difference isn't small. Those missing orders are real, paid for, and already shipping — Meta just never received the event. I find where the Purchase event dies, move it to your server so a browser can't kill it, and reconcile the result against your order export.

Free30 minutesNo obligation

Missing Meta purchases · what breaks

Here's where Purchase events usually die

  1. 01

    The Pixel never runs for a large slice of your buyers

    Safari's tracking prevention, content blockers and privacy browsers stop the browser Pixel before Purchase ever fires. The order lands in your store as normal. Meta simply isn't told about it.

  2. 02

    Wallet checkouts skip the page the Pixel sits on

    Shop Pay, PayPal and Klarna hand the customer back to a confirmation page that plenty of people close before it finishes loading. If Purchase only exists on that page, those orders are silently absent.

  3. 03

    Purchase isn't priority one in Aggregated Event Measurement

    You get eight ranked events per verified domain. If Purchase sits below ViewContent and AddToCart in the priority list, opted-out iOS traffic reports the higher-priority event instead and your purchase count quietly shrinks.

  4. 04

    A partner CAPI feed is sending thin, unmatchable events

    App-store integrations often post Purchase with a value and nothing else — no hashed email, no phone, no fbp, no fbc. The event arrives and counts, but Meta can't tie it to the person who saw the ad, so it never reaches your ad set reporting.

Missing Meta purchases · the fix

What changes after Purchase moves to your server

  • Every paid order produces exactly one Purchase event

    Fired from your order webhook, not from a page load. A closed tab, a blocked script or a slow redirect no longer decides whether Meta hears about a sale.

  • Match Quality climbs because the identifiers are complete

    Hashed email, phone, name, city, plus fbp and fbc carried from the browser and stored server-side. That's the difference between an event that counts and an event that gets attributed.

  • Ad set reporting stops under-counting your best audiences

    When only half your purchases match, the audiences that convert quietly look mediocre. Complete matching lets the reporting show which ad sets actually produced the orders you already have.

  • Your Events Manager total ties back to your order export

    You can open both files and see the same number. That's the point at which you can start trusting a Meta ROAS figure enough to move budget on it.

Missing Meta purchases · normal or broken

Which number are you comparing? That decides everything.

Half the "missing purchases" I get called about are Ads Manager attributed purchases being compared to total store orders, which are supposed to differ. The real test is Events Manager against your order export.

Normal, not a fault

  • Ads Manager shows fewer purchases than your store

    Ads Manager only claims orders it can tie to an ad within the attribution window — 7-day click, 1-day view by default. Your organic, email and direct orders aren't missing. They were never Meta's to report.

  • Events Manager is higher than Ads Manager

    Events Manager counts every event received, attributed or not. Ads Manager counts only the attributable subset. Those two panels answering different questions is the system working correctly.

  • Yesterday's ROAS keeps improving for two more days

    Meta backfills conversions to the day of the ad interaction, so recent days are always understated when you look at them. Judge a week only after it has closed.

  • Some purchases arrive with no fbc parameter

    A buyer who came from email or typed your URL never had a click ID to carry. Missing fbc on non-ad traffic is correct behavior, not a broken Pixel. It matters only on ad-driven sessions.

Actually broken

  • Events Manager is materially below your paid order count

    Events Manager should approximate every order, not the attributed subset. If it's short of your store's own total, events aren't being received, and no attribution setting explains it.

  • The missing orders are concentrated on iOS and Safari

    Segment the gap by browser in your store export. If Safari and iOS buyers are the ones absent, the browser Pixel is being blocked or its cookie has expired, and only a server-sent event recovers them.

  • Shop Pay, PayPal and Apple Pay orders never appear

    Wallet checkouts complete on the provider's flow and can skip the page the Pixel sits on. Those orders systematically never fire, which is why the gap tracks your wallet payment share almost exactly.

  • The purchase count fell off a cliff on one date

    A theme deploy, an app update, or a new consent banner. Attribution changes are gradual; a step change on a calendar day is a technical event you can trace to a release.

Missing Meta purchases · diagnose

Six checks that tell you how big the real gap is — Missing Meta purchases

Two of these are free fixes you can ship this afternoon; the rest tell you whether the remaining gap justifies a rebuild.

  1. 01

    Count the true gap against Events Manager

    Export paid orders for a closed seven-day window. Compare that count to the Purchase event count in Events Manager for the same days — not to Ads Manager attributed purchases. That comparison is the whole diagnosis.

  2. 02

    Place a test order with Pixel Helper open

    Run a real checkout with the Meta Pixel Helper extension running. Confirm Purchase fires exactly once and carries value, currency and content_ids, and note whether an event_id is present.

  3. 03

    Segment the misses by browser and payment method

    Take the orders that never appeared and group them by browser and by payment type. If iOS, Safari, or wallet checkouts dominate, you've found your failure mode without touching a line of code.

  4. 04

    Check the AEM priority list for Purchase

    Events Manager, then Aggregated Event Measurement, on your verified domain. If Purchase isn't first in the priority list, opted-out iOS traffic reports something lower instead. Reordering it takes two minutes.

  5. 05

    Read connection method and Match Quality

    Events Manager shows Browser, Server or Both per event, which customer parameters actually arrive, and the Event Match Quality score. A thin server feed with no email, phone, fbp or fbc is visible here immediately.

  6. 06

    Hunt for a second pixel ID or dataset

    A native channel app plus a hardcoded pixel means part of your volume lands in a dataset your ad account doesn't read from. Search the page source for "fbq('init'" and compare every ID you find.

Missing Meta purchases · prove

Order by order against your export, then Match Quality — Missing Meta purchases

Two things get verified: that every paid order produced exactly one Purchase event, and that those events carry enough identity to actually attribute.

Source of truth

Your store's paid order export — Shopify orders or successful Stripe charges

  • Take a closed seven-day window and export order ID, timestamp, value, currency and payment method.
  • Pull the same window from Events Manager by event received, not from Ads Manager attributed results.
  • Match order to event on event_id, which we derive from your order ID, so every miss has a name.
  • Confirm each matched order produced one Purchase after deduplication, never a browser and server pair.
  • Check Event Match Quality on Purchase holds at 8+ across the window, which is the written guarantee.
  • Sign-off is 95%+ of paid orders present in Events Manager, verified against your own order export.

Missing Meta purchases · free audit

What we check in the free audit

  • Count the true gap against Events Manager
  • Place a test order with Pixel Helper open
  • Segment the misses by browser and payment method
  • Check the AEM priority list for Purchase
  • Read connection method and Match Quality
  • Hunt for a second pixel ID or dataset

Checked against

Your store's paid order export — Shopify orders or successful Stripe charges

Get my free conversion tracking audit

Free30 minutesNo obligation

Missing Meta purchases · when not to buy

Four reasons not to buy this — Missing Meta purchases

Meta tracking work is worth money at a certain spend and a certain gap size. Below either, it isn't.

  • Events Manager is already within a few percent of your order count. What's left is attribution, and a rebuild won't move it.
  • You've been comparing Ads Manager attributed purchases to total store orders. Those numbers are supposed to differ — re-check first.
  • You spend under about a thousand a month on Meta, or Meta isn't a channel you plan to scale this year.
  • You already run a Conversions API feed with Match Quality in the eights and Purchase top of the AEM list. Buy an audit, not a rebuild.

Missing Meta purchases · what we deliver

What you get on a Meta Purchase rebuild

  • Purchase fired server-side from your order webhook

    The event leaves your backend when the order is genuinely confirmed and paid, carrying currency, value, contents and the order ID.

  • event_id set to the order ID on both browser and server

    The same deterministic ID on both hits so Meta collapses them into one event instead of counting the same sale twice.

  • Advanced matching with hashed email, phone, fbp and fbc

    Normalized and SHA-256 hashed in the server container, with fbc reconstructed from the fbclid captured at landing when the cookie has been trimmed.

  • AEM event priority reset with Purchase at the top

    Your eight event slots re-ranked so the money event outranks upper-funnel events, and unused events cleared out of the list.

  • Domain verification and dataset ownership confirmed

    Domain verified in Business Manager, the right dataset connected to the right ad account, and any duplicate or orphaned pixel IDs identified and retired.

  • A seven-day order-by-order reconciliation

    Your store's order export matched against Events Manager row by row, with every unmatched order accounted for rather than rounded away.

Written guarantee

95%+ tracking accuracy

Measured against Your store's paid order export — Shopify orders or successful Stripe charges. Miss it and we keep working at no cost.

Get my free conversion tracking audit

FAQ

Missing Meta purchases questions, answered

Partly, and some of it is genuinely easy. Open Events Manager, check your Aggregated Event Measurement priority list and move Purchase to the top — that's a two-minute change that helps immediately. Verify your domain if it isn't. Check you don't have two pixel IDs firing. Where DIY runs out is the browser-block problem: no setting inside Meta fixes an event that never left the customer's device. That needs the Purchase event to originate from your server, and that's a build.

Free · 30 min

Let's count exactly how many purchases Meta is missing

Free30 minutesNo obligation