Inside OpenAI’s LLM-driven ads system for ChatGPT

OpenAI has published a detailed account of how it built the ChatGPT advertising stack, centered on an LLM-driven ads system that preserves conversational intent while delivering contextual placements. Rather than treating each message as an isolated query, the system is designed to remember context across turns and sessions, use a post-trained large language model to interpret evolving intent, and keep ad selection physically separate from the model that generates ChatGPT’s responses.

At the heart of the architecture is a set of design principles intended to protect user trust and the assistant’s neutral voice. First, ad interactions are managed as stateful sessions that retain and update information across eligible turns of a conversation. This lets the ads flow respond to multi-turn goals and shifting user intent rather than matching only the single message that happens to trigger an ad opportunity. Second, OpenAI employs a custom post-trained LLM, referred to as the orchestrator, which interprets conversation context and issues structured tool calls for retrieval, ranking, relevance evaluation and auction nomination. Third, the ads selection pipeline runs in a standalone service separate from the ChatGPT servers that produce answers; that separation prevents ads from influencing the assistant’s organic responses or delaying them.

The orchestrator acts as a translator between conversational context and the suite of systems that produce an ad. It converts summaries of the conversation into semantic embeddings, formulates retrieval queries, and retrieves candidate ads from multiple indices. It also filters candidates for eligibility, calls scoring systems to evaluate relevance and predicted engagement, and nominates finalists to an auction tool. As a conversation evolves, the orchestrator refreshes queries and tool calls so candidate sets and scores reflect newly revealed user intent.

Retrieval and filtering create the candidate set that enters the scoring and auction stages. OpenAI constructs a deliberately broad pool of candidates by searching multiple indices optimized for different constraints and by using approximate-nearest-neighbor (ANN) search over semantic embeddings. Candidates are then removed if they fail checks such as campaign activity, targeting, policy restrictions, budget, pacing, placement compatibility or deduplication rules. Survivors are scored for semantic relevance, predicted engagement and historical performance before being nominated to the auction component.

The auction is implemented as a separate tool that applies final admission thresholds, pacing, quality-adjusted ranking and pricing to determine which ad—if any—should proceed toward delivery. OpenAI notes two ChatGPT-specific final checks that can stop an ad from appearing: an ad might be deemed inappropriate for the conversational tone even though it passed integrity and policy checks, or the ad may simply not arrive in time for that turn. Ads that do pass are delivered server-side as a bundle including the creative plus a short, neutral preamble explaining how the ad relates to the conversation. Keeping the preamble distinct from the assistant’s response is intended to preserve ChatGPT’s neutral voice while allowing advertisers’ messages to be communicated. If the ad and preamble reach the frontend before the model’s reply renders, the interface displays the ad below ChatGPT’s response and labels it as sponsored; otherwise, no impression is shown for that turn.

OpenAI also outlines logging, evaluation and feedback mechanisms that support continuous improvement. Traditional logging and data pipelines capture granular outcomes across the ads lifecycle—retrieval failures, eligibility rejections, delivered ads and user interactions. Higher-reasoning models observe and evaluate system outputs to train and improve smaller orchestration and retrieval models. Human feedback from clicks, hides, surveys and advertiser input through Ads Manager is incorporated as well. These combined feedback loops are used to refine relevance, personalization and delivery reliability while keeping user value central.

OpenAI reports substantial early commercial traction: ChatGPT Ads reached a $1 billion annualized revenue run rate in under 200 days after launch, and more than 100,000 advertisers have run campaigns on the platform since launch. The team attributes part of its faster development cycle to using Codex to accelerate and automate portions of the build-and-iterate workflow. Looking ahead, OpenAI says it will experiment with more dynamic ad formats and leverage the stack’s self-improving architecture to enhance relevance and personalization over time.

The described approach emphasizes a balance between delivering relevant ads and preserving the integrity of conversational AI. By using a post-trained orchestrator, stateful ad sessions and strict service separation, OpenAI’s design aims to respond to multi-turn intent without allowing advertising to shape ChatGPT’s voice or interfere with its primary role as an assistant. The company’s next steps will test how that balance scales as ad formats and personalization evolve.

Source: Read the original source

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *