scalpel@labs: ~/glossary/meta-pixel.mdx5 sections

Meta Pixel

The Meta Pixel is Meta's web tracking tag. It sends events (PageView, Purchase, custom events) to facebook.com/tr as image or fetch requests, so advertisers can measure conversions and build audiences from what happens on their site.

extension: Scalpel Tagsupdated: 2026-08-14read_time: 2 min
less meta-pixel.mdx

Why it matters

If you're running ads on Meta (Facebook, Instagram, Audience Network), the Meta Pixel is how you prove they worked. Without it, Meta can't link a click to a purchase. You get no conversion data, no audience building, no optimisation. It's the connection between your site and your ad spend.

How it works

You add the Meta Pixel to your site as a script or tag manager configuration. When someone lands on your page, the pixel fires a request to facebook.com/tr. The request carries the event name (PageView, Purchase, etc), the pixel id, and any custom data you've chosen to send (product ids, prices, user email, etc).

Meta uses that data two ways. First, it counts conversions for reporting. Second, it builds audiences: people who viewed a product are shown remarketing ads, people who purchased something are excluded from lookalike audiences, and so on.

What does not matter

The Meta Pixel doesn't need to fire on every page. You can configure it to fire only on specific actions. A PageView event on every page is common, but optional. A Purchase event only on the receipt page is standard.

The pixel doesn't care about user consent on its own. If you're using Consent Mode or a consent banner, you're responsible for not firing the pixel until consent is given. The pixel itself sends data if you tell it to.

Code example

A simple PageView event on Meta Pixel id 1234567890:

<!-- Place this in your <head> or load via GTM -->
<script>
  !function(f,b,e,v,n,t,s)
  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  n.queue=[];t=b.createElement(e);t.async=!0;
  t.src=v;s=b.getElementsByTagName(e)[0];
  s.parentNode.insertBefore(t,s)}(window, document,'script',
  'https://connect.facebook.net/en_US/fbevents.js');
  fbq('init', '1234567890');
  fbq('track', 'PageView');
</script>

This fires a request to facebook.com/tr?data=... with event PageView and pixel id 1234567890.

A Purchase event with a value:

fbq('track', 'Purchase', {
  value: '99.99',
  currency: 'GBP',
  content_name: 'Blue Shoes'
});

This sends the same request shape but with additional custom fields in the data payload.

How Scalpel Tags shows it

In the hit table, Meta Pixel requests show as rows with vendor Meta. The event name (PageView, Purchase, etc) appears in the Event column. Click the row to see the decoded parameters: pixel id, event name, value, currency, and any custom data fields, all as human-readable key-value pairs.

Scalpel Tags filters out ev=Microdata crawler hits automatically, so you're not distracted by Meta's own bot traffic.

Sources