
Quick answer
Install Meta Ads Data Advisor, the browser extension formerly called Meta Pixel Helper, and load your site to see whether the pixel fires. Then use Test Events in Events Manager to confirm each conversion arrives. Fix missing or duplicate code, then add Conversions API with matching event IDs so Meta can deduplicate browser and server events.
Zero conversions in Ads Manager usually means one of three things: the pixel isn't firing, it is firing twice, or something is blocking it. This guide from our Meta ads help centre shows you how to test it in about ten minutes and fix it on the platform you use.
What "not active" actually means
In Events Manager, a pixel or event shows as inactive when Meta hasn't received events from it recently. It doesn't always mean the code is missing. Common reasons are:
- a theme, plugin or site update removed the code;
- the pixel is on the site, but under a different ID from the one your ads use;
- a cookie banner holds the pixel back until visitors accept;
- the site simply had little traffic in that period.
Meta's documentation for the extension uses three pixel statuses: Active (working), Warning (not set up correctly) and Inactive (not sending events correctly).
Check these first
- Confirm which pixel your ads use. In Ads Manager, open the ad and look at the tracking section for the pixel or dataset ID. Events Manager may call it a dataset. Compare that ID with the one on your site.
- Install Meta Ads Data Advisor in Chrome or Edge. Check the listing says it is offered by Meta. Turn off your ad blocker for your site, then load a page. A badge on the icon shows events found; no badge means no pixel was found.
- Do a real test conversion. Submit your form, add a product to the cart or place a test order. The extension should show the event as successful, with value and currency where they apply.
- Use Test Events. In Events Manager, open your dataset, go to Test events, enter your site address and repeat the action. The event should appear in the test feed shortly after.
- Read the Diagnostics tab in Events Manager and fix anything it lists.
Troubleshooting by message
| What you see | What it means | How to fix it | How long it takes |
|---|---|---|---|
| No badge on the extension icon | No pixel loaded on the page, or it was blocked | Reinstall through your platform's Meta integration and test with ad blockers off | 15 to 30 minutes |
| Pixel or event Inactive in Events Manager | No events received recently | Test with Data Advisor; check recent theme, plugin or consent changes | Clears after the next real visit |
| Duplicate Pixel code | The same pixel is loaded twice, for example an app plus code pasted into the theme | Remove one copy and keep the platform integration | About 15 minutes |
| Purchases counted twice | Browser and server events aren't deduplicated, or two integrations send the same event | Send the same event_id and event_name from both, and remove extra installs | Check again the next day |
| Missing value or currency | The event fires without order value | Pass value and currency (AUD) with Purchase and lead events | 30 minutes |
| Events show in the extension but not in Ads Manager results | Wrong pixel ID, or the dataset isn't connected to the ad account | Match the IDs and connect the dataset to the ad account | Same day |
| Purchase missing on Shopify | Pixel code pasted into the theme doesn't run on Shopify's checkout pages | Use the Facebook & Instagram app and its data sharing settings | Under an hour |
Fixes by platform
Shopify
Connect the pixel through Meta's Facebook & Instagram sales channel app, not pasted code. In Shopify admin go to Apps and sales channels, open Facebook, then Settings and Data sharing settings. Turn on customer data sharing and choose a level. Shopify's help says the Maximum level uses both the Meta pixel and Conversions API.
Then remove any pixel code pasted into your theme files or added by older apps. Two installs are a common cause of doubled purchases.
WordPress and WooCommerce
Pick one method and remove the others: Meta's official WooCommerce extension, a tracking plugin, or Google Tag Manager. A common mess is a plugin, plus code in the theme header, plus a tag in GTM, all firing the same pixel.
Also check your caching or speed plugin. Settings that delay JavaScript until someone scrolls or clicks can stop the pixel firing for visitors who leave quickly. Exclude Meta's pixel script from the delay, then test again.
Google Tag Manager
Use one Meta base tag that fires on all pages, or after consent, and separate event tags with specific triggers, such as a thank-you page view. Check them in GTM's Preview mode, and make sure the pixel isn't also hard-coded on the site. For Conversions API from GTM, you need a server-side container or Meta's Conversions API Gateway.
Custom PHP sites
Fire the Lead event when the form is actually submitted successfully, for example on the thank-you page, not when someone clicks the button. Then send the same lead from your form handler to Conversions API with the same event ID. In the browser it looks like this:
fbq('track', 'Lead', {value: 0, currency: 'AUD'}, {eventID: 'lead-1042'});
Your server sends event_name: "Lead" and event_id: "lead-1042" for the same submission. On our own PHP builds, every lead is also saved in the site's admin panel, which gives you a count to compare against what Meta reports.
Conversions API: why you need it
The pixel runs in the visitor's browser. Ad blockers, browser privacy features and people leaving before the page finishes loading all cause missed events. Conversions API sends events from your server or platform straight to Meta, so it fills some of those gaps. Meta recommends running both together.
The usual ways to set it up are a platform integration (such as Shopify's Maximum setting), Meta's Conversions API Gateway, a partner integration, or a direct connection from your own code.
Deduplication with event IDs
When the pixel and Conversions API both report the same purchase, Meta needs to know it is one purchase, not two. Meta's developer documentation says it matches events on event_id and event_name, and only deduplicates when the matching event arrives within 48 hours of the first one.
- Use exactly the same event name on both sides:
Purchaseis notpurchase. - Create the ID once per conversion, such as the order or lead number, and pass it to both.
- If only one side sends an ID, deduplication can't happen.
Domain verification, consent and ad blockers
Verify your domain in your business portfolio settings under Brand safety, then Domains, using a DNS record or meta tag. It proves you control the site that the events come from.
If your cookie banner holds marketing tags until visitors accept, people who decline won't send browser events. That is expected. Under Australian privacy law, your privacy policy should explain that you use tools such as the Meta Pixel and share data with Meta. This is general information, not legal advice.
Always test with your ad blocker off, but remember some real visitors use one. Conversions API recovers part of that loss.
When to get help
A specialist compares orders or leads in your own system with what Meta recorded for the same week, then checks deduplication and event setup at the source rather than patching reports. If Google Ads tracking is also off, read Google Ads conversion tracking not working. If tracking is fine but sales aren't coming, see Facebook ads with clicks but no sales.
About this guide
Written by Amann Jhamb, Director of AR Digital Solutions, 17 years in web design, SEO and paid ads. Last checked: 3 November 2026 against Meta for Developers: Meta Ads Data Advisor. Change note: first published 3 November 2026. Part of our Meta ads help centre.