How to Check If Your Tracking Pixels Are Working
How do you check if a tracking pixel is working?
Open the page, do what the pixel should record, and confirm the request reached the platform: in its own test tool, such as Meta’s Test events, TikTok’s Test Events or Google’s Tag Assistant, or in Chrome’s Network panel. A pixel works when that request leaves the browser, succeeds, and carries the right ID, event and values.
Every vendor page cited below was checked on 25 September 2026.
What counts as “working”?
Four separate things: it loaded, it fired, it reached the platform, and it was correct. Each fails in its own way, and finding the pixel on the page proves only the first.
| Check | What it means | Common ways it fails | Where to look |
|---|---|---|---|
| Loaded | The platform’s script arrived in the page | The site’s Content Security Policy refused it; it left with an old theme; a consent banner is holding it back | The script’s request in the Network panel, such as Meta’s fbevents.js |
| Fired | A request for the event left the browser when you did the action | The trigger never ran; the event isn’t wired to that button or page; you declined consent | A request to the platform’s address, sent as you acted |
| Reached the platform | The request wasn’t stopped and got a success response | An ad blocker cancelled it; a DNS filter stopped it; the platform answered with an error | The request’s status |
| Correct | The right pixel or dataset ID, event name, value, currency and event ID | A second pixel ID from an old setup; a value of 0; the wrong currency; no event ID where a server copy expects one | The request’s payload, and the platform’s test tool |
A success response still isn’t a counted conversion. It means the platform’s server answered; whether the event is accepted, matched and credited to an ad is decided later, and the platform’s own report is the record. Purchases sent from a server, such as through Meta’s Conversions API, never pass through the browser, so no browser tool can list them.
How do you check with each platform’s own tool?
Start here: each platform’s free tool knows its own events, and most show what the platform itself received.
| Platform | Free tool | What it shows | Watch out for |
|---|---|---|---|
| Meta | Events Manager Test events; Meta Ads Data Advisor (formerly Meta Pixel Helper), a Chrome extension | Test events: pixel events you trigger on your site, and server events sent with a test code. Data Advisor: the pixels on the page, each Active, Warning or Inactive | Data Advisor needs Chrome; basic detection works while logged out; switch off your ad blocker first |
| TikTok | Events Manager Test Events; TikTok Pixel Helper 2.0, a Chrome extension | Test Events: browser and server test events from your site. Pixel Helper: errors and recommendations at pixel, event and parameter level | Events Manager’s overview can lag: TikTok warns of a delay before events appear there |
| Tag Assistant; Tag Manager Preview; GA4 DebugView | Tag Assistant: the tags, events and data on your site. Preview: whether tags and triggers fire, and what data they pass. DebugView: events from debug-enabled devices over the last 60 seconds and 30 minutes | Preview needs access to the container; DebugView shows nothing for visitors who haven’t consented to Analytics cookies under consent mode | |
| OpenAI Ads | The pixel’s debug option; OpenAI’s conversion event stream |
debug: true logs the pixel’s activity to the browser console; the event stream returns up to 50 events from the last 15 minutes |
Steps in how to check OpenAI received your conversions |
| Pinterest Tag Helper, a Chrome extension | Whether your tag is set up properly and passing data back | Pinterest only | |
| Shopify | Shopify’s Pixel Helper: Settings → Customer events → the pixel → Test | Each Shopify event the pixel subscribes to: a green dot for success, a red dot for an error | One pixel at a time; the log clears on each new page; no close button, so close its tab |
Meta. Meta renamed its extension, and an installed copy updates itself to Data Advisor (Meta: Ads Data Advisor). Its instruction before testing: “Deactivate your ad blocker for the website you are on.” Server events need a test code (Meta: Conversions API); the browser steps are in is the purchase reaching Meta at all.
TikTok and Google. Sources: TikTok Pixel Helper 2.0 (last updated February 2025), TikTok’s Events Manager tools, Tag Assistant, Preview and DebugView. Google’s own check reads Tag Assistant’s Summary tab: events there mean the Google tag is set up correctly; none means it may not be connected to its destination; no tag at all points to your site’s code or measurement ID (Google: verify your Google tag).
OpenAI, Pinterest and Shopify. Sources: OpenAI’s measurement pixel and conversion setup pages, Pinterest Tag Helper, and Shopify’s pages on testing a pixel and testing an app’s pixel. Shopify’s Pixel Helper doesn’t work on headless stores or stores in private mode.
If you run one or two platforms, their own tools are enough.
How do you check in Chrome’s Network panel?
The Network panel lists each request the page sends, to any platform, with its status and payload, and answers “did it fire?” and “was it stopped?” without installing anything (Chrome: Network reference).
- Open the page, open Chrome DevTools and choose the Network panel.
- Tick Preserve log, so requests stay listed when the page changes.
- Reload the page.
- Type the platform’s address in the Filter box, for example
facebook.com/tr. - Do what the pixel should record: add a product to the cart, send the form, place a test order. A new request should appear.
- Click the request. Payload shows its query string parameters and form data. The Status column shows the response code, such as 200, or “(failed)” followed by the error.
- To see what was stopped, choose More filters → Blocked requests; Chrome highlights blocked requests in red. The Initiator column shows what sent each request.
| Platform | Addresses to filter for | Source |
|---|---|---|
| Meta | fbevents.js (the script) and facebook.com/tr (events, with the pixel ID in id and the event name in ev) |
Meta: pixel base code |
| OpenAI Ads | bzrcdn.openai.com (the script) and bzr.openai.com (events) |
OpenAI: measurement pixel |
| GA4 | googletagmanager.com and google-analytics.com, two of the hosts Google lists for GA4 |
Google: Tag Manager and CSP |
With server-side tagging, GA4 hits can go to the site’s own subdomain, such as sst.example.com/g/collect. On two sites we checked on 25 September 2026, they went there and to www.google-analytics.com, so filter for /g/collect to catch both.
How do you check many pixels at once?
With a helper that lists several platforms’ requests side by side. It helps most on sites carrying five or six vendors’ tags, and on sites you don’t manage, where the platforms’ test tools aren’t open to you.
All Pixel Helper, which we build, is a free Chrome extension that lists and decodes the requests a tab sends to 40 ad and analytics platforms, with one card per platform account, so two Meta pixels show as two cards. Each request is marked delivered, failed or blocked as Chrome reports it, and a pixel that’s installed but hasn’t sent anything shows “No events fired yet — pixel installed only.” It sees only this tab’s browser requests, never anything sent from a server; delivered means the browser got a response, not that the platform recorded the event; and hits sent to first-party or server-side Tag Manager domains, like the sst. subdomain above, aren’t matched.
- Open the page and click the extension’s icon in Chrome’s toolbar. The Pixels tab lists the cards, each with its account ID.
- Turn on Preserve log on the Pixels tab, then do the action you’re testing.
- Click an event. Chrome’s side panel opens on its Diagnostics, decoded Parameters and Request, with its outcome.
Treat what it flags as a prompt to look closer in each platform’s own tool, not as a verdict: it complements those tools.
How do you see which pixels another site uses?
Load it in Chrome with the Network panel or a helper open and watch what fires as you browse. What fires depends on the page, the banner and where the visitor is.
- Page source finds only hard-coded tags. Searching it for
fbq(orgtag(misses tags that Tag Manager or an app loads; those appear only when they run. - Consent changes the list. Decline the banner first, note what fires, then accept and compare.
- Actions change the list. Purchase and lead events fire only on those steps, so a check of the home page shows page views at most.
- Pixel IDs are in the requests, such as the
idon Meta’s; a helper’s per-account cards list each platform’s ID.
How do you check pixels on a Shopify store?
Start with Shopify’s Pixel Helper, then confirm the event in the platform’s own tool. The steps are in test a pixel with Shopify’s Pixel Helper.
- Where Shopify’s pixels run. They load on the storefront, checkout, Thank you and Order status pages (Shopify: pixels). App pixels run in a strict sandbox built on web workers; custom pixels run in a lax sandbox, an iframe that can’t reach the main page (shopify.dev: web pixels).
- Consent. If Pixel Helper shows Pixel is awaiting consent, accept your banner or click Give consent to continue test (Shopify: app pixels).
- Old snippets. Tags pasted into Additional scripts no longer run on the Thank you page: see the 26 August Thank-you-page change.
- Server-sent purchases. What the Facebook & Instagram app or a tracking app sends from a server never appears in a browser tool; check the platform’s report.
- What an extension sees. Custom pixels’ requests show in a browser extension; app pixels’ may not, because they come from web workers rather than the page. For app pixels, rely on Shopify’s Pixel Helper and the platform’s own tool.
Why does a pixel look fine but the platform shows nothing?
Because the browser shows what was sent, not what the platform did with it. Match the symptom to its guide.
| Symptom | Go to |
|---|---|
| Meta’s extension finds no pixel | Why Meta Pixel Helper finds no pixel |
| Tag Assistant or Google Ads can’t find your Google tag | Google tag not detected |
| Nothing fires until the visitor accepts the banner | Check that Google Consent Mode is working |
| The request is stopped or fails | Tell whether an ad blocker or CSP is blocking a tag |
| A Tag Manager variable comes through empty | Check the dataLayer in Chrome |
| Shopify shows more orders than Meta shows purchases | Meta pixel not tracking purchases |
| The right request goes to the wrong pixel or dataset | Is the purchase going to the wrong dataset? |
How do you record what you found?
Note the date, browser, page address and consent choice, then export the requests, so anyone can repeat the test and compare.
- From Chrome. Right-click a request in the Network panel and choose Copy → Save all as HAR (sanitized). The sanitized file leaves out
Cookie,Set-CookieandAuthorizationheaders (Chrome: Network reference). - From All Pixel Helper. On the Pixels tab, open Export events and choose Export as CSV for a spreadsheet with one row per event, or Export as JSON for the full decoded events. Exports ignore any filter or search you set.
Either file contains whatever the page sent, including any email address or phone number a tag sent in clear text. Share it the way you would share customer data.
Frequently asked questions
What are monorail and trekkie requests on a Shopify store?
Shopify’s own analytics, sent to Shopify. All Pixel Helper’s Shopify card decodes those requests into events such as page_viewed and checkout_completed, but they are Shopify’s record of the visit, not proof that Meta, TikTok or Google received anything.
Can I check a pixel on my phone?
Partly. TikTok’s Test Events offers a test environment that mimics how your site shows up in the TikTok app, reached with a QR code or in the browser. All Pixel Helper runs in Chrome on a computer, not on a phone.
Does a pixel helper change the page?
Watching requests can’t change them. All Pixel Helper does touch the page in one way: it creates an empty dataLayer on every page that lacks one and wraps dataLayer.push, so it can show pushes. A page script that checks whether dataLayer exists will find one. The extension itself sends nothing anywhere.