
Baptiste Noel
Growth and co-founder of Metrikia
- Master en neurosciences et neuropsychologies cliniques
- Master en entraînement et optimisation de la performance
- Créateur SaaS et de contenu, 20 000+ abonnés LinkedIn
Co-founder of Metrikia, Baptiste is building a SaaS from scratch and shares the growth journey unfiltered. A former clinical-neuroscience researcher and physical-performance coach, he built then left a coaching business generating over 70,000 EUR per month before focusing on product. He writes about growth strategy, acquisition and scaling.
LinkedInChatGPT Recommends Your Product. Nobody Can Count the Sales Yet.
OpenAI locks its attribution window at 30 days and will not let you change it. What ChatGPT ads measure, what they miss, and how to test them anyway.
For two years, the industry asked one question about ChatGPT: how do we show up in there without paying. We wrote articles to get cited, we cleaned up our pages so machines could read them, we invented an acronym for the sport.
That question just changed shape. You can pay now.
OpenAI has published documentation aimed at advertisers. A pixel to drop into your site, a campaign interface, click-based billing, thirteen recognised conversion types. Everything you need to buy visibility inside a conversation, exactly as people have bought keywords for twenty-five years.
Except a conversation is not a results page. And in the technical schema almost nobody has read, there is a required field whose value is fixed for you. That field decides what your reports will say, and you cannot touch it.
The short answer, before the detail
ChatGPT ads are bought in an OpenAI interface, billed per click or per impression, and measured with an in-house pixel plus a server-side conversions interface. The particularity: OpenAI attributes conversions over a thirty-day window that is required and not modifiable, where Meta, Google and TikTok all let the advertiser pick their own.
ChatGPT Ads: what you are actually buying
Let us start with the ground, because it is badly described everywhere.
The platform is called OpenAI Ads, and the advertising appears inside ChatGPT. The account is organised like the others: campaigns, ad groups, ads, plus two objects e-commerce operators will recognise, a product catalogue and a conversions brick.
The documented targeting is geographic: country, region, and designated market area. That is everything the technical documentation describes today. No interest targeting in the Meta sense, no audiences to hand-build.
On bidding, two modes coexist. You pay per impression, or you let the algorithm optimise toward a specific conversion. OpenAI describes that second mode plainly: "oCPC uses your selected conversion event together with ad quality, relevance, click likelihood, and conversion likelihood to favor clicks that are more likely to lead to that event."
One constraint to know before launching, because it is irreversible: "You cannot change the campaign goal or selected conversion event after creation." The objective and the conversion event are picked once. Get it wrong and you rebuild the campaign.
On launch dates, actual pricing and entry thresholds, the trade press is more talkative than the documentation. What emerges, to be taken as an order of magnitude and not as an OpenAI statement: advertising appeared inside ChatGPT in early 2026, self-serve buying arrived in the spring along with the removal of the high spending floor that reserved the format for large accounts, and part of the inventory moved from impression-based billing to click-based billing.
Coming up:
- The complete measurement setup, pixel and server, with the thirteen recognised events
- The line in the technical schema nobody has read, and what it forbids you
- A four-platform comparison table on a criterion nobody compares
- Why a conversation breaks the usual reasoning about attribution
- The protocol for testing anyway, without the setting you are missing
- The cases where you should not go in yet
Measuring ChatGPT ads correctly, first time
Here is the part you can apply today. Two bricks, and they go in together, not one or the other.
The browser brick. OpenAI defines it as "a browser SDK for measuring website events after someone clicks an ad in ChatGPT". You create a pixel ID in the conversions tab of the interface, you drop the script into your page head, and you fire your events.
An important point for compliance, and it is to their credit: customer information is normalised and hashed in the browser before being sent. Their wording: "The Pixel normalizes and securely hashes this information in the browser using SHA-256 before including it with conversion events. Raw customer information is not sent to OpenAI." An advanced matching option automatically detects form fields and attaches their hash.
What the pixel will never do: app install and app open events. Those go through the server, always.
And a limit worth knowing before you find it in your numbers: when consent is refused, blocked events are not replayed. They are lost, not deferred.
The server brick. OpenAI is explicit about its preference: "The Conversions API is a more reliable tracking source than the pixel alone." Your events travel from your server to their endpoint, with an authentication token.
The matching data accepted: the reference from the cookie the pixel drops, a hashed email and customer ID, country, city, ZIP code, IP address, user agent. Their instruction is a healthy one: send only the fields you actually have.
Three technical constraints to hand your developer, because they break naive integrations. Batches are capped at a thousand events, and if a single event in the batch fails, the whole batch fails. Timestamps must fall within the last seven days and no more than ten minutes into the future. And native mobile data sources are not supported at this time.
Deduplication. If you send the same sale through both paths, which is the right practice, reuse the same identifier on both sides. Otherwise you count every sale twice, and you make a budget decision on a doubled number.
The thirteen recognised events. The full taxonomy: app installed, app opened, appointment scheduled, checkout started, contents viewed, custom event, items added, lead created, order created, page viewed, registration completed, subscription created, trial started.
Two of them deserve attention from anyone selling through calls rather than carts: appointment scheduled and lead created exist natively. The platform is therefore usable outside e-commerce, which most guides forget to mention.
One input rule that avoids a classic mistake: if you send an amount, send the currency with it, and express the amount in the minor unit, meaning cents.
The line nobody has read
Now to what that setup actually decides.
When you create a conversion through their technical interface, you fill in five fields and not one more: a name, an event type, a custom name if the event is custom, a source, and a fifth one whose value the documentation specifies for you.
That fifth field is called attribution_window_days. It is required. And the documentation states the value to use: thirty.
Not a default you could adjust. A value to use.
In plain terms: any sale occurring within thirty days of an interaction with your ad will be counted by OpenAI as a conversion from that ad. Thirty days, for all your campaigns, for all your events, whatever your sales cycle.
And what the documentation does not say deserves the same precision: no alternative attribution model is offered, and no distinction between a sale following a click and a sale following a mere exposure appears in that schema. Absence of documentation is not proof of absence. It is simply what is public as of 8 August 2026.
What thirty days means, and what it does not
Here you have to resist the outraged reflex, and I nearly fell for it while preparing this article.
Thirty days is not abnormal. Google Ads uses exactly the same default duration for its click-through conversions. So the question is not the length of the window.
The question is who holds the dial.
At Google, that thirty-day default is adjustable from one to thirty days, and up to sixty or ninety depending on the conversion source. At Meta, the default is seven days after a click and the advertiser picks from several options. At TikTok, seven days after a click and one day after a view by default, with one or seven day options on the self-attributing network, locked once the ad group is published.
| Platform | Default click-through window | Advertiser can change it |
|---|---|---|
| Meta | 7 days | Yes, at ad set level |
| Google Ads | 30 days | Yes, 1 to 30, 60 or 90 days depending on source |
| TikTok | 7 days | Yes, 1 or 7 days, locked after publishing |
| OpenAI | 30 days | No, the value is imposed |

