Conversion Tracking & Data

Meta Pixel

By the AdFlint research team · Last reviewed November 2026

A JavaScript snippet on your site that reports page views and standard events to Meta from the visitor's browser.

The pixel loads in the browser, fires standard events like ViewContent and Purchase, and drops the fbp cookie that ties later activity to the same person. You install it to build website custom audiences and to give delivery something to optimize toward. Browser-side collection is lossy, since ad blockers, tracking prevention, and consent refusals remove events, so the pixel is expected to run alongside the Conversions API rather than alone.

Key takeaways

  • The Meta Pixel is a browser-side snippet that reports page views and standard events like Purchase to Meta.
  • Purchase events need value and currency parameters if you want value optimization.
  • Because it runs in the visitor's browser, blockers and consent choices can remove events, which is why it is paired with the Conversions API.
  • Misspelled standard event names are treated as custom events, and double installs create duplicate counts.

In practice.

The Meta Pixel is a JavaScript snippet you place on your website to track activity from people who arrive from Meta ads. You get the base code from Events Manager. It contains your Pixel ID in a script block and a noscript image fallback. Meta says to place it between the head tags on every page you want to track, ideally in a site-wide header. Each time the base code runs it fires a PageView event automatically, and Meta tells you to leave that call intact. The Pixel ID is the thing that ties the code to your data set in Events Manager. If you run the Pixel through a plugin or a tag manager, the ID is entered in a settings field and the plugin writes the base code for you.

Beyond page views, you add standard events with a call like fbq('track', 'Purchase', {currency: 'USD', value: 30.00}). Standard events are predefined actions, such as Purchase, Search, InitiateCheckout, and CompleteRegistration. Custom events use trackCustom, and their names must be strings no longer than 50 characters. The value parameter is required for purchase events and for anything that uses value optimization, and it needs a matching currency. Meta uses Facebook cookies to match visitors to accounts, and the Pixel stores a first-party _fbp browser ID when first-party cookies are in use. Standard events carry parameters that make them useful. A Purchase with a value and currency lets Meta optimize toward revenue, and a Lead with no parameters can only be counted. Add the fields you will want to report on, not just the event.

The Pixel connects to the rest of your Meta setup in three ways. It feeds website custom audiences, so you can retarget visitors. It gives delivery events to optimize toward when you choose a conversion objective. And it supports custom conversions, which you create in Events Manager from rules like a URL containing thank-you, up to 100 per ad account. Because it runs in the browser, it is exposed to ad blockers, tracking prevention, and consent refusals, so many teams pair it with the Conversions API using a shared event_id. Custom conversions are a lighter-weight option for sites you cannot edit. They use a rule such as a URL containing a word, so a thank-you page can be counted without extra code, though a coded event is more precise.

Common mistakes: installing the base code but never adding purchase or lead events, so Meta can only optimize toward page views. Firing the Purchase event on page load of a page people can revisit. Leaving out value and currency. Using lowercase or misspelled standard event names, which turn into custom events. Installing the Pixel twice, through a plugin and by hand, which doubles events. On a site built with a tag manager, forgetting that a Pixel pasted separately into the theme also fires. Pixel installs often go wrong after a redesign. A new theme drops the header snippet, or a checkout app moves the thank-you page to another domain, and events quietly stop. Compare event counts weekly against real orders.

To check it, load a page with the Pixel and look for a new PageView in Events Manager, waiting a few minutes if it is missing. Meta also points to its Meta Ads Data Advisor Chrome extension for diagnosing problems. This week, open Events Manager, confirm your most important event (Purchase or Lead) is firing once per real conversion with a value, and compare its count with your store or CRM. A large gap means signal loss that the Conversions API can help recover. When counts look low, check browser, consent, and tag settings first. Meta's debugging extension and the test events tool in Events Manager show whether the browser is sending what you think it is.

Worked example

A shop sees fewer purchases than it made

Say an online shop spends $3,900 on Meta in a month and genuinely sells 100 orders, so the real cost per purchase is $39. Because some shoppers use blockers or browsers that restrict tracking, the Pixel only sees 78 of them.

Events Manager shows 78 purchases and a cost per purchase of $50 (3,900 divided by 78). The campaign looks 28 percent worse than it is, and a nervous owner might cut a campaign that works. Meta's delivery also learns from fewer examples than there were. Adding the Conversions API with a shared event_id would let the server report all 100 orders without double counting the 78 the browser already caught. The gap would also shrink in the other direction if the shop's checkout moved to a page the Pixel never loads on, so the owner checks the count against real orders each week.

Meta Pixel compared with

The settings this gets confused with, and how to tell them apart.

Common questions.

How do I install the Meta Pixel?

Get the base code from Events Manager, place it between the head tags on every page you want to track, and load a page to trigger a PageView. Then confirm that event appears in Events Manager.

What are Meta Pixel standard events?

They are predefined actions that you report with fbq('track', ...), such as Purchase, Search, InitiateCheckout, and CompleteRegistration. Misspelled names are treated as custom events.

Why is my Meta Pixel not firing?

Common causes are the base code missing from the page, a tag manager trigger that never fires, or a blocker in your own browser. Meta suggests using its Meta Ads Data Advisor Chrome extension to find the problem.

Is the Meta Pixel the same as the Conversions API?

No. The Pixel sends events from the visitor's browser, while the Conversions API sends them from your server. Meta recommends running both and deduplicating with a shared event_id.

Sources

You should not need to know this to advertise.

AdFlint handles the settings for you, inside the Google and Meta accounts you already own.

Next step: How AdFlint tracks and optimizes these numbers

Try AdFlint free