You can audit a Meta Pixel in 30 minutes with three tools: Events Manager, the Meta Ads Data Advisor browser extension, and Google Tag Manager's preview mode. Look for duplicate pixels, events that fire twice, and standard events that are missing, then fix what you find in Tag Manager.
Why it matters: Meta's delivery system learns from the events your pixel sends. If it receives two Leads for every form submission, or none at all, your campaigns are optimizing toward bad data and the cost per lead in Ads Manager is wrong. Every paid media decision downstream inherits the error.
What you need before you start
- Admin access to the Meta Business Portfolio that owns the pixel.
- Publish access to your Google Tag Manager container. Read-only lets you look but not fix.
- The Meta Ads Data Advisor extension installed in Chrome. Meta renamed it in October 2026, so you may still know it as Meta Pixel Helper. It identifies pixels on a page, lists the events they fire and flags errors.
- A short list of the actions that matter: a form submission, a phone call, a key page view, a purchase.
Meta now lists pixels as datasets in Events Manager. When we say pixel below, we mean the website events inside that dataset.
How to find duplicate Meta Pixels on your site
How to check: open your homepage with Data Advisor running and click the extension icon. It lists every pixel ID it found on the page and the events each one fired. You want to see one pixel ID, with PageView fired once.
Two different IDs means two pixels are installed. That isn't always a mistake. Some brands run a second pixel on purpose, for an agency or a sister company. The same ID with PageView listed twice is the problem, because it means the base code is loaded twice, usually once in the theme and once in Tag Manager. Check the pixel ID and the event name together before you call anything a duplicate.
Repeat the check on a service page, a blog post and your contact page, because plugins often inject code on some templates and not others.
Then open Data Sources in Events Manager. Any pixel you don't recognize is a candidate for retirement.
Watch out: don't remove anything yet. First open an active ad set in Ads Manager and look at the Conversion section. It names the dataset and event the ad set optimizes toward. That's the pixel you keep.
The fix for a duplicate base code is to give the pixel one home. We put it in Tag Manager and remove every other copy: the theme setting, the plugin field, the snippet in the header file.
How to check your events in Events Manager and Tag Assistant
Events Manager. Open your dataset. The Overview tab lists every event received in the last seven days. The Diagnostics tab is where Meta flags problems it has already noticed, including events received multiple times and missing parameters. Test Events lets you enter your site URL and watch events arrive in real time as you click through.
Tag Assistant. In Tag Manager, click Preview and connect it to your site. The left column lists every event the page produced, and clicking one shows which tags fired. This is where you learn why an event fires, not just whether it does.
Each tool answers a different question. Data Advisor shows what the browser sent. Tag Assistant shows what Tag Manager fired. Events Manager shows what Meta received. A tag that fires in Tag Assistant hasn't been confirmed until it shows up in Test Events, and Tag Assistant can't see a pixel installed outside Tag Manager at all. Always confirm receipt in Events Manager.
The test: the three views should agree. If Tag Assistant shows one Lead and Test Events shows two, something outside Tag Manager is also sending it.
While you're in there, confirm four things:
- PageView fires on every page, including the thank-you page.
- Lead fires only when a form submits, not when the page with the form loads.
- Your important events carry parameters, such as
content_name, so you can tell forms apart in reporting. - Nothing that should be a standard event is set up as a custom event. A custom "form_submit" can't be optimized toward the way Lead can.
Why is my Meta Pixel firing twice, and how do I fix it?
The symptom is easy to spot: a Diagnostics warning, an event with a count of two in Data Advisor, and conversions in Ads Manager at roughly double what your CRM reports. The thing to look for is the same conversion counted twice, not two sources reporting it. Three causes account for most cases.
- The base code is installed twice. Every event fires once per copy. Fix it the way described above: one home for the pixel, every other copy removed.
- One tag has two triggers that both fire. The classic case is a Lead tag attached to both a form submission trigger and a thank-you page view. Pick one.
- The browser pixel and the Conversions API both send the event, and Meta can't match them. Seeing a browser event and a server event for one conversion is expected. Meta deduplicates them when the event name matches and the pixel's
eventIDequals the server'sevent_id. If the names or IDs differ, both copies count. A deduplication warning in Diagnostics is the sign, and whoever sends your server events needs to pass the same ID the browser does.
The rule: one event, one tag, one trigger.
What should I name my pixel, tags and events?
Naming is what makes the next audit take ten minutes. The same logic we use for Meta Ads naming conventions applies: fixed fields, one separator, same order every time.
- Dataset name: brand, property and purpose, like
Acme | acme.com | Main. - Tag Manager tags: platform, event and trigger, like
Meta - Lead - Contact form. Sorting by name then groups every Meta tag together. - Custom events: short, lowercase, underscores instead of spaces, like
newsletter_signup. Never rename one once campaigns use it, because the history stays with the old name.
How to retire an old Meta Pixel without breaking anything
Meta doesn't offer a clean delete for a pixel, and you don't want one. The old pixel holds historical data and the custom audiences built from it. The goal is to stop it collecting and make it obvious that it's retired.
- Confirm nothing optimizes toward it. Check every active ad set's Conversion section. If any still point at the old pixel, switch them to the new one first.
- Remove its code. Pause its tags in Tag Manager and delete any hardcoded snippets or plugin entries. Confirm with Data Advisor that the ID no longer appears.
- Rename it, don't delete it. Give it a name that sorts to the bottom and explains itself, such as
zz RETIRED - Acme old site - Oct 2026. - Rebuild your website audiences on the new pixel. Audiences built from the old pixel stop growing the day its code comes out. Our guide to Facebook custom audiences covers the setup.
- Check back in a week. Open the old dataset's Overview tab. If events are still arriving, a copy of the code is still live somewhere, and Data Advisor on the page that sent them will show you where.
Watch out: Events Manager will show "no recent activity" on the old pixel after a few days. That's the goal, not a problem. Removing the code stops collection and leaves every historical report and audience in place.
How to set up Lead, ViewContent and Contact events in Google Tag Manager
If the audit found missing standard events, this is the fix. The pattern is one base tag that fires on every page and sends PageView, plus one tag per standard event with its own trigger. The Meta Pixel template in the Tag Manager community gallery handles the base code and lets you pick the event name from a list.
| Event | When it fires | Tag Manager trigger | Parameters to send |
|---|---|---|---|
| Lead | A form submits successfully | Page View on the thank-you URL, or a Form Submission trigger if the form doesn't redirect. Not a submit-button click, which fires even when validation fails | content_name set to the form name |
| ViewContent | Someone views a page that signals intent: a service page, pricing page or product page | Page View where Page Path matches the paths you care about | content_name and content_category |
| Contact | Someone clicks a phone number, email link or chat button | Click, Just Links, where Click URL starts with tel: or mailto: | content_name set to "phone click" or "email click" |
For each event, the steps are the same:
- Create a tag from the Meta Pixel template, enter your pixel ID, and choose the standard event name.
- Add the parameters from the table. For Lead, a variable that reads the form's name saves you from making one tag per form.
- Attach the trigger from the table. One trigger only.
- Click Preview, perform the action on your site, and confirm the tag fires once in Tag Assistant and once in Test Events.
- Publish with a version name that says what changed, like "Add Meta Lead, ViewContent and Contact events."
- Check the Overview tab in Events Manager the next day for counts that match your traffic.
Not sure whether your forms redirect? Submit one. A URL change to a thank-you page means the page view trigger. A form that confirms in place needs the form submission trigger, tested carefully, because some form builders block the standard one. Our marketing technology team sorts this out for clients most weeks.
The 30-minute Meta Pixel audit checklist
Work through it in order.
- Minutes 0 to 5: Confirm access, install Data Advisor, and note which dataset and event your active ad sets use.
- Minutes 5 to 10: Run Data Advisor on four page types. Record every pixel ID and whether PageView fires once.
- Minutes 10 to 15: Read the Diagnostics tab and write down every warning. Scan Data Sources for pixels you don't recognize.
- Minutes 15 to 22: Open Tag Assistant and Test Events side by side. Submit a form, click a phone number and view a key page. Confirm each event fires once in both.
- Minutes 22 to 27: Fix what you can in Tag Manager: remove a duplicate trigger, add a missing standard event, pause tags on a retired pixel. Preview before you publish.
- While you're in Preview: reject consent on your cookie banner and confirm the Meta tags stay silent, then accept and confirm they fire. Google's Consent Mode settings don't govern Meta tags on their own, so each Meta tag needs its own consent condition.
- Minutes 27 to 30: Rename anything confusing, including the retired pixel. Write down what you changed and what still needs a developer, including any consent gap you found.
Anything that needs a developer, such as matching event_id values or removing a snippet from a theme file, goes on a short list with the Diagnostics warning it fixes. That list is the audit's output.
Frequently asked questions
Can I have two Meta Pixels on one website?
Yes, and there are legitimate reasons to, such as an agency pixel running alongside your own during a transition. It only causes problems when both feed the same ad account. For most brands, one pixel per website is the right answer.
How do I know which pixel my ads are using?
Open any active ad set in Ads Manager and find the Conversion section. It shows the dataset and event the ad set optimizes toward. Check a few, because older campaigns sometimes point at a different pixel than newer ones.
Should I delete an old Meta Pixel?
No. Remove its code, confirm it has stopped receiving events, and rename it so it's clearly retired. Deleting would also take the history and audiences attached to it.
Does the Conversions API replace the pixel?
No. The Conversions API sends events from your server, which recovers data the browser pixel loses to ad blockers and browser restrictions. Meta recommends running both, with a matching event_id on each event so the two copies are deduplicated.
Can Lead and Contact fire on the same action?
Yes, and sometimes that's deliberate, such as a contact form that counts as both. Just don't read it as two conversions. Optimize ad sets toward one of them, and report on that one.
How often should I audit the pixel?
Once a quarter, and after any change to the site: a new theme, a CMS migration, a new form builder, a new chat widget or a new agency. Most pixel problems start with a site change nobody connected to tracking.
Bottom line: one pixel, one tag per event, one trigger per tag, and names that explain themselves. Thirty minutes a quarter keeps it that way.
If you'd rather have us run the audit, tell us about your setup and a partner will reply within one business day.
