Home  /  Resources  /  ChatGPT Ads
Analytics · Ads

ChatGPT Ads: what measuring an AI channel actually adds to your stack

Pierre Lafon·Updated 16 September 2026·8 min read
Le trajet d'une donnée d'attribution mobile, du clic publicitaire au postback renvoyé à la régie

ChatGPT Ads drops a click identifier on your ads and opens an API to send your conversions back. What it adds to your measurement comes down to three things: an identifier on the bought share of your AI traffic only, one more source of truth to reconcile, and a blind spot upstream.

You already get traffic from ChatGPT. Someone asks a question, the assistant cites one of your pages, the user clicks. But what do you actually know about that visitor? Nothing of what was said before the click, and often not even where the visit came from. If you have worked on web-to-app attribution, the pattern will be familiar. Since 24 August 2026, ads have been serving in ChatGPT across 31 European markets, and since 31 August a business registered in one of those countries can open its own account.

This article looks at what the channel adds to a measurement setup that already runs, and what it takes away. Not how to launch a campaign: what needs deciding before you launch one.

How does ChatGPT Ads conversion tracking work?

Like any modern ad platform, with one difference that changes everything: until this summer, this surface sent nothing back to you.

The relationship between ChatGPT and your site ran one way. The assistant cited your pages, visitors arrived, and you had no way to send anything upstream. You observed an effect without being able to act on its cause. That is what makes visibility work inside generative answers so hard to steer: no return signal, so no loop, so no optimisation in the sense you use on every other channel.

The setup rests on two objects, and only two. A click identifier first: OpenAI appends a parameter called oppref to your ad landing URL, playing the same role as Google's gclid, tying an action on your site back to the click that produced it. A conversions API second: your server posts the actions your visitors take, so OpenAI can attribute them and optimise campaigns on them.A click identifier first: OpenAI appends a parameter called oppref to your ad landing URL, playing the same role as Google's gclid, tying an action on your site back to the click that produced it. A conversions API second: your server posts the actions your visitors take, so OpenAI can attribute them and optimise campaigns on them.

So a loop now exists between an AI-generated answer and your information system. The mechanics are not new; plenty of teams have already wired the same thing up to other ad platforms. The surface at the other end of the wire is what is new.

What is the oppref parameter in ChatGPT Ads for?

It answers one question: did this sale come from an ad, and from which one?

When someone clicks an ad, oppref appears in the URL of the page they land on. OpenAI's measurement script reads it there and stores it in a cookie set by your own domain, so later pages in the visit can reuse it. As long as the conversion happens in the browser, this works without you thinking about it.

The problem starts as soon as the conversion completes somewhere else. An order validated in a back office, a payment confirmed by a payment provider, a booked appointment marked as attended in the CRM: those events leave from your servers, and OpenAI's documentation is explicit on this. The click identifier does not travel with them automatically. Someone has to write the code that reads it from the cookie, stores it alongside the order record, and sends it back at conversion time.

This is the most common omission on this channel, and it raises no alert. The conversions are sent, OpenAI receives them, they are perfectly valid and attributed to nothing. You see them in your back office; you see them nowhere in Ads Manager.

A word on a claim doing the rounds. Several articles state that this cookie lasts 30 days. I have read the pixel documentation line by line: no lifetime is published for it. What does last 30 days is the attribution window you set yourself when creating a conversion event. That is an account setting, not a browser property, and I would be wary of any article that conflates the two.

Does ChatGPT Ads measure all your ChatGPT traffic?

No. It only lands on what you buy. Your organic citations, the ones your visibility work actually rests on, stay as opaque as before. Worse: if nobody deals with this before launch, the two end up in the same place in your reports. Three reasons for that.

The referrer gets lost on the way. Mobile app webviews, noreferrer links, pasted URLs: the visit falls into direct and you lose even the ChatGPT origin. The only safeguard is systematic tagging, decided upfront in your measurement plan.
oppref is not a source label. Your analytics tool sees it as an unknown parameter and ties it to no campaign. The paid click therefore lands with the organic citations.
Nothing can be fixed after the fact. A visit filed in the wrong place on day one stays there: the origin was never recorded, and it cannot be reconstructed.

So you end up with two-speed measurement. On one side a minority share of AI traffic, tracked click by click, with its cost and its return. On the other the majority, with no identifier, no upstream context, no way to tie a sale to a conversation. That asymmetry has known effects: what is finely measured attracts budget, regardless of what actually creates value. It is what led to a decade of overspending on brand search. Not because it paid better, because it proved itself more easily.

So the right question is not “how much is ChatGPT worth to me”, it is can I separate what I buy there from what I earn there. And the answer is settled before launch: campaign parameters placed on your landing URLs travel inside the address itself, where referrers disappear. Information you did not record on day one cannot be reconstructed on day thirty.

What do you send back to OpenAI, and from where?

A loop runs both ways. For OpenAI to tell you what your ads return, you have to tell it what your visitors do. At that point it stops being a tagging question.

Three decisions are yours to make, and none of them is technical.

First: which conversions you agree to send back. OpenAI's taxonomy holds thirteen standard events, from page view to order.

Every event you send enriches OpenAI's optimisation as much as your own reporting. The list is a decision, not a default.

