Track the conversions of your ChatGPT ads
Published on by the Oriva team.
For a ChatGPT ad to know it produced a sale, OpenAI offers two paths: the OpenAI pixel, a script placed in the browser, and the Conversions API, which receives sales from a server. In both cases, everything rests on oppref, the identifier OpenAI adds to your site's address when someone clicks your ad. This tracking has been available since the end of August 2026, when OpenAI opened ChatGPT Ads to 31 European markets including France; ads are shown only to users of the free and Go plans, never to Plus, Pro or Enterprise subscribers. These two paths also serve to turn on conversion-optimized bidding (oCPC), which needs tracking already in place to target the visitors closest to buying. Use both paths with the same event identifier, remember to configure the pixel's consent, which is “yes” by default, and send your purchases under their standard type if you want to optimize your campaigns on conversion.
Who sees ChatGPT ads, and since when in France?
Ads are shown to users of ChatGPT's free and Go plans; Plus, Pro and Enterprise subscribers do not see them. Since the end of August 2026, ChatGPT Ads is open in 31 European markets, including France, and a company can buy its ads itself in Ads Manager, without going through an agency.
What is oppref?
It is ChatGPT Ads' click identifier, the equivalent of Google's gclid or Meta's fbclid. OpenAI adds it to the address of your landing page at the moment of the click. It is what later ties a sale to the ad that triggered it.
The OpenAI pixel reads it by itself and keeps it in a cookie (__oppref) for the following pages. The Conversions API does not capture it: it is up to you, or your tool, to pick it up when the visitor arrives and send it back with the sale. A sale sent by the server without oppref is received, but much harder to tie to your ad.
OpenAI pixel or Conversions API?
| OpenAI pixel | Conversions API | |
|---|---|---|
| Where it runs | In the visitor's browser | On a server |
| Picks up oppref | Yes, automatically | No, you have to pass it along |
| Ad blockers | Can keep it from going out | Do not see it |
| Setup | A script on your site | A server call with an API key |
| Consent | “Yes” by default, to configure | Handled by you before sending |
The two complement each other. OpenAI deduplicates them if you give them the same event identifier (see the next section).
How do I avoid counting a sale twice?
OpenAI recognizes a duplicate when two events carry the same Pixel ID, the same event name and the same identifier (event_id on the pixel side, id on the Conversions API side). It keeps the first one received and ignores the following ones. Use your order reference as the identifier, on both sides.
The consent trap
By default, the OpenAI pixel assumes the visitor has given their consent. In France, the CNIL, the national data protection authority, requires the visitor's prior consent for advertising-related trackers, and that applies to any site whose visitors are in France. So initialize the pixel with consent set to “no” (oaiq("consent", false) before oaiq("init", …)), then switch it to “yes” from your cookie banner when the visitor accepts (oaiq("consent", true)). The pixel also remembers a refusal already expressed.
Optimize your campaigns on sales
ChatGPT Ads offers conversion-optimized campaigns (“oCPC” bidding): you still pay per click, but OpenAI shows your ad to those most likely to buy. These campaigns are in open beta, and they need:
- conversion tracking in place, through the pixel, the Conversions API or both;
- a single standard event as the goal, for example
order_createdfor a purchase. A custom event cannot serve as the goal; - enough conversions for OpenAI to judge performance. OpenAI gives no numeric threshold.
Practical consequence: send your purchases under the order_created type, never under a name of your own, or you will not be able to optimize on them.
What to set up in Ads Manager
- In the Conversions tab, create your pixel: Ads Manager gives you its Pixel ID and, if you go through the server, a Conversions API key;
- link your conversion events to your campaign;
- choose the attribution window. OpenAI's documentation takes 30 days after the click as an example.
Do you need a tool like Oriva?
Not necessarily. If you only advertise on ChatGPT and the OpenAI pixel, properly set up for consent, is enough for you, you can stop there. If you already have a server-side Google Tag Manager container, you can also plug the Conversions API into it.
A tool like Oriva becomes useful when you want the Conversions API without writing or maintaining server code, and above all when you also send your sales to Meta, TikTok or Google Ads: one installation, one consent, one log to prove each send.
The setup details are on the ChatGPT Ads page.