ChatGPT ads tracking: pixel and Conversions API explained
How to track ChatGPT ads: install the OpenAI pixel, send server-side events with the Conversions API, deduplicate, handle consent and read attribution windows.
Short answer: ChatGPT ads have their own tracking: the OpenAI pixel in the browser and the Conversions API on your server. Install both, send each purchase through both with the same event ID so OpenAI counts it once, and pass along the click identifier from the ad. If you need consent first – for example for EU visitors – set the pixel’s consent to false before it loads, because it defaults to true.
OpenAI launched both tools in spring 2026 (OpenAI, May 5, 2026). The details below come from OpenAI’s developer documentation as of October 3, 2026.
Why tracking comes first
Without conversion data, Ads Manager shows impressions, clicks and spend – but not whether those clicks sold anything. Conversion-optimized campaigns need your events to optimize at all. And because AI assistants are a new channel, you want a clean comparison with Google and Meta from the first day.
The three building blocks
OpenAI’s setup has three parts (Conversion tracking):
- A data source with a pixel ID – needed even if you only send server events.
- A conversion event setting – which event counts as a conversion, with its attribution window.
- A link to your campaigns.
Step 1: Install the pixel
The pixel is a JavaScript snippet in the page <head>. It loads https://bzrcdn.openai.com/sdk/oaiq.min.js, initializes with oaiq("init", { pixelId }) and sends events with oaiq("measure", "<event>", {...}, { event_id }) (Measurement Pixel).
If your site uses a Content Security Policy, allow bzrcdn.openai.com and bzr.openai.com.
The pixel automatically reads the click identifier oppref that ChatGPT ads add to the landing page URL. Optional “automatic advanced matching” hashes customer data such as email in the browser before sending it.
Step 2: Send the right events
OpenAI’s standard events (Supported events):
| Event | Typical use in a shop |
|---|---|
page_viewed | every page |
contents_viewed | product page |
items_added | add to cart |
checkout_started | checkout |
order_created | purchase – your main conversion |
lead_created, registration_completed | B2B, newsletter, account |
trial_started, subscription_created | subscriptions |
custom | anything else (cannot be an optimization goal) |
Send order value and currency with order_created: the API reports attributed sales and ROAS for this event.
Step 3: Add the Conversions API
The Conversions API sends events from your server: POST https://bzr.openai.com/v1/events?pid=<PIXEL_ID> with its own Conversions API key (Conversions API). Points to know:
- Up to 1,000 events per batch – one invalid event fails the whole batch.
- Event timestamps must be within the last 7 days.
action_sourcetells OpenAI where the conversion happened: web, mobile app, offline, physical store, phone call, email or other.- A
validate_onlymode lets you test without recording data. - For matching, capture
oppreffrom the landing page URL yourself and store it with the order. You can add SHA-256-hashed email, phone or external ID, and the pixel’s browser referenceobref.
Server events survive ad blockers and browser restrictions, and they let you report conversions the browser never sees, such as phone or offline orders.
Step 4: Deduplicate
If a purchase reaches OpenAI through both the pixel and the Conversions API, it must be counted once. OpenAI’s rule: “send the same event name and event ID through both integrations” – the pixel’s event_id equals the Conversions API’s id. Use your order ID.
Step 5: Handle consent
The pixel’s consent defaults to granted. Calling oaiq("consent", false) before init blocks measurement until you call oaiq("consent", true); blocked events are not replayed later. For visitors who must opt in first – for example under GDPR in the EU – connect these calls to your consent banner. OpenAI states that it does not currently use pixel data for user-level personalization.
Personalized ads and custom audiences are not available in the EEA and Switzerland at all, as of October 3, 2026.
Attribution windows and reporting
- Windows: click 7, 14 or 30 days; view 0 or 1 day. Default reporting: 30-day click, 1-day view. When a click and a view both qualify, the click gets the credit (Reporting).
- In Ads Manager: impressions, clicks, spend, CTR, average CPC, average CPM and conversions, plus CSV export. Impressions and clicks refresh about every 15 minutes, spend can lag 7–8 hours, conversions need at least a day.
- In the API: additionally CPA, post-click conversion rate, attributed sales and ROAS, with breakdowns by country, device, platform and product.
One inconsistency to watch: OpenAI’s pixel page says view-through conversions are reported separately and not included in “Conversions”, while the reporting documentation updated on September 30, 2026 says insights now include click-through plus view-through. Check which definition your report uses before comparing numbers with other platforms.
Partners and UTMs
OpenAI works with measurement partners including Fospha, Hightouch, INCRMNTAL, LiveRamp and Northbeam, and with mobile measurement partners such as Adjust, AppsFlyer, Branch and Singular. Independent of that, add your own UTM parameters to ad URLs so ChatGPT traffic appears as its own source in your analytics.
Tracking checklist
- Pixel ID created; pixel in
<head>on every page; CSP allows OpenAI domains order_createdwith value, currency and order ID asevent_id- Conversions API sends the same orders with the same ID;
opprefstored with each order - Consent wired to your banner (consent false by default where required)
- Test purchase visible in Ads Manager, counted once
- UTM parameters on every ad URL
- Attribution window chosen deliberately and noted for comparisons
FAQ
Does ChatGPT have a conversion pixel?
Yes. OpenAI launched pixel-based measurement and a Conversions API for ChatGPT ads in spring 2026. The pixel is a JavaScript snippet loaded from bzrcdn.openai.com; the Conversions API accepts server-side events at bzr.openai.com.
Do I need both the pixel and the Conversions API?
Not strictly – OpenAI supports the pixel, the Conversions API or both. Using both with the same event ID gives the most complete data, and a server-only setup still needs a pixel ID.
What is the attribution window for ChatGPT ads?
Click windows of 7, 14 or 30 days and view windows of 0 or 1 day can be selected. The reporting default is 30 days after a click and 1 day after a view, as of October 3, 2026.
Is the OpenAI pixel GDPR-compliant out of the box?
The pixel’s consent state defaults to granted. Sites that need prior consent, for example for visitors in the EU, must set consent to false before initializing the pixel and switch it on only after the visitor agrees.
Sources
Facts checked on 2026-10-03. Ads in AI assistants change quickly – if something here is out of date, email analytics@webwombats.com.
- New ways to buy ChatGPT ads · OpenAI · 2026-05-05 · accessed 2026-10-03
- Conversion tracking · OpenAI · accessed 2026-10-03
- Measurement Pixel · OpenAI · accessed 2026-10-03
- Supported events · OpenAI · accessed 2026-10-03
- Conversions API · OpenAI · accessed 2026-10-03
- Reporting · OpenAI · accessed 2026-10-03
- Quickstart: Launch your first campaign · OpenAI Help Center · accessed 2026-10-03
- Set up measurement partner integrations · OpenAI Help Center · accessed 2026-10-03
- Set up mobile measurement partner integrations · OpenAI Help Center · accessed 2026-10-03
- Create Ads for ChatGPT Ads · OpenAI Help Center · accessed 2026-10-03
Want help with ads in AI assistants?
myadai is in early access for e-commerce and D2C brands.