Pular para o conteúdo principal
OpenAI

21 de outubro de 2026

Engenharia

Como criamos o novo sistema de anúncios do ChatGPT com foco em confiança e relevância

Por Ritendra Datta e Karthik Gopalratnam, membros da equipe técnica

Carregando…

Os sistemas tradicionais de publicidade são criados para responder a manifestações isoladas da intenção do usuário. Um usuário pesquisa ou visualiza algo on-line, o sistema de anúncios recebe essas consultas e visualizações de página como eventos e busca anúncios correspondentes com base nesses eventos. Criar uma infraestrutura de anúncios para o ChatGPT foi diferente: a intenção do usuário se desenvolve ao longo das conversas e muda durante várias trocas de mensagens, às vezes sem um momento adequado para publicidade. Para atender a esse novo paradigma, criamos um sistema de entrega de anúncios sob medida. Esse novo tipo de infraestrutura de anúncios se baseia em um LLM de fronteira personalizado e pós-treinado, que faz chamadas de ferramentas para recuperação (identificar as melhores opções), classificação (prever o engajamento do usuário), relevância (avaliar a utilidade do anúncio) e execução de leilões para seleção final e precificação dos anúncios.

Nosso sistema de anúncios acompanha as nuances dos objetivos do usuário à medida que eles evoluem graças a três decisões centrais de projeto: 1) implementar sessões de anúncios com estado persistente, ou seja, reter informações entre as interações de uma conversa e entre várias conversas; 2) usar um LLM personalizado e pós-treinado com uma arquitetura de chamadas de ferramentas para interpretar o contexto e a intenção subjacente de uma conversa e, então, selecionar, classificar e entregar anúncios de forma eficaz; e 3) executar o processo de seleção de anúncios separado da geração de respostas do ChatGPT, em um serviço próprio, para impedir que os anúncios influenciem as respostas e manter a neutralidade da voz do ChatGPT. Usamos nosso LLM pós-treinado para orquestrar todo o fluxo de anúncios, determinando qual anúncio exibir e em que momento, com base tanto na interação atual do usuário quanto no histórico da conversa. Embora criar do zero um sistema de anúncios com autoaperfeiçoamento como esse costumasse levar anos, o ChatGPT Anúncios atingiu um ritmo de receita anualizada de US$ 1 bilhão menos de 200 dias após o lançamento; agora, mais de 100 mil anunciantes já veicularam anúncios no ChatGPT desde o lançamento.

Como os anúncios devem funcionar em chats com agentes de IA?

Uma solicitação convencional de publicidade geralmente começa com um evento bem definido. Um usuário envia uma consulta de busca ou abre uma página da web, e o sistema de anúncios recebe uma solicitação. Esse tipo de sistema é bastante simples: recupera possíveis anúncios candidatos, classifica-os, realiza um leilão para precificar adequadamente a oportunidade e exibe o anúncio resultante ao usuário. O ChatGPT não produz naturalmente um momento tão definido.

Em uma conversa com o ChatGPT, as pessoas chegam com objetivos, e não com uma consulta de busca que pede uma única resposta. Elas podem estar planejando uma viagem, escolhendo um software para sua empresa, mobiliando uma casa ou aprendendo um novo hobby. Tudo isso não acontece em uma única interação da conversa. Muitas vezes, o ChatGPT ajuda o usuário a esclarecer o que importa ao longo do caminho.

Por exemplo, nossa equipe de engenharia perguntou ao ChatGPT como treinar para uma corrida: a conversa começa com uma pergunta geral sobre corrida. Várias interações depois, a equipe pergunta sobre tênis para ajudar nos treinos. O significado comercial da conversa muda a cada novo requisito, e esse contexto personalizado evolui ao longo de várias sessões. Um sistema que agisse com base na primeira mensagem poderia captar uma intenção totalmente errada, prejudicando a experiência do usuário e atrapalhando seu caminho.

