Meta Ads will spend every dollar you give it. It won’t check whether the data it learns from is true.
That job is yours, and it has to happen before the first ad goes live. When tracking is wrong, Meta finds more of the wrong people, and the report in Ads Manager can still look healthy. You find out weeks later, after the budget is gone.
I check tracking before the ad, the audience or the budget. Here are the mistakes I see most often, and how to fix each one.
Meta optimises towards the events you send it
When you choose an objective like purchases or leads, Meta looks for more people who are likely to do that action. It knows who did the action from your events. That’s the whole system. Your events are its instructions.
There’s a numbers side to this too. Meta needs about 50 optimisation events per ad set within 7 days to finish the learning phase. If your tracking misses real sales, a small budget may never reach 50. If your tracking counts actions that aren’t real, Meta reaches 50 fast and learns from nothing useful. You pay for both.
Meta Ads will spend every dollar you give it. It won’t check whether the data it learns from is true.
The Purchase event fires too early
The problem: When the Pixel is added, either via a plugin or by a developer, the Purchase event is sometimes triggered when someone lands on the checkout page. Meta credits the sale and learns that anyone reaching the checkout is a buyer, then tries to find more of them. You’ll get lots of traffic, but your bank balance will stay the same.
The solution: Move the event to the order confirmation page, or set it to trigger once payment has been made. Test it by adding a product to the basket and completing checkout, then look in Events Manager to see if it worked. If you make a test order or apply a 100% discount code, you won’t lose any money.
The Pixel alone misses sales
The problem: The Pixel works in the visitor’s browser, so there’s a chance it gets blocked by ad blockers or privacy settings. Since the iOS 14.5 update in 2021, many iPhone users have chosen to opt out of tracking. When that happens, Meta won’t know your customer has made a purchase.
The solution: The Conversions API (CAPI) sends the event from your server to Meta, and that can’t be blocked by the browser. I recommend using both the Pixel and CAPI, as the server picks up events the Pixel misses. Once CAPI is connected, make sure you’re receiving events from both. I test this on every account.
The same sale gets counted twice
The problem: If you use both, you run the risk of duplicate sales. The customer has made one purchase, but the Pixel and the server both fire an event. If Meta can’t tell it’s one order, it counts it as two.
The solution: This is called deduplication. Both events need to send the same event name and event ID so they can be merged and only count once. If they don’t match, your figures will be inflated.
Go to the Test Events section in Events Manager and perform an action on your site. It will show you whether the event came from the browser or the server, and whether it was merged.
Note: The Meta Pixel Helper Chrome extension only shows events from the browser. To see what has been sent from your server, use Test Events.
Events that record the wrong action
Events can still be incorrect. A common one is the Lead event. Some setups fire it every time someone lands on the contact page. That’s just a visit. Someone has only enquired when they submit the form.
Add to Cart can also be an issue. Some sites fire the event when someone views a product. That tells Meta people have browsed, which is a much weaker signal than knowing they’ve added something to their basket.
Rule of thumb: Ask yourself why the event is firing. If the answer isn’t “because the customer did the action in the event name”, change it.
Wrong value or currency
The customer has paid $100, but your Purchase event sends $70 or nothing at all. The sale is still counted, but your revenue and your ROAS (return on ad spend) will be wrong. Many owners look at ROAS to decide whether to keep spending, so an incorrect value can lead to the wrong decision.
The solution: Make sure every Purchase event sends the correct value and currency. Make a test order with a known price and compare it with what’s been sent in Events Manager.
No rechecks after a website change
Your tracking can work one day and stop the next. Your developer may have updated the checkout, you may have changed the booking form or added a new plugin. Any of these can stop an event firing, and your ads will carry on running as normal.
Every time there’s a change to your site, test your key events. It should only take around 10 minutes. Finding out three weeks later will cost a lot more.
Some mismatch is okay
Ads Manager credits your ad based on an attribution window, usually 7 days after a click and 1 day after a view. Your orders list has no attribution window, so the two will rarely match perfectly, and that’s fine. What you want to avoid is a large mismatch or a sudden change.
A quick check before you launch
- Is the Pixel on the correct website?
- Does each event fire when the customer completes the action, and not earlier?
- If you use CAPI, do browser and server events merge in Test Events?
- Does a test purchase show the correct value and currency?
- Have you clicked through your own site like a customer?
- Does each main event have a reasonable Event Match Quality (EMQ) score?
If anything fails, fix it before you spend more. Every extra dollar on broken tracking gives Meta more wrong data to learn from. If you aren’t sure how to test any of this, ask someone to check it before launch. A check-up costs less than a month of ads aimed at the wrong people.


