Evidence at a glance
Why a Running Conversation Cannot Be Read from Its First Turn
On October 21, 2026, OpenAI published an engineering account of an ad delivery system built specifically for ChatGPT. The problem differs from conventional advertising: a traditional system often receives a discrete event when someone searches or opens a page, then matches an ad to it. In a chat, a goal may only become legible over several turns. For technical leaders, this is not simply a matter of adding an ad slot to a chat interface. It requires redefining what counts as a request to the advertising system.
OpenAI’s example of a conversation about race training makes the distinction concrete. The exchange starts with a general question about running and turns to training shoes only several turns later, as the user adds constraints. If the system starts retrieving ads after the first message, it may mistake a broad training question for an intention to buy shoes. If it starts over on every turn, it repeatedly reruns the process and can create irrelevant noise. The system therefore has to track how intent evolves, while also deciding when it is not yet clear enough to act on.
Treat Intent as State, Not as an Individual Message
OpenAI’s approach is to maintain a stateful ad session. Across eligible turns, the system updates context instead of treating every message as a separate ad request. A post-trained LLM reads the conversation and attempts to distinguish the current goal from stale interests, hypothetical discussion, or a passing mention of a product. When ad personalization is enabled, the system may also use some non-sensitive information from past conversations, so the relevant state may extend beyond the current chat.
That makes the LLM an orchestrator, not merely a component that rewrites a sentence as a search query. It has to judge which goals should enter the ad flow and use tool calls to coordinate what happens next. The research material says that the system turns multi-turn conversations into summaries and semantic vectors, then uses approximate nearest-neighbor search to find candidate ads. It can split multiple needs into separate retrieval queries, preserving distinctions in the conversation rather than forcing the user into a single, static interest label.
The Model Orchestrates; the Auction Makes the Final Selection
Finding candidate ads does not mean that any of them will be shown. Candidates are also filtered against ad policies, location, budget, and pacing, then assessed for conversational relevance, expected engagement, and historical performance. The LLM can pass suitable candidates into later stages, but OpenAI describes the auction system as responsible for final eligibility, quality-adjusted ranking, pricing, and selection. That division helps avoid treating a model that interprets a conversation as a black box with sole authority over every commercial decision.
The pipeline also treats showing nothing as a normal outcome. Even if an ad has been selected on the server, it will not appear if it does not fit the current chat or does not arrive in time. ChatGPT will not delay its answer while waiting for an ad. For teams building conversational products, this is a concrete architectural principle: the ad path should degrade independently rather than making core answer availability depend on retrieval and auction services. The public materials do not disclose latency targets or rejection rates at each stage, so they do not establish how this pipeline performs under real-world load.
Answer Isolation Addresses One Risk, Not Every Trust Question
OpenAI says ad selection runs in a separate service, using different models and code from the service that generates ChatGPT’s answers. Ads appear below an answer and are labeled as sponsored. This boundary reduces a direct route from ad decisions into answer generation, and allows the ad path to operate without changing the process that produces the response.
But “ads do not influence answers” is not the same as “the ad system does not read conversations.” To judge relevance, the system has to process the current chat. When personalization is enabled, it may also use some information from past conversations. The public materials do not itemize those signals or say how long they are retained. Nor do they provide an independent audit or quantitative experiment showing the effect of service separation on answer quality, latency, or user trust. Separation is therefore an architectural declaration and a risk control, not proof that the outcome has been externally verified.
Growth Figures Show Scale, Not Delivery Quality
OpenAI says ChatGPT Ads reached a $1 billion annualized revenue run rate less than 200 days after launch, and that more than 100,000 advertisers have run ads on the service. These figures indicate the pace of commercial growth, but they are company-reported and the public materials provide neither third-party verification nor a complete account of the measurement methodology. It is especially important to distinguish an annualized run rate from cumulative revenue: the former projects a business’s pace at a point in time over a year. It does not mean that $1 billion has already been earned.
The Help Center suggests starting CPC ad groups with maximum bids of $3 to $5 per click, but this is a recommended range, not the platform’s average clearing price, and it does not explain the auction formula. For engineering teams, commercial scale cannot substitute for evidence of system and product quality. The public materials do not yet disclose misdelivery rates, relevance evaluations, the share of users who enable personalization, rejection rates across stages, or latency targets. Teams building similar systems should evaluate both when to serve an ad and when to stay silent, keep the ad path independently degradable, and make the boundaries on state use explicit. Until those metrics and boundaries are available, revenue growth alone cannot establish that the trust mechanisms are working.