Para criar nosso sistema de anúncios, precisamos ir além da arquitetura de publicidade baseada em solicitação e resposta e desenvolver uma infraestrutura do zero para encontrar possíveis oportunidades econômicas, priorizando a confiança do usuário e o valor oferecido a ele.

Memória da conversa, sem influenciar as respostas do ChatGPT

Transformar cada mensagem em uma solicitação independente, como em um sistema tradicional de anúncios, traria alguns riscos para nosso caso de uso em chat: 1) interpretar mal o objetivo do usuário ao simplificá-lo demais; 2) iniciar o fluxo de publicidade cedo demais, antes que a real necessidade do usuário fique clara; 3) exibir anúncios que atrapalhem a jornada do usuário em vez de apoiá-la; e 4) executar novamente o fluxo de anúncios de forma ineficiente a cada mudança na solicitação, gerando ruído e custos desnecessários. Em vez de se organizar em torno de eventos individuais, o sistema de anúncios (composto por recuperação, classificação e entrega) mantém uma sessão com estado persistente. Isso significa que a sessão de anúncios permanece ativa durante uma interação elegível, retendo e atualizando as informações à medida que elas evoluem. O ChatGPT envia o contexto inicial da solicitação ao servidor de anúncios. O sistema de anúncios acompanha a evolução da conversa e se adapta a ela, em vez de depender de uma única consulta simplificada.

O processo de seleção de anúncios é executado em paralelo à geração normal de respostas do ChatGPT para garantir que o fluxo de anúncios não influencie suas respostas. Os anúncios são filtrados e selecionados por um sistema separado, que processa a conversa de acordo com suas próprias restrições de elegibilidade, qualidade e entrega. Essa importante separação na arquitetura — serviços distintos que usam modelos e códigos separados — permite que os servidores centrais do ChatGPT cuidem da geração da resposta orgânica. Enquanto isso, o sistema de anúncios avalia de forma independente se há uma oportunidade adequada de publicidade e, em caso positivo, prepara uma inserção patrocinada por meio de um processo separado de veiculação.

Fluxograma que mostra a conversa de um usuário se ramificando em um fluxo de resposta do ChatGPT, que produz uma resposta orgânica, e um fluxo separado de elegibilidade e veiculação de anúncios, que produz uma inserção claramente identificada como patrocinada.

A publicidade é executada em paralelo ao fluxo de resposta do ChatGPT.

Além de proteger a experiência do usuário, essa separação tem algumas consequências práticas. O ChatGPT não depende do sistema de anúncios: os serviços não estão interligados de forma alguma e não compartilham um modelo de geração de conteúdo. Assim, se o sistema de veiculação de anúncios estiver indisponível ou lento, a resposta orgânica do ChatGPT não é afetada. Isso significa que o sistema de anúncios não pode tirar o ChatGPT do ar nem atrasar seu funcionamento. Outro benefício dessa separação é manter um alto nível de exigência quanto ao valor dos anúncios. Não retornar nenhum anúncio é um resultado normal e bem-sucedido. O sistema só entrega um anúncio se ele for claramente benéfico para usuários e anunciantes.

Um LLM interpreta conversas e faz chamadas de ferramentas

O outro componente central da arquitetura da nossa infraestrutura de anúncios é o LLM pós-treinado que interpreta conversas e executa todo o fluxo de anúncios em um ciclo com agentes de IA, fazendo chamadas de ferramentas para as funções centrais do sistema de anúncios, da recuperação à classificação, ao leilão e, por fim, à entrega. Chamamos esse LLM de orquestrador.

A primeira etapa de um fluxo de anúncios é entender a intenção do usuário para iniciar o processo de recuperação: uma busca rápida e deliberadamente ampla por possíveis anúncios, que serão filtrados depois. Receber a conversa de forma incremental torna o problema de recuperação mais rico, mas também mais ambíguo, pois o sistema de anúncios precisa distinguir a intenção atual de um contexto que já ficou para trás. O orquestrador precisa interpretar referências a mensagens anteriores, reconhecer quando o usuário está falando hipoteticamente e evitar tratar toda menção a um produto ou serviço como um pedido de compra.

