Back to Blog
Paid AI Search 6 min read

ChatGPT Ads Conversion Tracking: The Setup Most Guides Get Wrong (2026)

We got into the ChatGPT Ads beta and ran a campaign on ourselves. Day one, the dashboard showed zero conversions. The ads were fine. Here is exactly how the measurement works, and the three things the current guides get wrong.

Paul Byrne June 2026 6 min read
The short version: ChatGPT Ads sends conversions back two ways, a browser Pixel and a server-side Conversions API. The Pixel SDK loads from bzrcdn.openai.com/sdk/oaiq.min.js (not ads.openai.com, which returns a 403), and init takes an object, not a string. If your site runs a Content Security Policy, it will silently block the pixel unless you allowlist OpenAI's domains. When a ChatGPT Ads campaign shows zero conversions, the problem is almost always measurement, not the ads.

Zero conversions on day one

We got into the ChatGPT Ads beta and ran a campaign on ourselves. Day one, the dashboard showed zero conversions.

The instinct is to blame the ads and start rewriting them. That was not the problem. The measurement was not wired up. The pixel was firing in the browser but never reaching OpenAI, so every click looked worthless when in fact we just could not see what was happening.

If you are setting up ChatGPT Ads, here is exactly how conversion tracking works, and the three things the current crop of guides get wrong.

There are two ways to send conversions back

OpenAI gives you two measurement paths:

Most advertisers will start with the pixel. So that is where the mistakes happen.

The pixel mistake everyone copies

Several third-party guides publish the wrong loader URL. They point the pixel at ads.openai.com/pixel.js. That is the gated Ads Manager app, and it returns a 403. Your pixel never loads.

The real SDK loads from https://bzrcdn.openai.com/sdk/oaiq.min.js, and init takes an object, not a string:

<script>
  (function (w, d, s, u) {
    if (w.oaiq) return;
    var q = function () { q.q.push(arguments); };
    q.q = []; w.oaiq = q;
    var js = d.createElement(s); js.async = true; js.src = u;
    var f = d.getElementsByTagName(s)[0]; f.parentNode.insertBefore(js, f);
  })(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js");

  oaiq("init", { pixelId: "YOUR-PIXEL-ID" });
  oaiq("measure", "page_viewed");
</script>

Standard events include page_viewed, lead_created, order_created, registration_completed and subscription_created. You fire them with oaiq("measure", eventName, data) at the moment the action happens.

Always copy the verbatim snippet from Ads Manager, under Tools then Conversions, or from OpenAI's developer docs. Do not trust a blog (including this one) over OpenAI's own code.

The silent killer: your Content Security Policy

This is the one that cost us a day, and it will catch most modern sites.

If your site runs a Content Security Policy, and most do, it will block the pixel unless you explicitly allow OpenAI. You need:

Miss this and the failure is invisible. The script never loads, the events queue up in the browser, and the dashboard shows zero. No error message. Just silence.

We have seen this exact shape before. Last quarter a single CSP rule silently broke our Google Ads conversion tag, and the account looked dead for over a week before anyone thought to check the security headers rather than the campaign. Different platform, same lesson.

How to check it is actually working

Three quick checks:

  1. Open your browser dev tools, Network tab. Confirm oaiq.min.js loads with a 200, and that events post to bzr.openai.com and come back 202.
  2. In Ads Manager, the event stream should show events arriving. Allow a few minutes for ingestion.
  3. Link the conversion event to your campaign. If you do not, the campaign cannot optimise toward it and the warnings never clear.

The bigger point

ChatGPT Ads does not work like Google. You do not bid on keywords. You describe the conversation you want to appear in, and the system matches your ad to it. It is closer to writing a brief than building a keyword list.

And if your brand is not showing up in those AI answers organically in the first place, that is a separate and prior problem. We break down why competitors appear in AI answers and you don't in a companion piece.

But none of that matters if you cannot measure. The advertisers who lose money in this beta will not lose it on bad creative. They will run for weeks before realising nothing was ever being counted.

So if you start running ChatGPT Ads and see zero conversions, check your measurement before you touch the ads. That is almost always where the problem is.

Frequently asked questions

Where does the ChatGPT Ads pixel load from?

The OpenAI Ads measurement pixel SDK loads from https://bzrcdn.openai.com/sdk/oaiq.min.js. It does not load from ads.openai.com, which is the gated Ads Manager app and returns a 403. Several third-party guides publish the wrong URL, so the pixel never loads and the dashboard shows zero conversions.

Why does my ChatGPT Ads pixel show zero conversions?

The three most common causes are the wrong pixel URL, a Content Security Policy blocking the pixel because OpenAI's domains are not allowlisted, and the conversion event not being linked to the campaign in Ads Manager. In each case the ads may be fine and only the measurement is broken.

Do I need to update my Content Security Policy for ChatGPT Ads?

Yes, if your site runs a Content Security Policy. Add bzrcdn.openai.com to script-src so the SDK can load, and bzr.openai.com to connect-src so events can be sent. Without this the script never loads, events queue in the browser and are never transmitted, and the dashboard shows zero with no error message.

What is the difference between the ChatGPT Ads Pixel and the Conversions API?

The Pixel is browser-side JavaScript that measures what people do on your website after clicking an ad. The Conversions API is server-to-server and sends conversion data directly from your systems, which is more reliable because it survives ad blockers and cookie loss. Most advertisers start with the Pixel and add the Conversions API once the funnel is proven.

How do I verify ChatGPT Ads conversion tracking is working?

Open your browser dev tools Network tab and confirm oaiq.min.js loads with a 200 and that events post to bzr.openai.com and return 202. Then check the Ads Manager event stream shows events arriving, allowing a few minutes for ingestion. Finally, confirm the conversion event is linked to the campaign so it can optimise toward it.

Before You Pay to Advertise, Know if AI Even Recommends You

We run both sides of the answer economy: organic AI visibility and paid ChatGPT Ads. Get a free AI visibility score across ChatGPT, Claude, Gemini, Perplexity and Google AI, and see who AI recommends instead.

Related Articles