Playbooks

Meta Pixel Setup: A Step-by-Step Install and Test Guide

A pixel that isn't verified is a pixel you're guessing about. Here's the install, the test, and the one pairing that keeps your data honest after it goes live.

Step by step diagram for installing and testing the Meta Pixel

Setting up the Meta pixel means four things, in order: create it in Events Manager, install the base code (through a partner integration or manually in your site’s head tag), add the standard events that match your funnel, and verify every one of them fires correctly in Test Events before you spend a dollar on ads. Skipping the verification step is the single most common reason ad accounts report conversions that don’t match what actually sold.

Key takeaways

  • Create the pixel once in Events Manager. One pixel per website is the standard setup.
  • Install it through a partner integration (Shopify, WordPress) when one exists, or manually by pasting the base code into your site’s <head> tag.
  • Add standard events, like Purchase or AddToCart, using the fbq('track') function, matched to your actual funnel steps.
  • Verify every event in the Test Events tool before you launch. A pixel that hasn’t been tested is a pixel you’re trusting blindly.
  • Pair it with Conversions API and a shared eventID so browser and server data deduplicate instead of double-counting.

Step 1: create the pixel in Events Manager

Step by step flow for creating, installing and verifying a Meta pixel

The pixel starts life inside Events Manager, reachable from Ads Manager. Meta’s own Get Started documentation describes this as adding a new data source and naming it, typically after the business or the site it’s tracking. One pixel per website is the standard pattern; most businesses don’t need more than one unless they’re running genuinely separate properties.

Once created, Events Manager gives you the base code: a short block of JavaScript tied to your pixel ID. That code is what everything else in this setup hangs off of.

Step 2: install it, through a partner or by hand

You have two real paths here, and which one applies depends on your platform.

Partner integration. If your site runs on Shopify, WordPress (through a plugin that supports Meta’s integration), or another platform with a native Meta connection, you typically paste your pixel ID into that platform’s own settings and the platform handles placing the code correctly across every page. This is the lower-risk path because it removes the chance of a page missing the script or the script landing in the wrong spot.

Manual install. Where no integration exists, Meta’s documentation is explicit: the base code goes “between the opening and closing <head> tags on every page” you want to track. That means every page, not just the homepage, since the pixel needs to load on each one to register a PageView and any event tied to that page.

Meta’s guidance also notes that an alternative <img> tag method exists for edge cases but is explicitly not the recommended approach. Stick to the head-tag script unless you have a specific reason not to.

Install methodWhere it’s usedWhat to watch for
Partner integrationShopify, WordPress with a Meta plugin, other supported platformsConfirm the pixel ID matches; the platform handles placement
Manual base codeCustom-built sites, platforms without a native integrationMust appear on every page, inside <head>, exactly once
Tag managerSites already running a tag managerSupported, but not Meta’s top recommendation on its own

Step 3: add standard events for your actual funnel

Standard events are Meta’s predefined set of common actions people take on a site, tracked through the fbq('track') function. A purchase confirmation page might call:

fbq('track', 'Purchase', {currency: "USD", value: 30.00});

You don’t need every standard event Meta offers. Install the ones that match the steps someone actually takes before converting. For a typical store, that’s usually ViewContent, AddToCart, InitiateCheckout and Purchase, each tied to the moment it happens, loaded on page view for some events, tied to a button click for others. Meta’s documentation notes that optional parameters, like product IDs, categories and values, can ride along with these events and also feed custom audience building later.

Say you run a $40 skincare brand. Your funnel is probably: product page view, add to cart, checkout started, purchase completed. That’s four standard events, not the full list Meta supports. Installing events for actions nobody on your site actually takes just adds noise to your reporting.

Step 4: test it before you trust it

This is the step most setups skip, and it’s the one that catches real problems.

Open Events Manager’s Test Events tool, then load a page where the pixel should fire. Confirm the PageView event shows up with the correct URL. Then repeat for each standard event you installed, triggering the real action (adding to cart, starting checkout) rather than assuming the code works because it’s technically present on the page.

Meta also offers a browser debugging extension for this, previously known as Meta Pixel Helper, now described in Meta’s own documentation as checking “Pixel and Conversions API installation and event firing.” It flags common problems directly in the browser: duplicate pixel code on one page, the pixel loading outside the <head> tag, missing or blocked event parameters, or more conversion events firing on a page than make sense.

Troubleshooting common pixel problems

SymptomLikely causeFix
PageView never fires in Test EventsPixel code missing or outside <head>Reinstall in the <head> tag, or confirm the partner integration is actually active
Purchase events fire twiceCode added both manually and through a partner integration, or no dedup with server eventsRemove the duplicate install; pair with Conversions API and a shared eventID
Event shows but with no value or currencyParameters weren’t passed in the fbq('track') callAdd the parameter object with value, currency and any relevant IDs
Pixel fires on staging but not productionBase code only added to one environment, or a caching layer stripped the scriptConfirm the code is in the live site’s template, not just a preview build
Events Manager shows fewer conversions than your store’s order dataBrowser-only tracking losing signal to ad blockers, Safari’s tracking limits, or app-tracking opt-outsAdd Conversions API alongside the pixel

Step 5: pair it with Conversions API

The pixel alone depends on a browser cooperating: loading the script, allowing it to run, and keeping cookies long enough to connect an event back to an ad. That’s increasingly unreliable on its own. Meta’s documented fix is running the pixel alongside Conversions API (CAPI), which sends the same events from your server instead of the browser.

The two systems stay in sync through a shared eventID: when a pixel event and a server event carry the same eventID and event_name, Meta treats them as one event rather than two, as long as they arrive within 48 hours of each other. Skip that pairing and a redundant pixel-plus-CAPI setup will double-count conversions, inflating what you think your campaigns are doing.

Our full walkthrough of Meta Conversions API covers the three setup routes Meta documents (partner integration, the hosted Conversions API Gateway, or a direct manual integration) and how to read your Event Match Quality score once it’s running. If your reported conversions already look lower than your actual sales, read our piece on server-side tracking for the broader context on why browser-only measurement keeps losing ground.

The bottom line

Pixel setup isn’t complicated, but it’s easy to half-finish. Create it once in Events Manager, install it through a partner integration where one exists, add only the standard events that match your real funnel, and don’t launch anything until Test Events confirms every one of them fires correctly. Pairing it with Conversions API afterward is what keeps that data accurate once ad blockers and browser privacy limits start chipping away at pixel-only tracking. If your campaigns ever look like they’re underperforming for no clear reason, check why Facebook ads stop delivering before assuming the creative is the problem.

References