O orquestrador de anúncios usa o contexto disponível da conversa e do usuário, faz iterações para encontrar bons anúncios e escolhe repetidamente qual ferramenta chamar e quando. O objetivo é encontrar o anúncio mais adequado àquela conversa e àquele contexto: aquele que equilibra alto valor para o usuário e para o anunciante. Se o usuário optar por personalizar os anúncios, o orquestrador também considera as informações não sensíveis disponíveis sobre suas conversas anteriores para encontrar os anúncios mais adequados.

Diagrama de arquitetura que mostra o contexto da conversa e o perfil do usuário alimentando um orquestrador de anúncios com ferramentas de recuperação, estimativa de relevância, previsão de eventos, elegibilidade, ritmo de gastos e orçamentos, além de leilão e precificação, que equilibram o valor para o usuário e para o anunciante.

O orquestrador de anúncios chama ferramentas de entrega de anúncios de forma iterativa para encontrar anúncios de valor.

À medida que a conversa avança e o orquestrador de anúncios recebe informações mais recentes, ele pode executar uma nova série de chamadas de ferramentas com o contexto atualizado para encontrar anúncios melhores e retorná-los ao cliente, que poderá usar esses novos anúncios se eles chegarem a tempo.

O orquestrador foi projetado para equilibrar o valor para o usuário e para o anunciante, sempre colocando os usuários em primeiro lugar.

Como o orquestrador chama ferramentas de anúncios em um ciclo com agentes de IA

O sistema de anúncios consiste em ferramentas individuais, e o orquestrador as chama de forma iterativa para encontrar os melhores anúncios para uma conversa. Em linhas gerais, o orquestrador transforma conversas em breves resumos de texto, que são convertidos em embeddings semânticos (representações de significado armazenadas que facilitam a busca pelo sistema de anúncios). Ele usa esses embeddings para recuperar anúncios candidatos, filtra os candidatos por elegibilidade (com base no orçamento, nas configurações do usuário e em outras verificações preliminares), avalia sua qualidade e relevância e faz uma classificação final para identificar oportunidades de alto valor para inserção ao fim de uma resposta no chat. Portanto, cada anúncio precisa atender a critérios rigorosos de elegibilidade e relevância para poder ser inserido.

Preparação de consultas de recuperação que captam a intenção

Primeiro, o LLM orquestrador prepara uma ou mais consultas que representam a intenção comercial relevante. Isso pode incluir reescrever o contexto da conversa para ampliar as possibilidades comerciais além de consultas de busca com correspondência direta e, em seguida, criar representações semânticas. Nessa etapa, o orquestrador condensa uma conversa com várias trocas de mensagens em uma versão resumida para o sistema de recuperação, que busca anúncios de forma direcionada no nosso banco de dados.

As inserções de anúncios serão melhores tanto para usuários quanto para anunciantes se só ocorrerem quando houver uma compreensão profunda da intenção do usuário. Várias consultas podem preservar diferentes aspectos da intenção. Uma conversa sobre planejar uma viagem, por exemplo, pode conter necessidades distintas relacionadas a transporte, hospedagem ou atividades. O sistema de recuperação pode preservar essas distinções em vez de comprimir toda a conversa em uma única string literal.

Como exemplo, vamos analisar uma possível sequência de conversa sobre calçados para trilhas:

  1. What should I cover on a two-day trip to Yosemite?

  2. Will it be cold next week?

  3. New [insert brand] product lines?

