Skip to main content
AI AdsBy Kevin O'Connell10 min readOctober 14, 2026

How to Check Your ChatGPT Ads Pixel Is Working

A tag that fires in Tag Manager is not a conversion OpenAI counted. Six checks, from a free outside read of your setup to Event Stream and Event quality, plus the silent drops we reproduced against OpenAI's live pixel.

To check that your ChatGPT Ads pixel is working, prove three things in order: the pixel is installed correctly, it sends events that pass OpenAI's rules, and OpenAI receives them and counts them as conversions. A tag that fires in Tag Manager proves only the first.

  • Fastest first look: a free pixel checker reads your page and Tag Manager container in seconds
  • The proof: a test action you watch arrive in Ads Manager's Event Stream
  • The silent failure: the pixel drops events that break its rules, and Tag Manager still says the tag fired
  • Often missed: an event only counts as a conversion once a conversion event setting selects it
  • After a week: Event quality flags matching and duplicate problems

How do you know your ChatGPT Ads pixel is working?

You know when a test conversion you triggered yourself appears in Ads Manager and is selected by a conversion event setting. Everything before that is a step toward it. The six checks below run from cheapest to most conclusive, and each one proves something the previous one cannot.

Six checks for a ChatGPT Ads pixel, in order
Times are typical for one landing page and one conversion action.
CheckTimeWhat it provesWhat it cannot prove
1. Read the setup from outside2 minThe pixel is installed, how, with which Pixel ID and eventsThat anything fires
2. Tag Manager Preview5 minYour tags fire on the right pages and actionsThat the pixel accepted the event
3. Debug mode in the console5 minThe pixel accepted or dropped each event, and whyThat OpenAI received it
4. Event Stream5 minOpenAI received the event, with its payloadThat it counts as a conversion
5. Conversion event settings5 minThe event is set up as a conversion for your campaignMatch quality over time
6. Event qualityAfter 7 daysMatching information, duplicates and gaps over a full weekCampaign performance

If you have not installed the pixel yet, start with our pixel installation guide and come back. This post assumes the pixel is on your site, or that someone told you it is.

Check 1: Read your setup from the outside (2 minutes)

Start by reading what your site actually serves, because that is what every visitor's browser runs. Many installs live inside Google Tag Manager rather than the page itself, so viewing the page source often shows nothing. A published Tag Manager container, though, is a public file anyone can read.

Our free ChatGPT Ads pixel checker reads both. Enter the page your ads point to, or your container ID if your site blocks automated visits, and it reports:

  • Whether OpenAI's pixel is installed, and how: code on the page, a Custom HTML tag, OpenAI's official template, Stape's template, or another template
  • The Pixel ID each tag sends to, so you can compare it with the one on the Conversions tab in Ads Manager
  • Every standard and custom event set up, including events that only fire on other pages
  • Problems it can see: placeholder Pixel IDs, custom event names the pixel drops, no standard conversion event, tags with no trigger, duplicate installs, and debug mode left on
ChatGPT Ads Pixel Checker / ResultSite details masked
A real result, with the site, Pixel ID and container ID masked. Notes are information; Check and Fix items need attention.

What it cannot do is watch an event arrive. It reads the setup, not the traffic, so a clean result means the setup looks right, not that conversions are being counted. That is what the next three checks are for.

Check 2: Watch the tags fire in Tag Manager Preview (5 minutes)

Preview mode shows which tags fire on each event, in your own browser, before anything is published. In Tag Manager, click Preview, enter your landing page, and complete the action you want to measure: submit the form, start the trial, or finish the order.

In the Tag Assistant panel, select the event where the action happened and confirm your pixel tags appear under Tags Fired. If the conversion tag is under Tags Not Fired, open it to see which trigger condition failed. Google documents the panel in its Preview and debug guide.

Two things Preview cannot tell you. It does not know whether the pixel accepted the event, and changes you test in Preview are not live until you publish the container. An edited workspace that was never published looks exactly like a broken pixel.

Check 3: Read the pixel's own log with debug mode (5 minutes)

Debug mode makes the pixel explain itself in the browser console, including the events it refuses to send. OpenAI's Measurement Pixel documentation describes the option as a way to log pixel activity while you test. Add it to the init call:

JavaScript
oaiq("init", {
  pixelId: "YOUR_PIXEL_ID",
  debug: true,
});

If you installed with a Tag Manager template, use its debug setting instead of editing code. Then open your browser's developer tools, go to the Console, reload the page and repeat the conversion action. Accepted events are logged as they are sent. A dropped event logs a line like this, followed by the reason:

Console
validation failed; event dropped

The reason names the rule the event broke. Three that we reproduced are covered further down. Fix the payload, test again, and move on only when the console shows the event sent.

Check 4: Confirm OpenAI received the event (5 minutes)

Event Stream is the first check that sees your event from OpenAI's side rather than your browser's. In Ads Manager, open the Conversions tab, choose Event Stream, pick your pixel and press Start polling. Then repeat the conversion action on your site and watch for it to appear, with the payload OpenAI received.

A tag that fired is not a conversion that arrived. The only proof is an event you triggered yourself, showing up in Event Stream.

