ChatGPT Ads is becoming a new advertising channel for brands. But showing ads is only one part of the process. The bigger question is: How do you know what happens after someone interacts with your ad?
Think about how other advertising platforms handle conversion tracking.
Google Ads uses gclid, Microsoft Ads uses msclkid, and Meta uses fbclid. These parameters help connect ad clicks with website visits and, eventually, conversions.
ChatGPT Ads has a similar mechanism called oppref.
But what exactly is oppref? How does ChatGPT connect an ad click to a purchase that happens later? And how do browser-side and server-side tracking work together?
Let's walk through the technical side of ChatGPT Ads attribution, step by step.
What Is oppref in ChatGPT Ads?
oppref is an attribution identifier provided by OpenAI. It helps connect a ChatGPT ad click with a conversion that may happen later on an advertiser's website.
Here's how it works.
When someone clicks an ad inside ChatGPT and visits the advertiser's website, OpenAI can append an oppref parameter to the landing page URL.
For example:
https://example.com/products/shoes?oppref=gAAAAAb123
The oppref value acts as a reference between the original ad click and a potential conversion event.
Unlike traditional campaign parameters, oppref is an opaque identifier. This means its internal structure isn't publicly explained, and advertisers don't need to decode it or generate their own values.
The important thing is to capture the original oppref value, preserve it without modification, and pass it along with the relevant conversion events.
That's what allows OpenAI to use the click reference during attribution.
How Does ChatGPT Ads Attribution Work?
To understand ChatGPT Ads attribution, imagine someone clicking a product ad inside ChatGPT and purchasing that product a few days later.
How does OpenAI connect those two actions?
The process generally follows three steps.
1. Ad Click and URL Parameter
The journey starts when a user clicks an ad inside ChatGPT.
They're redirected to the advertiser's landing page, where OpenAI can add a click reference parameter to the URL.
For example:
https://example.com/?oppref=gAAAAAb123
At this point, it's worth understanding the difference between UTM parameters and oppref.
UTM parameters help analytics platforms understand where website traffic comes from. They typically describe the traffic source, medium, and campaign.
oppref, on the other hand, is specifically designed to support OpenAI's conversion attribution process.
So while UTMs help you analyze traffic in tools like Google Analytics 4, oppref helps OpenAI associate eligible conversion events with ChatGPT ad interactions.
2. Capturing and Storing oppref
Once the user lands on the website, the OpenAI Measurement Pixel can automatically capture the oppref value from the URL.
The Pixel stores this information in a first-party cookie called __oppref.
Why is this useful?
Because most users don't purchase immediately after clicking an ad.
They might browse products, visit a few other pages, leave the website, and return later.
Storing the click reference helps preserve the attribution information across those visits.
According to OpenAI's documentation, the Measurement Pixel uses two first-party cookies:
| Cookie | Purpose | Expiration |
|---|---|---|
__oppref | Stores the OpenAI click attribution identifier | 30 days after the Pixel writes it |
__obref | Stores a randomly generated browser reference | 365 days after creation |
Whenever the Pixel captures a non-empty oppref parameter, it updates the __oppref cookie and resets its expiration period to 30 days.
However, simply reading an existing cookie doesn't extend its lifetime.
Keep in mind that browser restrictions, consent settings, or users clearing their cookies may shorten these periods.
Also, cookie expiration and attribution windows aren't the same thing.
A cookie might remain available for 30 days, but whether a conversion receives attribution depends on the applicable attribution settings.
3. Collecting Conversion Events
Now let's say our visitor purchases a pair of shoes.
The advertiser needs to send an order_created conversion event to OpenAI.
There are two main ways to do this.
Browser-side tracking with OpenAI Pixel
The OpenAI Pixel runs directly in the visitor's browser and sends conversion events to OpenAI.
When properly configured and permitted to operate, the Pixel can automatically use available attribution information from the landing page URL or first-party cookies.
Server-side tracking with OpenAI Conversions API
The OpenAI Conversions API sends conversion events directly from the advertiser's server to OpenAI.
For example, once the backend confirms that an order has been completed, it can send the purchase event.
There's one important difference here.
Unlike the browser Pixel, the Conversions API doesn't automatically capture oppref.
You need to collect the value on your website, make it available to your backend, and include it in the corresponding server-side conversion event.
Without this step, the event may still be delivered successfully, but direct click-based attribution can become more difficult.
How Does oppref Work with the OpenAI Conversions API?
When it comes to server-side tracking, passing the right attribution information is just as important as sending the conversion event itself.
Let's go back to our example.
A user clicks a ChatGPT ad, visits an online store, and completes a purchase.
The advertiser's backend can send an order_created event through the OpenAI Conversions API.
Here's what a simplified request body might look like:
{
"events": [
{
"id": "order_12345",
"type": "order_created",
"timestamp_ms": 1792746000000,
"action_source": "web",
"source_url": "https://example.com/checkout/success",
"oppref": "gAAAAAb123",
"data": {
"type": "contents",
"amount": 2599,
"currency": "USD"
}
}
]
}
This is an illustrative payload. The timestamp and attribution identifier are example values. The amount uses minor currency units, so 2599 represents $25.99.
The request is sent to the Conversions API endpoint using the advertiser's Pixel ID and server-side API credentials.
Three fields are especially important for understanding attribution and event processing:
oppref: The original OpenAI click reference, which helps connect the conversion to an eligible ad interaction.id: A unique event identifier used to recognize the conversion and prevent duplicate counting.timestamp_ms: The time the conversion occurred, expressed as a Unix timestamp in milliseconds.
Once OpenAI receives the event, it evaluates the available measurement signals to determine whether the conversion can be attributed to an eligible ad interaction.
However, sending oppref doesn't automatically guarantee attribution.
The event must also match the appropriate campaign conversion settings and satisfy the applicable attribution conditions.
For example, an event that falls outside the configured attribution window may not receive credit, even if the click reference is available.
How Do Browser-Side and Server-Side Tracking Work Together?
One of the most useful approaches to ChatGPT Ads conversion tracking is combining the OpenAI Pixel with the Conversions API.
Why use both?
Because they collect conversion information in different ways.
The browser Pixel measures activity from the visitor's browser, while the Conversions API can send events after they're confirmed by the backend.
Imagine a customer completing an order.
The browser sends a purchase event through the OpenAI Pixel. At the same time, the backend confirms the transaction and sends that same purchase event through the Conversions API.
Now OpenAI receives two events representing one purchase.
Here's how that might look:
| Browser-side tracking | Server-side tracking |
|---|---|
| OpenAI Pixel | OpenAI Conversions API |
order_created | order_created |
event_id: order_12345 | id: order_12345 |
oppref can be captured automatically | oppref must be passed explicitly |
Without deduplication, sending the same conversion twice could lead to inaccurate measurement.
That's why OpenAI uses matching event identifiers to recognize duplicate events.
For deduplication to work correctly, both integrations should use the same:
- Pixel ID
- Event name
- Event ID
For the same conversion, the browser's event_id must match the server event's id.
OpenAI uses these values to identify duplicates and keeps the first event received for a matching deduplication key.
This lets advertisers combine browser-side activity with backend-confirmed conversion events without intentionally counting the same purchase twice.
What Happens If oppref Is Missing?
Here's something important: Not every conversion event needs to contain an oppref value.
There are several reasons why the identifier might be missing.
For example, the user may click a ChatGPT ad, but the landing page redirect removes the URL parameter before the website captures it.
Or perhaps browser storage restrictions prevent the identifier from being retained.
Another common situation is a server-side integration that sends purchase events but doesn't forward the original click reference.
In these cases, direct click matching becomes more difficult.
However, a missing oppref doesn't automatically mean the conversion is useless.
OpenAI can also evaluate other eligible measurement signals, including advanced matching information and modeled measurement where available.
For example, advanced matching may use permitted, normalized, and hashed first-party customer information to improve measurement quality.
ChatGPT Ads also supports view-through conversion reporting.
This means that, under eligible conditions, a conversion may be associated with an ad impression even when the user didn't click the ad.
For that reason, you shouldn't automatically discard conversion events just because oppref is missing.
OpenAI recommends sending all eligible conversion events through the Conversions API, not only events containing a click reference.
This helps create a more complete picture of advertising performance while respecting privacy and consent requirements.
ChatGPT Ads Attribution Windows
An attribution window determines how long after an ad interaction a conversion can still receive credit.
Let's say someone clicks a ChatGPT ad today but purchases five days later.
Should that purchase count as a ChatGPT Ads conversion?
The answer depends on the attribution window and whether the conversion meets the remaining attribution conditions.
ChatGPT Ads Manager supports the following reporting windows:
| Attribution type | Supported window |
|---|---|
| Click-through | 7, 14, or 30 days |
| View-through | 0 days (disabled) or 1 day |
For example, if an advertiser selects a 7-day click-through window, a purchase occurring five days after an eligible ad click may qualify for attribution.
A purchase occurring ten days later would fall outside that reporting window.
OpenAI uses a last-touch attribution approach rather than multi-touch attribution.
When both an eligible click and impression are available for the same conversion, the click takes priority.
It's also important to know that changing the reporting attribution window doesn't change campaign bidding, optimization, or billing. It changes how conversions appear in reporting.
And don't expect every conversion to appear instantly.
Attributed conversions can take 24–48 hours to appear in ChatGPT Ads Manager.
So, if your backend confirms a purchase but you can't immediately find it in Ads Manager, reporting delays may be part of the explanation.
Best Practices for ChatGPT Ads Attribution
A reliable ChatGPT Ads measurement setup involves more than simply sending purchase events.
You also need to make sure your attribution identifiers, browser events, server events, and campaign settings work together.
Here are five important practices to follow.
1. Preserve the oppref parameter
Make sure the click reference isn't lost during landing-page redirects or website navigation.
If you're using server-side tracking, capture the value early and make it available to the backend when the conversion happens.
2. Use server-side tracking for critical conversions
For important events such as purchases, consider sending backend-confirmed conversions through the OpenAI Conversions API.
This reduces your dependence on browser event delivery alone.
3. Configure event deduplication
When sending the same conversion through the Pixel and Conversions API, use a consistent event ID, event name, and Pixel ID.
This helps OpenAI identify duplicate events.
4. Check your attribution settings
Make sure your conversion events match the correct campaign configuration.
Review your conversion data source, event type, attribution settings, and reporting windows.
A technically successful API request doesn't necessarily mean the conversion will receive ad attribution.
5. Respect privacy and user consent
Handle cookies, customer information, and advanced matching signals in line with applicable privacy laws, consent requirements, and OpenAI's policies.
Server-side tracking provides another way to deliver measurement events, but it doesn't remove the need for privacy-compliant data collection.
Final Thoughts
So, how does ChatGPT Ads attribution actually work?
It starts with a click reference called oppref.
When a user clicks a ChatGPT ad, this identifier can be added to the landing page URL. The OpenAI Pixel can capture and store it, while a server-side integration can forward it with conversion events through the Conversions API.
OpenAI then evaluates the available measurement signals, conversion settings, and attribution windows to determine whether the conversion can be credited to an eligible ad interaction.
But successful attribution isn't just about one URL parameter.
It also depends on how browser-side tracking, server-side event delivery, deduplication, and campaign attribution settings work together.
For brands using server-side tracking, capturing oppref correctly and passing it to the OpenAI Conversions API is an important step toward more reliable ChatGPT Ads conversion measurement.
The goal isn't simply to collect more events. It's to make sure the events you collect provide accurate, useful, and privacy-conscious insights into your advertising performance.