Embora o usuário não tenha relacionado a pergunta sobre a marca de calçados à viagem a Yosemite, essa conversa poderia ser representada no nosso sistema de anúncios por duas consultas, como [shoes appropriate for hiking trip] e [new [brand] product lines good for travel]. Essa pode ser apenas a primeira tentativa; o orquestrador foi projetado para refinar essas representações de forma iterativa até encontrar anúncios no nosso inventário que ofereçam alto valor ao usuário.

Recuperação de possíveis anúncios

A recuperação é o processo de criar um conjunto deliberadamente amplo de opções de anúncios. Os candidatos podem vir de diferentes estratégias de recuperação e depois competir sob as mesmas restrições de veiculação. Criamos vários índices otimizados para diferentes restrições do sistema e do produto. Por exemplo, o índice para anúncios de feeds de produtos foi projetado para considerar avaliações positivas ou negativas dos produtos ao buscar os melhores anúncios possíveis. Isso não é relevante para outros anúncios que podem não ter avaliações associadas. Cada índice é otimizado para alguma versão da busca aproximada por vizinhos mais próximos (ANN), usando embeddings que representam a intenção do usuário. Essa busca ANN é um algoritmo de aproximação para recuperação em grandes índices semânticos. Isso significa que os anúncios são buscados com muita rapidez, chegando perto de uma boa solução em vez de procurar a solução "certa", sem deixar de preservar a maioria dos candidatos relevantes.

Fluxograma que mostra consultas reescritas codificadas em embeddings semânticos de alta dimensionalidade, usados para buscar anúncios comuns, anúncios de produtos e estratégias opcionais, com os resultados reunidos em um amplo conjunto de candidatos.

O sistema de anúncios usa consultas reescritas para criar embeddings semânticos durante o processo de recuperação de anúncios e gerar um amplo conjunto de anúncios candidatos.

Filtragem de candidatos inelegíveis

O objetivo da filtragem é descartar todos os anúncios candidatos que não atendam aos critérios de inserção quanto a relevância, lances e orçamento. Dependendo do candidato e da configuração, as verificações de filtragem podem incluir disponibilidade de criativos e campanhas (se a campanha ou os criativos dos anúncios estão ativos), segmentação da campanha (por exemplo, em quais localidades ela pode operar), restrições de políticas (requisitos de conformidade sobre o que pode ser anunciado), disponibilidade de orçamento (se a campanha ainda tem orçamento para gastar), ritmo de gastos (se a campanha deve gastar orçamento agora ou em outro horário do dia), compatibilidade da inserção (em quais tipos de conversa o anúncio pode aparecer) e deduplicação por anunciante e campanha (escolher um número adequado de anúncios por anunciante para garantir uma participação justa entre as empresas).

Avaliação de relevância e qualidade

Os candidatos aprovados nas verificações de elegibilidade avançam para uma fase de pontuação, na qual o orquestrador faz chamadas de ferramentas a vários sistemas de pontuação. Eles avaliam critérios de veiculação como relevância semântica (o anúncio é relevante para o objetivo do usuário?), engajamento previsto (é provável que o anúncio seja visto, receba cliques e gere o resultado desejado pelo anunciante?) e desempenho histórico (o anúncio teve bom desempenho quando exibido aos usuários até agora?). O orquestrador também filtra anúncios para garantir relevância e segurança antes do leilão. Esses sistemas reduzem as opções a um conjunto menor de candidatos prontos para o leilão, mas ainda não determinam qual anúncio será entregue.

Execução do leilão de anúncios

O orquestrador avalia os candidatos preparados no contexto da conversa e escolhe quais anúncios candidatos são adequados o suficiente para participar do leilão final. O orquestrador não decide diretamente qual anúncio será veiculado nem define um preço. Ele indica candidatos adequados ao contexto para que a ferramenta de leilão os avalie.

O leilão aplica os mecanismos finais de veiculação, incluindo admissão no leilão (atender a um limiar mínimo de relevância e valor), ritmo de gastos (distribuir o orçamento de anúncios de forma mais uniforme), cálculo de lances e atributos do leilão, classificação ajustada pela qualidade, precificação e seleção final.