If you only see a Pixel Initialization entry and nothing after it, the pixel loaded but your events were dropped or never sent. Go back to Check 3.

For developers: check recent events through the API

OpenAI also documents a recent-events endpoint in its conversion tracking guide. It returns a sample of events from roughly the last 15 minutes and labels each with its channel: pixel_sdk for browser events, server_to_server for the Conversions API. It uses your OpenAI Ads API key, so run it from a server or your terminal, never from the page.

Shell
curl -G "https://api.ads.openai.com/v1/conversions/events" \
  -H "Authorization: Bearer ${OPENAI_ADS_API_KEY}" \
  --data-urlencode "pid=${PIXEL_ID}" \
  --data-urlencode "limit=50"

Check 5: Make sure the event counts as a conversion (5 minutes)

An event arriving at OpenAI is not yet a conversion. OpenAI's documentation is explicit that sending an event and creating a conversion event setting are separate steps: the setting selects an event from your pixel, and the campaign uses that setting for reporting and, if you choose it, optimization.

So for each outcome you care about, confirm three things in Ads Manager:

  • A conversion event setting exists for the event, pointing at the right pixel
  • For a custom event, the setting's name matches your custom_event_name exactly
  • The setting is attached to the campaigns you want measured

One constraint shapes which events you should send. OpenAI's Help Center says custom conversion events are not currently supported for the Conversion optimization objective, so the action you want campaigns to optimize toward needs a standard event: lead_created, registration_completed, trial_started, order_created and so on. Custom events still work for reporting. Our guide to using ChatGPT Ads Manager covers when to switch a campaign from Clicks to Conversions.

The free ChatGPT Ads Pixel Checker lists every event your site is set up to send and warns when none of them is a standard conversion event, before you build a campaign around one. No sign-up, nothing to install.
Check your pixel setup free

Check 6: Read Event quality after a week

Event quality is OpenAI's own audit of the events it received, and it is the only check that looks at a full week. Each pixel or data source gets its own score and warnings, refreshed daily from seven complete calendar days of events. OpenAI is clear that the score does not predict campaign performance; it points at parts of your setup to review.

That window is why this check comes last. After you fix something, new events have to arrive and old ones have to age out, so improvements show gradually. OpenAI's Event quality guide also warns against gaming it: do not send extra events, invent identifiers or change event times to improve a score. The warnings, and what each one asks you to check:

Event quality warnings and what to check
Warning names as published in OpenAI's Help Center, October 2026.
WarningCheck that
Limited email or customer ID informationConversion events carry an email or your own stable customer ID, hashed as documented
Ad click information is missing or cannot be connectedThe oppref parameter survives redirects to the page where the pixel runs
Conversion matches need reviewReloads, duplicate tags and retries are not sending the same action twice
Many conversions are linked to the same ad interactionDistinct actions have distinct event IDs, and retries keep the original ID
Limited event types observedThe standard events for each stage of your journey are set up (custom events do not count here)
Limited Pixel and Conversions API activityEvents are actually arriving, not just installed
Limited activity for a configured conversion goalThe event your conversion setting selects is firing at all

Two of these connect to earlier checks. Click information depends on the oppref parameter OpenAI adds to your landing page URL, which the pixel stores in a first-party cookie, so redirects that strip query parameters break it. And matching information is where automatic advanced matching helps, within the limits of your consent setup.

Why a pixel can fire and still lose conversions

OpenAI's pixel validates every event in the browser and drops the ones that break its rules, without an error that Tag Manager can see. We tested this directly in October 2026, replaying real Tag Manager template output, plus a few hand-built events, through OpenAI's live pixel and a dedicated test pixel in our own Ads Manager account. Three payloads were dropped:

  • A lead carrying product data. Sent through Stape's Tag Manager template with its Data Layer settings at their defaults, on a page that had earlier pushed GA4 ecommerce data, a lead event picked up the product as contents. The pixel rejected it: eventProps.contents is not a documented field. Clearing ecommerce data before the lead fixed it.
  • A custom event name with a dot. The same template, set to inherit its event name and fired by Tag Manager's built-in Form Submission trigger, sent gtm.formSubmit as the event name, which breaks OpenAI's naming rules.
  • A decimal amount. An amount of 23.5 was rejected: eventProps.amount should be an integer. OpenAI expects whole numbers in the currency's minor unit, such as 8900 for $89.00.

In the two template cases, the tag reported success to Tag Manager. In Event Stream, the only thing that arrived for any of the three tests was the pixel's initialization ping. And when we checked Ads Manager's diagnostics minutes later, they showed no events at risk.

The only check that caught the lost leads was a test action watched in Event Stream. Preview, the tag's status and the diagnostics all looked fine.

Diagnostics may simply lag, which is one more reason to run Check 4 yourself rather than wait for a warning. If your conversion events are leads, test one on a page that also tracks products, because that is the combination that broke.

What you see, what it means, and which check finds it

Most pixel problems show up as one of a handful of symptoms. Start from what you are seeing:

ChatGPT Ads pixel symptoms and causes
Causes drawn from OpenAI's documentation and our own testing. The check column refers to the six checks above.
You seeLikely causeCheck
The checker finds no pixelNot installed, installed somewhere it cannot read (another tag manager, a Shopify app, your own scripts), or the Tag Manager container was never publishedCheck 1, then Check 2
Tag never fires in PreviewThe trigger does not match, often a custom event your site never pushesCheck 2
Tag fires, nothing in the consoleThe base pixel did not load before the event tag, or consent is set to falseCheck 3
Console says validation failed; event droppedThe event broke one of OpenAI's rules: wrong fields for its type, a bad custom name, a decimal amountCheck 3
Event Stream shows only Pixel InitializationThe pixel loaded but every event after it was dropped or never sentChecks 3 and 4
Events arrive, Conversions stays at zeroNo conversion event setting selects that event, or the campaign does not use itCheck 5
Conversions objective will not accept your eventIt is a custom event; the objective needs a standard oneCheck 5
Conversion counts look doubledThe same action sent twice, or by browser and server without a shared event IDChecks 1 and 6
Ads Manager and GA4 disagreeDifferent attribution windows, time zones and deduplication; not necessarily an errorNeither: expected

The last row is not a bug. OpenAI notes that Ads Manager, your analytics and other ad platforms can report different totals because of attribution windows, time zones, consent conditions and deduplication, and that a difference does not necessarily indicate an error. Our post on tracking ChatGPT Ads in GA4 explains what to expect on the GA4 side.

Before you launch, run the whole sequence once on the page each campaign points to, and repeat Checks 3 and 4 whenever someone changes your Tag Manager setup, your forms or your checkout. For the measurement strategy behind these events, see our overview of ChatGPT Ads conversion tracking and how it fits ChatGPT Ads as a channel.

Frequently Asked Questions

#How do I check if my ChatGPT Ads pixel is working?

Work through six checks in order. Read the setup from outside with a free pixel checker, watch the tags fire in Tag Manager Preview, read the pixel's console log with debug set to true, confirm the event in Ads Manager's Event Stream, make sure a conversion event setting selects it, and read Event quality after a week. The first three prove the setup; the last three prove OpenAI is counting it.

#Why is my ChatGPT Ads pixel not firing?

Typical causes are a trigger that never matches (often a custom event your site does not push), an event tag that runs before the base pixel has loaded, and a Tag Manager container that was edited but never published. Tag Manager's Preview mode shows which of these it is. If the tag fires but nothing reaches OpenAI, the pixel probably dropped the event; debug mode tells you why.

#Is there an OpenAI pixel helper?

The OpenAI pixel helper browser extensions we found are independent tools, not made by OpenAI. They show pixel events on the page you are viewing. OpenAI's own equivalents are the debug option, which logs pixel activity to the browser console, and Event Stream in Ads Manager. Our free pixel checker needs no install and reads your whole Tag Manager setup, including events that fire on other pages.

#How quickly do pixel events show up in Ads Manager?

Event Stream lists recent events while it is polling, so a test action should appear there within minutes. OpenAI's recent-events endpoint returns a sample from roughly the last 15 minutes. Event quality works on a slower clock: it refreshes daily using seven complete calendar days, so a fix takes up to a week to show fully in the score.

#Why does Tag Manager say the tag fired but no conversion shows up?

Because firing and arriving are different things. OpenAI's pixel checks each event in the browser and drops any that break its rules, and Tag Manager still marks the tag as fired. In our tests, dropped events never reached Event Stream at all. If events do arrive but Conversions stays at zero, check that a conversion event setting selects that event.

#Can I use a custom event as a conversion?

For reporting, yes: a conversion event setting can select a custom event, as long as the custom_event_name matches exactly. For the Conversion optimization objective, no. OpenAI's Help Center says custom conversion events are not currently supported there, so the event you optimize toward must be a standard one such as lead_created, registration_completed or order_created.

#Should I turn off debug mode after testing?

OpenAI describes debug mode as a way to log pixel activity to the console while you test, and its documentation does not require removing it. Left on, it logs the pixel's activity in every visitor's browser console. If you do not want that, turn it off once testing is done and back on when something needs investigating.

Kevin O'Connell
Kevin O'Connell
Founder & AEO Consultant, AI-Advisors.ai

20-year B2B SaaS marketer. 3x Head of Marketing. One company exit (Sapling HR acquired by Kallidus, 2021). Now building AI-Advisors.ai to give mid-market B2B teams the AI visibility tools enterprise brands get. Writing about Answer Engine Optimization, ChatGPT Ads, Microsoft Copilot SEO, and the 5 A's of AI Marketing framework.

✦

Start tracking your AI visibility today

Install the tracking snippet, run your first audit, and see how AI platforms treat your brand. Start your 14-day free trial.

Get Started Free

Keep Reading

AI Ads
Best ChatGPT Ad Mockup and Preview Tools (2026)
14 min read
AI Ads
ChatGPT Ads Now Bids for You by Default. B2B Should Opt Out.
10 min read
AI Ads
How to Track ChatGPT Ads in GA4 (What Actually Shows Up, Verified)
11 min read