The question (paraphrased from a reader on Reddit): Some of my Meta purchase events are duplicated, and some seem to be missing. If the event data is that messy, can I still trust the ROAS Meta reports?
Quick answer: Trust it with an adjustment. First, sample how often duplicates happen and build that into how you read Meta ROAS. Then, if your volume allows, run a geo holdout and use your own first-party sales as the source of truth. Once you know what Meta truly causes, deduplication matters a lot less for evaluation. It still matters for the algorithm.
Have you sampled how often it happens?
Start there: pull a sample of orders from your own order system (Shopify or wherever orders live) and match them to the purchase events Meta received. How many orders show up twice? How many don't show up at all?
Now that you have a rate, can you just build that expectation into how you read Meta ROAS?
Example (synthetic numbers, for illustration only): I match 500 recent orders to Meta purchase events and find 40 that were counted twice. That's an 8% duplication rate in my sample. If Meta reports a 4.0x ROAS, I'd read it as closer to 3.7x (4.0 ÷ 1.08) before comparing it to anything.
That's a rough fix. It only accounts for duplicates, not the missing events you found. It says nothing yet about whether Meta caused those sales.
How does a geo holdout get around the messy events?
It skips them.
Depending on your volume and channel mix, a holdout test lets you use your first-party sales (your own order records) as the source of truth:
- Control regions: Meta ads are off.
- Treatment regions: Meta ads stay on.
- Compare: watch how many more sales you get "in real life" in the treatment regions.

Your order system doesn't care whether the pixel fired twice. When you know how many sales your Meta ads truly cause, the attribution window and even event deduplication matter a lot less. They still matter, just less.
A platform report is one view of the sale. Last click is another, and last click undervalues upper-funnel channels because it only sees the final step. A holdout measures the sale itself. Before you plan one, check that your data can support it with the geo-test feasibility checks.
So should I stop worrying about duplicates?
No, but worry about them for a different reason.
If duplication is a big or frequent problem in your dashboard, I'd worry about it less for performance evaluation and more for the algorithm. Meta optimizes delivery using the conversion events you send it. Feed it a lot of false information and it may learn the wrong lessons about who your buyers are.
Fix the tracking anyway, then measure with a test.
If your events are a mess and you're not sure where to start, here's how I work with brands on measurement.
Happy advertising, and reach out with questions!
Think your Meta ROAS is inflated?
Bring the numbers that look too good. I'll help you check your purchase events and test what Meta is really driving. One-off and short projects are fine.
FAQ
Do duplicate purchase events inflate Meta ROAS?
Yes. If one order is counted twice, Meta reports more purchase revenue than you received, which raises reported ROAS.
How do I check for duplicate Meta purchase events?
Match a sample of orders from your own order system to the purchase events Meta received, and count how many appear twice or not at all.
How can I measure Meta results without trusting pixel data?
Run a geo holdout. Turn Meta off in control regions, keep it on in treatment regions, and compare sales from your own order records.
Why do duplicate events matter if I run a holdout test?
Meta optimizes delivery on the events you send it. False purchase signals can steer the algorithm toward the wrong people.