Second: where you send them from. Conversions that complete outside the browser can only leave from your servers. If you already run server-side collection, this is one more destination and a short piece of work. If you do not, it is a project in its own right, and should be budgeted as one.

Third: what the visitor can refuse. OpenAI becomes one more data recipient, to be declared in your consent platform alongside every other ad platform. Watch the default: the measurement script treats consent as granted until told otherwise, so it has to be blocked upstream. And its advanced matching, which sends customer details as irreversible fingerprints to improve user recognition, raises the same lawful basis questions as everywhere else. Turning an email address into a fingerprint protects the data in transit; it does not manufacture consent.

One last point that is often misread: Google Consent Mode steers none of this. It is a Google protocol that passes signals to Google tags. The two systems coexist without speaking to each other, and both must be driven by the same consent state. The server-side side of the architecture is covered in our Measurement & Tracking practice.

Why do ChatGPT Ads conversions not match GA4?

Because you have just added a fourth referee to a table that already had three. Your analytics tool, Google Ads and Meta never agree with each other, and that is normal: each applies its own rules. ChatGPT Ads brings four new ones, which resemble neither Google's nor the ones your teams carry in their heads.

The convention
What it produces if nobody writes it down
Source
An attribution window you set yourself when creating the event
Volume gaps against your other sources, written off as a bug
OpenAI Conversion Tracking documentation
View-through conversions counted separately, on a one-day window, outside the main total
Two columns added together in a dashboard, and a number that does not exist
OpenAI Conversion Tracking documentation
Deduplication where the first event received wins, whichever channel it came from
Sales counted twice, or kept in their poorer version
OpenAI Conversion Tracking documentation
A click identifier that does not travel automatically with server events
Perfectly valid conversions, attributed to nothing
OpenAI Measurement Pixel documentation
Serving restricted to users on the free and entry-level plans
A cost per acquisition compared with other channels on a different basis
OpenAI announcement, 31 August 2026

The third row is the expensive one. A single sale is often sent twice, from the browser and from the server, so that it survives an ad blocker or a tab closed too early. The platform then has to recognise that both events describe one sale, and it only does so if they carry a rigorously identical event identifier.

In most of the setups we take over, that identifier is built in two different places: the order number on one side, a value generated on page load on the other. Both events are valid, nothing surfaces as an error, and every sale counts twice.

Note above all that at OpenAI the first event received is the one kept, whichever channel it came from. If your server posts forty seconds after the browser with the exact amount and the full basket, the poorer version survives. The same reasoning applies to any architecture that sends a conversion from two places, as we cover in our piece on identity resolution.

What has to be decided before the first impression?

Three things, and all of them are settled before the first impression is served.

Separate bought from earned. Tagging your ad URLs is decided before launch. It is the one unrecoverable point: data that was never recorded on day one cannot be found again.
Decide what is sent back, and by which route. The list of conversions you return, the channel they leave from, and how the click identifier travels with them to the end. This is where the gap opens between the sales you see and the ones OpenAI credits you with.
Write the conventions down instead of inheriting them. Attribution window, view-through handling, deduplication rule. Four lines in your measurement plan before launch, and one fewer reconciliation meeting per quarter.

Take them in that order: the first one conditions the other two.

This is where we start when a client hands us a new channel, before touching a tag. It is the core of our Measurement & Tracking.

In closing

If you take one thing away: ChatGPT Ads does not give you measurement of AI traffic, it gives you measurement of the small share you buy. That is precisely what makes it useful, because it finally forces you to separate, in your reporting, what you buy on generative surfaces from what you earn there. That distinction existed nowhere, and without it no claim about your visibility inside AI answers is verifiable.

Want to know what your stack actually captures from assistant-driven traffic? Talk to a Smart Bees consultant.

What we're asked most often

Frequently asked questions

Do you need a pixel to run ads in ChatGPT?

Not to run them. Without measurement you get delivery metrics: impressions, clicks, cost. An event source becomes necessary as soon as you want to track a conversion or optimise campaigns on it. It can live in the browser, on your servers, or both.

Why does my paid ChatGPT traffic look like my organic ChatGPT traffic in GA4?

Because the only parameter appended automatically to your ad URLs is a click identifier, and an analytics tool does not read it as a source. An untagged click therefore lands where an organic citation lands, or falls into direct when the referrer is lost. Tagging every landing URL before launch is the only reliable fix.

Can you measure conversions from organic ChatGPT citations?

Not with ChatGPT Ads tooling, which only covers bought traffic. The earned share is handled with the usual referral analysis methods, with the known limits around lost referrers. That asymmetry is exactly what to keep in mind when splitting a budget between the two.

Why are my ChatGPT Ads conversions counted twice?

Because your browser and server events do not carry the same event identifier. The platform only recognises a duplicate when that identifier is identical on both sides. The classic case: the order number on one side, a value generated when the confirmation page renders on the other. Both events are valid and every sale counts twice.

Does ChatGPT Ads require consent in Europe?

Yes, like any advertising tracker. Two things to watch: OpenAI has to be declared as a recipient in your consent platform, otherwise your consent-gated triggers will stay blocked; and the measurement script treats consent as granted by default, so it should be blocked upstream rather than left to its own setting.

What does your stack really capture from AI-driven traffic?

Thirty minutes with one of the founders. We look at your collection setup, what comes back from generative surfaces, and what you are missing to make the call.