Verificações finais de elegibilidade

Após o leilão, há duas situações em que um anúncio pode não ser entregue, ambas específicas do ambiente de conversação do ChatGPT.

  1. O anúncio pode parecer inadequado no chat: mesmo que a conversa tenha sido considerada segura para a inserção de anúncios pelos modelos de integridade (os modelos que decidem quando é apropriado veicular um anúncio) e que o anúncio tenha sido considerado em conformidade com as políticas, às vezes ele pode parecer inadequado no contexto de certas conversas. O orquestrador impede que esses anúncios sejam exibidos.

  2. A solicitação de anúncio pode não chegar a tempo: se o modelo do ChatGPT estiver pronto para responder, mas o anúncio ainda não estiver pronto para inserção, o tempo limite da solicitação de anúncio se esgota e o anúncio não é entregue. Portanto, um dos objetivos do sistema de anúncios é executar o processo o mais rápido possível. O tempo de resposta do modelo do ChatGPT é dinâmico, e não atrasamos as respostas do chat para esperar os anúncios carregarem.

Se todas as verificações acima forem aprovadas, enviamos o anúncio ao frontend para renderização. Consideramos isso uma entrega de anúncio do lado do servidor, mas ainda podemos não exibir o anúncio ao usuário — e isso é intencional.

A etapa final: exibir os anúncios ao usuário

Em um produto de conversação como o ChatGPT, a entrega de um criativo de anúncio pelo servidor não garante que o anúncio será exibido; ele também precisa chegar a tempo de ser incluído na interação atual. O criativo do anúncio inclui título, descrição, link de destino e eventuais chamadas para ação. Além disso, o sistema de anúncios também retorna um preâmbulo gerado pelo modelo: uma introdução curta e neutra que explica como o anúncio se relaciona com a conversa. Manter o preâmbulo separado do criativo preserva a mensagem do anunciante e mantém a neutralidade da voz do ChatGPT.

O frontend do ChatGPT recebe o preâmbulo e o criativo do anúncio em um único pacote. Se o pacote chegar antes que a resposta do ChatGPT seja totalmente gerada, o frontend exibe o anúncio abaixo da resposta, claramente identificado como patrocinado. Se chegar tarde demais, o anúncio não será exibido naquela interação. Essa é a diferença entre a entrega de um anúncio pelo servidor e uma impressão de anúncio exibida ao usuário.

Diagrama de sequência que mostra um anúncio vencedor preparado pelo sistema de veiculação, as verificações finais pelo ChatGPT, a exibição na experiência do usuário e as confirmações que distinguem a seleção da entrega bem-sucedida.

A seleção do vencedor e a entrega são eventos separados. Um anúncio selecionado só conta como entregue depois que o ChatGPT aprova e exibe a inserção e a entrega é confirmada.

O que acontece após a exibição do anúncio

Nossa infraestrutura de publicidade usa sistemas tradicionais de registro de logs e pipelines de dados, o que traz três benefícios principais: os anunciantes podem integrar seus sistemas existentes à nossa infraestrutura com mais facilidade, podem melhorar suas estratégias com os dados dos relatórios, e nossa equipe pode identificar áreas do sistema a aprimorar. Além dessas ferramentas de relatórios e otimização, usamos um modelo de alta qualidade para avaliar nossa entrega e treinar outros modelos de anúncios, criando um poderoso ciclo de autoaperfeiçoamento.

Análises detalhadas do que aconteceu nos ajudam a entender e melhorar cada parte do sistema de anúncios de forma isolada. O sistema de processamento de logs também registra resultados granulares, como:

  • A interação não era elegível para publicidade.

  • Uma sessão de anúncios foi iniciada, mas nenhuma recuperação foi solicitada.

  • A recuperação não retornou candidatos.

  • Os candidatos foram recuperados, mas falharam na hidratação ou na verificação de elegibilidade.

  • Um anúncio foi entregue e depois recebeu uma interação.