This table is, as far as I know, the only one comparing the four platforms on this criterion. It fits in four rows and it is worth more than every buying guide published on the subject.
Here is why. The only way to know whether your conversions depend on the window is to vary the window. Move a Google campaign from thirty days to seven: the sales that vanish from the report were slow sales, the ones that remain are the fast ones. The test is free, it takes two minutes, and it tells you how much of your number is manufactured by a setting rather than by your advertising.
At OpenAI, that test is impossible. You will not know how many of your thirty-day conversions would still stand at seven.
It is the same mechanism demonstrated in our article on brand cannibalization in Performance Max: the wider the window, the more sales the platform collects that would have happened without it. The difference here is that you cannot tighten it to check.
What their report gives you, and what it keeps
A second technical point nobody raises, and it matters if you run several platforms.
OpenAI's interface does display your conversions. Their documentation on optimized campaigns says so: "In Ads Manager, review impressions, clicks, conversions, spend, click-through rate (CTR), and average CPC together."
But their technical access point to results, the one that lets you pull data automatically into your own tool, returns exactly six metrics: impressions, clicks, spend, click-through rate, cost per click, cost per thousand. Conversions are not in that list. Available breakdowns are limited to three axes, product, country and device, one at a time.
For an advertiser centralising their numbers, the consequence is immediate. ChatGPT conversions are read on screen, one by one, in yet another interface. They do not automatically join the table where your other channels live.
This point is dated and verifiable as of 8 August 2026, and it is exactly the sort of thing that changes. Re-check before making it an argument.
A conversation is not a results page
There remains a problem neither the pixel nor the window solves, and it comes from the nature of the format itself.
When someone types a query into Google, there is a page, results, a measurable click, an arrival on your site. The chain is made of observable events. It is imperfect, and our other articles explain at length just how imperfect, but it is a chain.
In a conversation, the chain breaks somewhere else. Someone describes their problem, the assistant discusses, compares, recommends. Your brand is named in an answer. The person carries on with their conversation, closes the tab, thinks about it the next day, types your name straight into their browser, and buys the day after that.
No click ever landed on your ad. The pixel, which measures what happens "after someone clicks an ad in ChatGPT", has nothing to measure. The sale, meanwhile, is entirely real, and it came from the conversation.
So you have two symmetrical errors waiting for you, and they push in opposite directions.
On one side, the thirty-day window credits the advertising with sales that would have arrived without it. On the other, the absence of a click in a conversational recommendation makes invisible the sales it genuinely caused.

