Checked 19 October 2026
How conversion tracking works on ChatGPT Ads
Clicks are easy to count. Sales are not. ChatGPT Ads gives you 3 ways to send conversions back to OpenAI, 13 standard events, and attribution windows you can now pick. Here is how it fits together, and where the numbers can fool you.
3
Ways to send events
Measurement Pixel, Conversions API and Image Tag.
OpenAI Ads developer docs
13
Standard events
From page_viewed to order_created, plus 1 custom slot.
OpenAI, Supported Events
30 + 1
Default window, in days
30 days after a click, 1 day after a view. The API default since 30 Sep 2026.
OpenAI Advertiser API changelog
Step 1
Pick how events reach OpenAI
All 3 methods use a Pixel ID to name the data source. Even a server-only setup needs one.
| Method | Where it runs | Best for | Worth knowing |
|---|---|---|---|
| Measurement Pixel | The visitor's browser (JavaScript) | Actions on your website: sign-ups, carts, purchases | Captures the click ID for you. Has built-in consent controls. |
| Conversions API | Your server | Confirmed orders, leads from a CRM, app events | OpenAI calls it more reliable than the Pixel alone. You must pass the click ID yourself. |
| Image Tag | A hidden 1 x 1 image in the page | Pages that cannot run JavaScript | 1 event per page load. Not for clicks or form submits after the page loads. |
The Measurement Pixel goes near the top of the head on every page you want to measure. When someone lands from an ad, it reads a click ID called oppref from the URL and keeps it in a first-party cookie for 30 days. If your site uses a Content Security Policy, you need to allow 2 OpenAI domains. The Pixel also has a consent switch: set it to false and it sends nothing until the visitor agrees.
The Conversions API sends events from your server, with its own key that never goes in the browser. It does not capture oppref for you, so your site has to save it from the landing URL and pass it on. Events must be dated within the last 7 days, and a batch holds up to 1,000 events. If 1 event in a batch fails, the whole batch fails.
The Image Tag is the fallback. It is a hidden image that fires 1 event when the page loads. Put it inside a noscript block if you only want it when JavaScript is off.
Step 2
Choose the events that matter
Use a standard event whenever one fits. Only standard events can be an optimization goal.
| Event name | Use it for |
|---|---|
| page_viewed | A visit to an important page |
| contents_viewed | A view of a product, listing or article |
| items_added | Items added to a cart |
| checkout_started | Checkout started |
| order_created | A completed purchase |
| lead_created | A lead form or contact request |
| appointment_scheduled | A booked meeting, demo or consultation |
| registration_completed | An account or event sign-up |
| trial_started | A free trial starts |
| subscription_created | A paid subscription starts |
| app_installed | An app install (Conversions API only) |
| app_opened | An app open (Conversions API only) |
| custom | Anything the 12 others do not cover |
Send money in cents
Event values are whole numbers in the currency’s smallest unit. A $89.00 order is sent as 8900, with currency USD. Get this wrong and your return on ad spend is off by 100x.
App events are server only
app_installed and app_opened only work through the Conversions API. Android advertising IDs are supported. Apple’s IDFA is not.
Count each sale once
Running the Pixel and the API together? Send the same Pixel ID, event name and event ID from both. OpenAI removes the duplicate using those 3 values. Your order ID makes a good event ID.
Attribution windows
A conversion gets credited to an ad if it happens inside a set time after the click or the view. You can choose 7, 14 or 30 days after a click, and 0 or 1 day after a view. If both apply, the click wins. You can also report by the date of the ad interaction (the default) or the date of the conversion.
On 30 September 2026, OpenAI changed the Advertiser API defaults to 30 days after a click and 1 day after a view. So API conversion totals now include view-through conversions, and there is no legacy mode. Reports pulled before and after that date may not match.
Why Ads Manager shows a different number
In Ads Manager, view-through conversions sit in their own column. The main Conversions column stays click-through only, and so do CPA, bidding and billing. In the API, conversions means clicks plus views. Before you compare 2 reports, match the date range, the time basis and both windows.
The new Conversions page
Ads Manager got a redesigned Conversions page, reported on 16 October 2026 by Search Engine Land. It shows conversion activity, event trends, optimization status, and warnings that link to a Diagnostics tab. OpenAI has not published its own page on it yet, so treat the details as reported, not confirmed.
Separately, an Event Quality Score from 1 to 10 sits under Tools, then Conversions, according to Search Engine Roundtable. OpenAI has not published how it is calculated.
Do not lean on UTMs alone
On 14 October 2026, links from ChatGPT stopped carrying utm_source=chatgpt.com for a short time, so visits showed as direct in analytics. It was called a bug and fixed by 15 October. It is not clear if ad links were hit. A Pixel or API setup does not depend on UTMs. Source.
Check events arrive
The API shows a sample of events from roughly the last 15 minutes. Fire a test purchase, then look for it there before you launch.
Bidding on conversions
oCPC and oCPM, in plain words
oCPC means you pick 1 standard event, and ChatGPT shows your ad to people more likely to do it. You still pay per valid click. The bid you enter is a target cost per conversion, not a charge. It is in open beta for standard and product-feed campaigns. You cannot change the goal or the event after the campaign is created, and you cannot switch an old click campaign to oCPC. You start a new one.
oCPM is the same idea, billed per 1,000 impressions instead of per click. It was announced for Ads Manager on 16 September 2026. The API docs still only describe conversion campaigns billed per click.
Either way, OpenAI advises picking an event with enough volume to judge performance. If sales are rare, a lead or a checkout start may be a better first goal.
Measurement partners
On 5 October 2026, OpenAI named partners that plug into this setup. Hightouch, Tealium and LiveRamp send conversion data. AppsFlyer, Triple Whale, Adjust, DV Rockerbox, Northbeam, Branch, Singular, Kochava, Airbridge and Tenjin handle attribution. Haus, Measured and WorkMagic run geo tests, which compare regions with and without ads. Kantar and Cint run early brand lift tests. OpenAI says this kind of testing is still in its early stages.
OpenAI also shared partner results. WeightWatchers, measured by DV Rockerbox, saw a cost per acquisition 15.3% lower than its blended paid search benchmark. Portland Leather, via Triple Whale, says 93% of its ChatGPT ad visitors were new. This is vendor data, not audited. Source.
Questions
Conversion tracking, FAQ
Does ChatGPT Ads have a tracking pixel?
Yes. It is called the Measurement Pixel. You add a short script to the head of your pages, start it with your Pixel ID from the Conversions tab in Ads Manager, and send an event when someone converts. OpenAI also offers a server-side Conversions API and a no-JavaScript Image Tag.
Do I need both the Pixel and the Conversions API?
You can run either one alone. OpenAI says the Conversions API is more reliable than the Pixel alone, and many advertisers run both. If you do, send the same Pixel ID, event name and event ID from both, so OpenAI counts the conversion once.
What is the default attribution window?
30 days after a click and 1 day after a view. You can pick 7, 14 or 30 days for clicks and 0 or 1 day for views. If a conversion qualifies for both, the click gets the credit.
Why do my Ads Manager and API conversion numbers differ?
Since 30 September 2026, API conversion totals include view-through conversions by default. Ads Manager keeps view-through as a separate metric, so its Conversions column is clicks only. Compare with the same date range, time basis and windows.
Can I just use UTM tags in Google Analytics?
UTMs help, but do not rely on them alone. On 14 October 2026 links from ChatGPT briefly lost utm_source=chatgpt.com, so visits showed up as direct traffic. It was called a bug and fixed by 15 October. A Pixel or Conversions API setup does not depend on UTMs.
Is oCPC billed per conversion?
No. oCPC optimizes delivery toward 1 conversion event, but you still pay per valid click. The bid you set is a target cost per conversion, used to steer delivery, not a charge.
Next
Tracking only pays off if the right people see the ad. Targeting and budget come next.
Keep this page useful
Tracking on ChatGPT Ads keeps changing. We send a short monthly note on what changed and whether it matters to you.
Keep reading
ChatGPT Ads custom audiences
Customer lists, the 25,000 match floor, exclusions and bid multipliers.
Read the guideChatGPT Ads benchmarks
Every public CTR, CPC and CPM figure, who reported it, and how far to trust it.
Read the guideThe Advertiser API
What the API can do, where the keys live, and the rate limits.
Read the guideHave us do it
We set up the Pixel, the Conversions API and your events, check they fire, and run the campaign. Fixed setup fee, live in 14 days, then month to month.