Essas análises detalhadas nos ajudam a melhorar cada parte do sistema de veiculação de anúncios de forma isolada. Melhorar a detecção de oportunidades exige evidências diferentes das necessárias para melhorar a recuperação, a qualidade dos candidatos, a participação nos leilões ou a confiabilidade da entrega.

Fluxograma que mostra uma interação elegível do ChatGPT gerando resultados de produto, veiculação de anúncios e qualidade, que passam por análises com controles de privacidade para produzir métricas agregadas e dados permitidos para aprimoramento dos modelos.

Os sistemas de entrega, veiculação e qualidade observam partes diferentes do ciclo de vida. O processamento com controles de privacidade determina o que pode ser usado para mensuração e aprimoramento dos modelos.

Modelos de alta capacidade avaliam e aprimoram toda a infraestrutura

A ideia por trás da avaliação baseada em modelos é que nossos modelos mais poderosos e com maior capacidade de raciocínio observem e julguem os resultados do sistema e, em seguida, aprimorem o LLM pós-treinado, treinando-o para ter um desempenho melhor. Por exemplo, podemos usar modelos menores e mais eficientes, ou modelos com menor capacidade de raciocínio, para orquestração ou recuperação se nosso modelo mais poderoso coletar feedback e treinar esses modelos menores para fazer o melhor trabalho possível.

O feedback humano orienta escolhas de bom senso

Coletamos e usamos o feedback humano (cliques e ocultações de anúncios pelos usuários), além de pesquisas com usuários e feedback direto de anunciantes pela nossa Plataforma de Anúncios. Nossa equipe também fica disponível para receber feedback durante o desenvolvimento, ouvindo diretamente o que os usuários do ChatGPT e os anunciantes querem. Essa fonte de feedback orienta nossos rumos ainda mais do que o feedback observacional do modelo e foi um dos fatores que nos permitiram iterar rapidamente até chegar às decisões certas para o produto. O modelo pode ser capaz de entender a intenção do usuário e pensar criticamente para entregar algo de valor, mas são as pessoas que definem o que é de bom gosto.

Próximos passos

Há um ano, não tínhamos um sistema de anúncios e apenas algumas pessoas estavam pensando nessa área de desafios. Agora temos um sistema de anúncios robusto que sustenta um ritmo de receita anualizada superior a US$ 1 bilhão, com um orquestrador baseado em LLM executando o fluxo de anúncios. O Codex foi fundamental para multiplicar nossa capacidade e nos permitir criar o sistema do zero até atingir esse importante marco de uso com velocidade sem precedentes. Desde o início, estruturamos a equipe e os fluxos de desenvolvimento para usar o Codex na criação e expansão rápidas do sistema. Criamos mecanismos de proteção para que o Codex pudesse colocar código em produção com segurança e confiabilidade. Em paralelo, configuramos plugins de infraestrutura de dados para o Codex para reduzir drasticamente o ciclo entre obter insights e implementar melhorias no sistema, incluindo novos recursos de produto, melhorias de qualidade e maior desempenho.

A combinação dos limites do nosso sistema (fundamentados em nossos princípios de publicidade⁠) com nosso orquestrador baseado em LLM nos permite tornar a publicidade útil sem tratar toda conversa como uma solicitação de anúncio. Daqui em diante, continuaremos a testar formatos de anúncios mais dinâmicos para aumentar o valor para o usuário (por exemplo, permitindo que ele converse diretamente com empresas por meio dos anúncios) e para o anunciante. A arquitetura de autoaperfeiçoamento da infraestrutura, construída sobre modelos da OpenAI com ciclos contínuos de feedback, acelerará nossa capacidade de continuar aprimorando a relevância e a personalização ao longo do tempo.

Autores

Ritendra Datta, Karthik Gopalratnam