On classic platforms, both errors exist as well. What is new here is their simultaneous size, and the fact that you have no setting to explore either one.
Testing anyway, without the setting you are missing
You cannot vary the window. You can vary something else: the presence of the campaign.
The reasoning is the incrementality one, developed in our article on incrementality testing and geo-lift. Applied to ChatGPT, it goes like this.
First, before launching, write down three numbers over four weeks: your total revenue, your total ad spend, and the volume of direct traffic plus branded search traffic. The third one matters most here, and almost nobody thinks of it.
Then launch the ChatGPT campaign without changing anything else. No new budget elsewhere, no new creative, no page redesign.
Let it run at least six weeks. Longer than on other platforms, for a precise reason: with a thirty-day window, a four-week test has not yet seen its own conversions arrive.
Then read in this order. Total revenue first. Direct and branded traffic second, because that is where the effect of a recommendation that produced no click will hide. Spend third. And the conversion count reported by OpenAI last, purely to compare it against the other three.
If your revenue climbs and your branded traffic climbs alongside it, the campaign is working, even if its own report looks modest. If OpenAI's report looks flattering while the other three numbers stay flat, you know what those thirty days are worth.
Our recommendations, in order
Five concrete decisions for a first budget.
Install the pixel and the server layer together on day one, with deduplication in place. Installing the pixel alone and adding the server three months later gives you two incomparable periods.
Choose the conversion event closest to the money you can actually measure. Order created if you sell online, appointment scheduled if you sell on calls. Remember that this choice is final for the campaign.
Send amounts, with the currency, in cents. A campaign optimising on a conversion count with no value attached will push toward your smallest baskets.
Count your direct and branded traffic as a campaign metric, not as background noise. On this format, that is probably where part of the effect shows up.
And treat the conversion count OpenAI displays as an upper bound. Thirty days, unchangeable, with no documented distinction between click and exposure: that number is the most generous the platform could produce.
When it is better to wait
Three situations where this format is not for you today.
Your sales cycle runs well past thirty days. A sale closing in four months falls outside the window, and you would be steering on a number that ignores your real sales. The problem exists on every platform, it is simply not adjustable here.
You sell mainly inside a mobile app. Native mobile data sources are not supported at this time, and install events must go through the server.
You have no independent measurement of your sales. Adding one more platform to a pile of dashboards that already disagree will teach you nothing. Start by tying your collected sales back to their source, then test this channel.
The number that settles it is still somewhere else
Everything above runs into the same limit as Meta, Google and TikTok before it. A new platform is born, it sells space, it counts what it produced by itself, and it picked the counting rule on your behalf.
The way out is the same as always. Compare what the platform claims against the money actually collected, tied back to its source, in a system that does not sell advertising space.
That is what Metrikia does for Meta, Google, TikTok and the other channels already connected. OpenAI Ads support is work in progress on our side, as their interface settles. In the meantime, the reasoning in this article works with the tools you already have: your collected revenue, your branded traffic, and a healthy scepticism toward a report you cannot adjust.
If you want to see what your current channels look like against your real cash, book a demo.
Frequently asked questions
What is ChatGPT advertising? It is ad space sold by OpenAI inside ChatGPT, bought through a campaign interface, billed per impression or per click. Measurement runs on a browser pixel and a server-side interface, with thirteen recognised conversion types.
How do you measure conversions from ChatGPT ads? Through a pixel installed in your page head, complemented by server-side sending for reliability, both deduplicated with a shared identifier. Conversions display in the OpenAI interface.
What is the attribution window for OpenAI Ads? Thirty days. The field is required in the technical schema and the documentation states the value to use, with no alternative documented as of 8 August 2026.
Can you change the attribution window at OpenAI? No, according to the public documentation. That is the main difference from Meta, Google and TikTok, which all let you pick your own.
Is thirty days a lot? It is the same duration as Google Ads by default. So the problem is not the duration, it is being unable to shorten it to test how sensitive your conversions are.
Can you pull ChatGPT conversions through the API? The results endpoint returns impressions, clicks, spend, click-through rate, cost per click and cost per thousand. Conversions are not in that list as of 8 August 2026; they are read in the interface.
Which conversion events does OpenAI recognise? Thirteen: app installed, app opened, appointment scheduled, checkout started, contents viewed, custom event, items added, lead created, order created, page viewed, registration completed, subscription created, trial started.
Do ChatGPT ads work for B2B? Appointment scheduled and lead created exist natively, so yes in principle. The caveat is long sales cycles, which the thirty-day window will cut off.
How do you target on ChatGPT? The technical documentation describes geographic targeting by country, region and designated market area. No interest targeting comparable to Meta is documented there today.
Can you change a campaign objective after launch? No. The documentation is explicit: the objective and the conversion event cannot be modified after creation. You have to rebuild the campaign.
What happens if the user refuses consent? Blocked events are not replayed. They are permanently lost, which opens a permanent gap between your real sales and the ones the platform sees.
How do you test whether ChatGPT ads actually pay? Through a presence test over at least six weeks, watching total revenue and direct plus branded traffic first, and the reported conversion count only afterwards.
How long should a test run? At least six weeks. With a thirty-day window, a four-week test has not yet seen its own conversions arrive.
Does the format suit mobile apps? Partially. Install and open events must go through server-side sending, and native mobile data sources are not supported at this time.
Should you send order values? Yes, with the currency, in the minor unit, meaning cents. Without a value, a campaign optimising on conversion count will push toward small baskets.
References
OpenAI. Ads: Measurement Pixel. https://developers.openai.com/ads/measurement-pixel
OpenAI. Ads: Conversions API. https://developers.openai.com/ads/conversions-api
OpenAI. Ads: Conversion setup (API reference). https://developers.openai.com/ads/api-reference/conversion-setup
OpenAI. Ads: Insights (API reference). https://developers.openai.com/ads/api-reference/insights
OpenAI. Ads: Conversion-optimized campaigns. https://developers.openai.com/ads/conversion-optimized-campaigns
OpenAI. Ads: Supported events. https://developers.openai.com/ads/supported-events
OpenAI. Ads: API overview. https://developers.openai.com/ads/api-overview
Google Ads Help. About conversion windows. https://support.google.com/google-ads/answer/3123169
Meta Business Help Center. About attribution models and attribution settings. https://www.facebook.com/business/help/460276478298895
TikTok Ads Manager Help. Attribution overview. https://ads.tiktok.com/help/article/attribution-overview
About the author
Baptiste Noel, co-founder of Metrikia. MSc in Clinical Neuroscience, MSc in High Performance.