O feed de produtos do ChatGPT exige nove campos obrigatórios por item: id, título, descrição, URL, marca, vendedor, imagem, disponibilidade e preço. Os erros que mais custam são pequenos: preço sem moeda, variantes sem grupo e "n/a" no lugar de campo vazio.
Este guia segue a especificação da OpenAI na ordem em que o trabalho acontece, com os exemplos pensados para eletrônicos.
Qual é o ponto de partida do feed?
A especificação de arquivo da OpenAI, marcada como estável, pede uma linha por item comprável ou por variante. Os campos obrigatórios para descoberta são item_id, title, description, url, brand, seller_name, image_url, availability e price.
Uma imagem ajuda a lembrar o papel do feed. Cada linha é um crachá de portaria: se o crachá diz uma coisa e a pessoa que aparece é outra, a portaria não deixa entrar. O crachá do feed é lido ao lado da sua página, dos seus dados estruturados e de outras fontes, e divergências custam confiança.
Duas ressalvas de honestidade. Primeiro, eu li a especificação, não testei o envio, e não verifiquei se o programa está disponível para lojas brasileiras; confirme isso com a OpenAI antes de investir. Segundo, a própria especificação diz que elegibilidade não garante exibição.
Passo 1: o formato do arquivo e do preço
No formato OpenAI, o arquivo é UTF-8, o exemplo da página é JSONL, e o preço segue o padrão "valor MOEDA", como 79.99 USD. Para uma loja brasileira, o equivalente seria um valor seguido do código da moeda, algo como 2499.00 BRL; confira na documentação se o mercado está habilitado. URLs devem ser absolutas, com HTTP ou HTTPS, e identificadores ficam como texto.
Existe também um formato compatível com o do Google, aceito apenas depois que a OpenAI confirma: arquivo .txt/.tsv ou .csv, opcionalmente compactado, com uma linha de cabeçalho. JSON, planilhas, XML, RSS e Atom não são aceitos nele. Se você já mantém um feed do Merchant Center, isso poupa trabalho, mas é um caminho com permissão.
Passo 2: limites e valores proibidos
titletem no máximo 150 caracteres edescription, 5.000.- Não use
null,unknownoun/acomo preenchimento. A exceção éunknownemavailability. Campo opcional sem valor deve ser omitido; vazio não significa zero nem falso. sale_priceprecisa ser maior que zero e estritamente menor queprice, na mesma moeda.- Nunca inclua preço dentro de um
offer_id.
Para eletrônicos, o título é onde as marcas costumam errar: marca, linha, modelo e a especificação que diferencia (memória, tela, capacidade) cabem em 150 caracteres. Slogans, não.
Passo 3: variantes sem bagunça
Um notebook em três memórias e duas cores vira seis linhas. A especificação pede item_id distinto por linha, o mesmo group_id para o grupo, e um group_id diferente de qualquer item_id. Cada variante marca listing_has_variations como verdadeiro e traz variant_dict. É o mesmo problema de entidade de produto e variantes: se o grupo quebra, a IA vê seis produtos diferentes ou nenhum.
Passo 4: busca, checkout e anúncios são chaves separadas
is_eligible_search (ou enable_search) vale como verdadeiro quando omitido; falso desliga busca e checkout. is_eligible_checkout só tem efeito se a busca estiver habilitada e o checkout, ativo na integração, e marcar o campo não conclui o onboarding de checkout. is_ads_eligible é independente e, se omitido, fica desligado, salvo padrão no nível do feed. No formato compatível com o Google, itens aceitos entram com busca ativa e checkout desligado.
Passo 5: identificadores, devoluções e avaliações
São opcionais, e eu os trataria como obrigatórios no seu processo: gtin, mpn, condition (sempre declare usado ou recondicionado), accepts_returns, return_deadline_in_days, star_rating e review_count. A página de oferta também deve mostrar esses dados, e o feed deve bater com ela. A auditoria de preço e estoque descreve como verificar isso.
Passo 6: manutenção
A especificação não define um intervalo de atualização, mas diz para enviar o preço corrente e atualizar o feed quando uma promoção começa ou termina, e availability quando o item esgota ou volta. Datas não agendam mudanças. Na Black Friday, isso significa regras operacionais: quem atualiza, quando, e como se verifica.
E o Google?
Segundo o Channable, não é preciso um feed separado para o AI Mode: o foco são os mesmos atributos centrais do Merchant Center, com preços alinhados às páginas e GTIN/MPN corretos. Detalhamos a reconciliação em feed e schema.
Como validar antes de enviar?
Antes do primeiro envio, faça uma revisão por amostra. Escolha dez itens de três famílias diferentes (um com muitas variantes, um em promoção, um recondicionado) e confira linha a linha: o preço bate com a página? O sale_price é menor que o price? O group_id agrupa o que deveria? A condition está declarada? O título cabe em 150 caracteres e identifica o modelo sem ambiguidade?
Depois, compare o que o feed diz com o que um assistente responde quando você pergunta pelo produto. Se a resposta traz um preço, uma especificação ou uma garantia diferente do seu feed, a causa quase sempre está em outra fonte (marketplace, página antiga, cache). Corrigir uma linha do feed sem achar essa fonte só adia o problema. A metodologia que usamos para esse tipo de comparação está em /methodology.
O que levar daqui
- Nove campos obrigatórios; um item por variante, com
group_idconsistente. - Preço no formato "valor MOEDA", sem placeholders;
sale_pricemenor queprice. - Busca, checkout e anúncios são chaves independentes.
- Elegibilidade não garante exibição, e disponibilidade no Brasil deve ser confirmada.
Perguntas frequentes
Posso reaproveitar meu feed do Google Merchant Center?
A especificação aceita um formato compatível com o do Google, mas só depois que a OpenAI confirma o acesso a ele.
Ter o feed garante que meu produto seja recomendado?
Não. A especificação diz que elegibilidade não garante exibição, e o resultado varia por modelo, pergunta e dia.
Preciso ativar o checkout para aparecer?
Não. Busca e checkout são campos distintos. Sem o campo de checkout, ele fica desativado.
Para ver como a IA descreve seus produtos hoje, antes de mexer no feed, comece pelo diagnóstico gratuito ou peça uma demonstração.