Skip to content
Neural Minute

News

ChatGPT ads reach $1B run rate on a custom LLM orchestrator

By Maxime Aulne, Founder and Editor

OpenAI published the design behind ChatGPT ads on October 21, 2026, with a separate post-trained model choosing every ad placement outside the answer path. The post puts $1 billion in annualized run rate and more than 100,000 advertisers behind that architecture. It publishes no fill rate, no latency figure, no timeout threshold and no outside audit of the claim that ads never touch the answer.

ChatGPT ads reach $1B run rate on a custom LLM orchestrator (OpenAI)
The visual OpenAI published with this story, read on October 21, 2026.

OpenAI published an engineering account of how ChatGPT serves ads on October 21, 2026. The architectural detail is the news: a separately post-trained model, which OpenAI calls the orchestrator, runs the ad flow through tool calls, in a service that never touches the model writing the answer. The post also carries the commercial number, with ChatGPT Ads at $1 billion in annualized run rate less than 200 days after launch and more than 100,000 advertisers since then.

What was actually released

There is no new product in this post. It describes a stack already serving ads, written by two members of technical staff, Ritendra Datta and Karthik Gopalratnam. Three decisions are presented as the ones that shaped it: ad sessions keep state across turns and across conversations, the orchestrator interprets the conversation and calls tools, and ad selection runs in its own service with separate models and separate code. The last is the load-bearing one, because a slow ad server cannot delay a ChatGPT answer, and OpenAI states plainly that it does not delay a response to wait for an ad.

Published figureValueWhat it measures
Annualized revenue run rate$1 billionChatGPT Ads, less than 200 days after launch
Advertisers since launchmore than 100,000advertisers that have run ads on ChatGPT

Both figures come from the OpenAI post of October 21, 2026, and from nowhere else. No period, no audit and no methodology accompany them.

The top of the OpenAI engineering post on the ChatGPT ad stack, dated October 21, 2026
The OpenAI post as served on October 21, 2026, with its publication date above the headline. The figures quoted here are read on that page.

The mechanics are ordinary advertising machinery around an unusual controller. The orchestrator rewrites a conversation into commercial queries, embeds them, retrieves candidates through approximate nearest-neighbor search, filters for eligibility, scores relevance, engagement and past performance, then nominates candidates for the auction. It sets no price and picks no winner.

StageWhat the orchestrator callsWhat the stage removes
Retrievalrewritten queries, embeddings, ANN search over several indicesnothing yet, the pool is deliberately broad
Filteringeligibility on creative, locale, policy, budget, pacing, placementinactive campaigns, excluded locales, spent budgets
Scoringsemantic relevance, predicted engagement, historical performancecandidates below the relevance and safety bar
Auctionadmission threshold, pacing, bid computation, quality-adjusted ranking, pricingcandidates below the value threshold

Stages and checks as listed by OpenAI on October 21, 2026. The weights, the thresholds and the reserve price are not given.

After the auction, two failures are specific to chat. An integrity model can clear a conversation and the orchestrator can still block an ad as inappropriate in context, or the ad arrives after the answer is ready and is dropped for that turn. If it does arrive, the frontend shows it below the response, labeled as sponsored, behind a model-generated preamble kept separate from the advertiser copy. OpenAI draws the line itself: server-side delivery is not an impression.

The three sentences that carry the design

  • Stateful ad sessions remember a conversation across turns and across separate chats.
  • A post-trained model, not a rules engine, decides when the ad flow runs.
  • The ad service and the answer service share no model and no code.

What the claim rests on

The $1 billion and the 100,000 advertisers are the company’s own figures, published without a definition of run rate, without the period they cover, and without a split between advertising and other revenue. A run rate is an extrapolation, not a receipt. Read both as a statement of scale.

The architectural claim is different in kind, because it is falsifiable. Ads cannot influence answers, OpenAI argues, because selection happens in a separate service and because returning no ad is treated as an ordinary success rather than a failure to fix. That is the right shape for a guarantee: a boundary someone can describe is a boundary someone can test. What is missing is the test. No external audit is cited, no measurement of answer quality with and without ads is published.

The self-improvement loop is asserted rather than shown. The strongest reasoning models watch outcomes and train the smaller models that do retrieval and orchestration, and human signals from clicks, hides, surveys and advertiser feedback steer direction, with no evaluation numbers attached. The Codex claim is thinner still: a force multiplier that let a small team bootstrap the system, with no figure for how much of the code or the iteration it produced.

What OpenAI does not publish

No fill rate, so nobody outside can say how often an eligible conversation gets an ad. No timeout threshold in milliseconds and no latency distribution, which is what an advertiser would need to understand lost impressions. No reserve price, no auction weights, no measured lift in relevance or engagement, no breakdown of the $1 billion, and no audit of the separation between ads and answers.

On this page

What it changes for advertisers and buyers

For an advertiser, the useful part is the list of recorded outcomes. OpenAI logs five reasons a placement does not happen: the turn was not eligible, a session opened with no retrieval, retrieval returned no candidates, candidates failed hydration or eligibility, or an ad was delivered and later interacted with. That is a diagnostic ladder, and a report showing only impressions and spend cannot tell a targeting problem from a budget problem or from a conversation with no commercial moment.

Ask which of those five outcomes your report shows before scaling, because a vendor able to log them internally has already done the work of exposing them.

For a reader, the details are small but concrete. Personalization is opt-in, and when it is on the orchestrator may use non-sensitive information from past conversations. Ads sit below the answer, never inside it, and carry a label. For anyone comparing tools on the promise that ads will not corrupt output, this post is the template to demand: a policy page says ads will not influence answers, a separated service says how.

The Neural Minute take

Ignore the billion. The line that should decide how you read the post is the one about returning nothing.

Returning no ad is an ordinary, successful outcome.

That is a commitment with a cost. A system that must fill every eligible turn and one allowed to return nothing are different products with different incentives, and only the second can be trusted with a conversational surface. A fill rate is the number that proves it, and the post does not give one.

Our reservation is about what the post chooses to quantify. Revenue and advertiser count are quantified, because they impress. Latency, fill, timeout, auction thresholds and any before-and-after on answer quality are not, and those are the numbers a buyer would use to check the design. Run rate is not revenue, and 100,000 advertisers is not 100,000 active ones. Neither figure is wrong. Both are chosen.

What we would keep: the diagnostic ladder changes a decision this quarter, the separation of services changes a decision at renewal, and the billion is context. That order is the reverse of how the post is written, and it is the right order for anyone paying for the product rather than selling against it.

Sources

  • How we built ChatGPT’s novel ad stack for user trust and relevance, openai.com, published October 21, 2026: https://openai.com/index/building-chatgpt-ad-stack
  • The figures used here, read on that page on October 21, 2026: $1 billion in annualized revenue run rate less than 200 days after launch, more than 100,000 advertisers since launch, five recorded outcomes for a turn that produces no impression
  • The milestone page OpenAI links to from the post, on access to ChatGPT Ads: https://openai.com/index/expanding-access-to-ai-with-chatgpt-ads/
  • The advertising principles OpenAI names as the boundary of the system: https://openai.com/index/our-approach-to-advertising-and-expanding-access/

Newsletter

One email when a review lands.

That is when the promo codes are still fresh, before the prices move.

Nothing else. Unsubscribe in one click.