“Digite uma palavra-chave e receba um vídeo de anúncio pronto.” Esse é o discurso de praticamente toda ferramenta de criativos com IA hoje — e também a forma mais fácil de se enganar.
Na prática, basta colocar uma dessas ferramentas para rodar para surgirem perguntas que o termo “automático” convenientemente deixa sem resposta. E se a palavra-chave for muito específica, a busca orgânica não retornar nada e a biblioteca comercial também estiver vazia? O pipeline deve parar e informar “sem evidências” ou mandar um briefing vazio para gerar um vídeo que ninguém validou? E se, no meio do processo, um canal estiver fora da cobertura da sua conta e os dados não voltarem? Isso é “sem resultado” ou “nem chegou a ser consultado”? São situações que exigem reações opostas, mas a maioria das soluções de um clique mostra o mesmo carregador girando para ambas.
Um pipeline criativo que dá para operar de verdade, e não apenas demonstrar, não se sustenta pelo botão “gerar” no final. Ele se sustenta por deixar claro o estado de cada etapa. É isso que define se a operação aguenta produção e se você consegue descobrir onde algo falhou quando, uma vez, nada saiu.
Primeiro, o escopo. As etapas de pesquisa deste pipeline consultam a biblioteca pública de anúncios e o creative center de cada plataforma, com login na sua própria conta e usando dados que a plataforma disponibiliza a todos os anunciantes. Não há assinaturas nem mecanismos de contorno. O foco aqui é transformar esses dados públicos em decisões e ativos que você pode colocar no ar, não explicar como obtê-los.
Antes de automatizar, monte a estrutura das cinco etapas
Transformar uma palavra-chave em um vídeo de anúncio exige cinco etapas em sequência. Não são “passos” soltos: cada uma consome a saída da anterior e entrega insumos para a próxima.
Descoberta de demanda. Parta do termo de busca do mercado, pesquise conteúdo orgânico e verifique se o tema realmente desperta interesse entre usuários. A saída é um sinal de conteúdo orgânico.
Validação comercial. Avalie dois sinais comerciais. O primeiro é a oportunidade da palavra-chave: volume de busca, concorrência e dados do lado do investimento. O segundo são os Top Ads com bom desempenho no creative center. Ambos receberam investimento e foram validados pelo mercado, o que os diferencia de conteúdo orgânico.
Matching de criadores. Encontre, na biblioteca de influenciadores, criadores que tenham aderência ao tema e ao mercado.
Briefing criativo. Reúna as evidências qualificadas das três etapas anteriores em uma especificação estruturada, pronta para alimentar um modelo de geração. É aqui que se definem a estrutura narrativa, o formato do hook e o mercado-alvo.
Geração. Envie o briefing para um modelo de geração de vídeo e produza um anúncio vertical nativo em 9:16.
O ponto de maior peso é a quarta etapa. As três primeiras coletam evidências; a quinta consome dinheiro; e o briefing é o lugar em que a evidência se transforma em decisão. Se a coleta for descuidada nas três primeiras, o briefing decide com base em ruído e gera um vídeo construído sobre ruído. Isso não aparece no carregador. Só fica visível quando o status de cada etapa está exposto.
Cada uma das três primeiras etapas renderia seu próprio artigo. Como interpretar uma curva de retenção segundo a segundo, como transformar oportunidade de palavra-chave em um único número de orçamento e como cruzar a biblioteca de influenciadores com a biblioteca de ativos, em vez de escolher pessoas pelo número de seguidores são temas de outros três textos. Este trata das questões extras que só aparecem quando você conecta tudo em uma linha.
Seis status por etapa: por que “falhou” precisa virar quatro casos diferentes
Esta é a parte mais importante do artigo.
A maioria dos pipelines dá a cada etapa dois desfechos: sucesso ou falha. Isso até funciona com uma ou duas etapas. Com cinco, desmorona, porque “falhou” mistura quatro situações que exigem respostas completamente diferentes.
Neste fluxo, o resultado de cada etapa cai em um de seis status:
completed: executou, encontrou um resultado qualificado e pode seguir adiante.empty: executou, o canal estava disponível, mas não retornou nenhum resultado qualificado. A busca aconteceu e não encontrou nada.skipped: você mesmo desativou a etapa ao definir a cota como 0, portanto ela nunca foi executada.unavailable: a etapa deveria executar, mas não conseguiu. O canal está fora da cobertura da sua conta — por exemplo, a oportunidade de palavra-chave pode abranger apenas alguns idiomas de mercado — ou uma dependência estava temporariamente indisponível.blocked: as evidências anteriores não são suficientes e um gate a interrompeu de propósito. Ela não falhou sozinha; alguma camada acima não forneceu os insumos necessários.ready: estado intermediário exclusivo da geração. O preflight foi aprovado, mas você ainda não mandou submeter. O vídeo pode ser produzido e está aguardando seu comando.
Não se trata apenas de ter seis nomes. No instante em que empty, skipped, unavailable e blocked viram um único “falhou”, o pipeline deixa de ser operável. Os quatro significam “não houve vídeo desta vez”, mas cada um pede uma ação diferente:
emptyé um problema de dados. O mercado pode não ter volume, ou a palavra-chave foi específica demais. A ação é trocar o termo ou flexibilizar o limiar, sem mexer em uma linha de código.skippedé uma decisão sua. Não há ação a tomar, mas ele precisa continuar separado deempty; caso contrário, você perderá meio dia depurando uma etapa que nunca foi ativada.unavailableé um problema de canal ou configuração. Verifique a cobertura da conta ou tente de novo, em vez de mexer na palavra-chave.blockedé um problema anterior no fluxo. Esta camada está bem; alguma etapa prévia voltou vazia. A ação é procurar a etapa marcada comoempty, não tentar forçar a camada bloqueada.
Um único “falhou” opaco fecha as quatro trilhas de diagnóstico e deixa tudo na base da tentativa. É por isso que um pipeline que entrega um resultado, mas não mostra status, não se sustenta por muito tempo. Sempre que algo quebrar, você terá de reproduzir todo o processo para descobrir o que aconteceu.
Funil de evidências: sinal orgânico e sinal comercial não se somam
A descoberta de demanda não termina quando você “encontra alguns resultados”. Os dados brutos passam por um funil que contabiliza cada camada: quantos retornaram, quantos estavam fora da janela de tempo, quantos estavam no idioma errado, quantos fugiam do tema, quantos tinham volume de visualizações baixo demais para formar uma amostra e quantos de fato se qualificaram. Quando essa etapa retorna empty, o funil mostra em qual camada a evidência se perdeu. Não encontrar nada, encontrar bastante conteúdo mas todo vencido, ou ter conteúdo sem nenhum item que atinja o mínimo da amostra são três tipos diferentes de vazio — e exigem três próximos passos diferentes. Sem esse funil, empty é só um array vazio, e você nem sabe como ele chegou àquele estado.
Mais importante que contar é uma regra: sinais de conteúdo orgânico e sinais comerciais devem ser contados separadamente, jamais somados em um único “score de evidência”. Um Top Ad é um ativo no qual alguém investiu dinheiro real e que a plataforma classificou como performante. Dez vídeos orgânicos, por mais quentes que estejam, significam apenas que as pessoas estão dispostas a assistir gratuitamente. Uma soma ponderada permite que dez vídeos orgânicos superem um Top Ad pelo volume, embora esse Top Ad tenha muito mais valor comercial. O caminho é criar os grupos primeiro e ranquear depois. Avalie primeiro os sinais comerciais; se não existirem, recorra a conteúdo orgânico qualificado; e só então a criadores, caso não haja mais nada. As camadas devem ser ordenadas por credibilidade, não por quantidade.
A mesma regra vale para um único vídeo. Ao avaliar uma peça de conteúdo orgânico, curtidas mais comentários formam um tipo de sinal; compartilhamentos mais salvamentos, outro. Compartilhamentos e salvamentos são ações mais próximas da intenção comercial — sinais de “vale guardar, vale repassar” — e devem pesar mais que o engajamento simples no ranking. O volume de engajamento mostra que o conteúdo é assistível. Compartilhamentos e salvamentos indicam que ele talvez consiga mover produto. Mesmo no mesmo vídeo, são leituras diferentes.
(Como observação: “tratar correlação como causa e frequência como eficácia” é o erro que um modelo mais gosta de cometer na etapa de atribuição. Por isso, o prompt precisa forçá-lo a apresentar um contraexemplo. É a mesma disciplina de prompt usada para fazer o modelo continuar questionando um padrão que acabou de identificar no artigo sobre fingerprinting. Lá, o assunto é a seção de contraprovas em engenharia reversa. Aqui, é o contraexemplo na atribuição de anúncios. O mecanismo é o mesmo.)
“Pronto” para a plataforma não é “pronto” pelas evidências
Há uma decisão imediatamente antes da geração que parece fácil de unificar, mas não deve ser: “a plataforma consegue produzir um vídeo?” e “este vídeo específico deveria ser produzido?” são gates distintos.
O primeiro é o preflight de plataforma: o serviço de geração está disponível, há cota suficiente, o prompt é permitido? São verificações de infraestrutura. O segundo é o preflight de evidências da pesquisa: há pelo menos uma evidência primária qualificada no material coletado? É uma verificação de conteúdo. Os dois gates precisam ser aprovados antes da submissão. Se qualquer um falhar, o status é blocked.
A tentação de unificá-los é forte, já que ambos parecem responder à pergunta “podemos gerar?”. Faça isso e você chega ao tipo de falha mais caro: a plataforma está funcionando, há cota de sobra, o prompt é permitido, o preflight “passa” e, ainda assim, o sistema gera um vídeo baseado em zero evidência. Isso custa muito mais do que uma falha limpa, porque parece sucesso e você pode até investir nele. Ao separar os dois gates, esse caso fica seguramente em blocked e deixa claro que falta evidência, não cota. “Consegue produzir” nunca é igual a “deve produzir”; colocar as duas condições na mesma regra é o erro de design mais comum em pipelines desse tipo.
O briefing lê apenas evidência qualificada: copy de concorrente serve à pesquisa, não ao prompt
O briefing criativo é o ponto em que mais se exige do modelo de texto em toda a linha — e também onde a disciplina de dessensibilização pode mais facilmente sair dos trilhos.
O trabalho dele é extrair a estrutura validada das evidências qualificadas. Qual hook se repete entre os Top Ads? Em qual segundo a curva de retenção atinge o pico? Qual esqueleto os conteúdos orgânicos vencedores usaram entre “apresente o problema, demonstre o resultado, chamada para ação”? Em seguida, ele sintetiza essas estruturas em uma especificação de geração.
Há uma restrição rígida: o texto bruto de ativos de concorrentes serve apenas para identificar estrutura e nunca entra no prompt final de geração. Nomes de marcas, quantidade de fornecedores, cotas, preços e promessas de desempenho presentes no hook de um concorrente são afirmações específicas daquele concorrente, não uma estrutura. Eles permanecem intactos nos resultados de pesquisa, onde você pode revisá-los e rastrear qual ativo inspirou uma ideia, mas são excluídos explicitamente na montagem do prompt de geração. O que o modelo recebe é “crie um vídeo para meu próprio produto com este esqueleto narrativo e este formato de hook”, e não “copie esta frase”.
Por que vale o esforço: se você despeja a copy de concorrentes diretamente no prompt de geração, o vídeo pode sair carregando a marca alheia e a promessa de preço de outra empresa — no melhor dos casos, um ativo com risco jurídico; no pior, plágio explícito. Alimente o modelo apenas com a estrutura, removendo as afirmações, e o resultado reutiliza uma estrutura validada enquanto conta a sua própria história. Mantenha a pesquisa fiel e a entrada de geração limpa. É o mesmo lote de evidências, mas com dois usos e duas leituras diferentes.
“Extraia estruturas realmente validadas de um conjunto de evidências, exclua ativamente as afirmações de concorrentes e apresente um contraexemplo para cada ‘estrutura eficaz’” testa exatamente as mesmas capacidades: raciocínio forte e disposição para contestar a própria conclusão. É a mesma divisão de trabalho de o que um modelo deve e não deve fazer em engenharia reversa: o modelo é bom em gerar hipóteses e fraco em verificar fatos; a verificação precisa voltar para as suas evidências e seus testes.
O modelo certo para cada etapa
O modelo de texto deste fluxo não executa uma única função. Ele assume quatro trabalhos com requisitos muito diferentes, além da geração de imagem e vídeo no final. Usar um único modelo para tudo significa gastar demais nas etapas em lote ou perder precisão no briefing.
Etapa | Capacidade necessária | Escolha | model id |
|---|---|---|---|
Ler todo o pacote de evidências em lote, incluindo dezenas de ativos e curvas segundo a segundo | Contexto longo | Kimi K3 |
|
Extrair campos estruturados por ativo, como hook, tipo de promessa e recurso de urgência | Baixo custo e centenas de chamadas com alta concorrência | Claude Sonnet 5 |
|
Escrever o briefing: escolher estruturas, excluir afirmações de concorrentes e apresentar contraexemplos | Raciocínio forte e disposição para questionar a si mesmo | Claude Opus 5 |
|
Atribuição de etapa: quando uma etapa estiver vazia ou bloqueada, ler o funil e indicar em qual camada ela perdeu evidências | Raciocínio intermediário, com explicações apoiadas nos números | GPT-5.6 Sol |
|
Gerar o vídeo, um anúncio vertical em 9:16 | Geração de imagem e vídeo | Geração no site | veja |
A camada do briefing é a que vale testar isoladamente. É a única etapa em que trocar de modelo muda o resultado de forma visível. O teste é específico e é o único ponto deste artigo em que você precisa rodar algo por conta própria:
Em uma execução de pipeline que tenha sido concluída de verdade, pegue um pacote de evidências qualificadas: hooks de Top Ads, destaques de curvas de retenção, perfis de criadores, oportunidade da palavra-chave e alguns conteúdos orgânicos vencedores.
Com o mesmo prompt de briefing — regras: usar apenas a estrutura dos ativos; excluir explicitamente nomes de marcas, preços, cotas e promessas de desempenho; apresentar uma hipótese de contraexemplo para cada “estrutura eficaz” — envie-o separadamente para
claude-opus-5egpt-5.6-sol.Observe apenas duas coisas: ele vazou as afirmações específicas do concorrente no prompt de geração? Vazamento significa falha. E, quando afirmou que “esta estrutura funciona”, trouxe um contraexemplo ou tratou frequência como eficácia?
O desempenho nesses dois pontos é seu critério de escolha. Ele define diretamente se o vídeo gerado “copiou o roteiro de um concorrente” ou “reutilizou uma estrutura validada”.
Uma rodada já mostra a diferença com mais clareza do que qualquer benchmark. A camada de extração de campos em lote, com Sonnet, quase não exige seleção: qualquer modelo que execute o trabalho serve. Já a camada de contexto longo, com Kimi, é escolhida para evitar que você tenha de implementar seu próprio retrieval segmentado.
Na geração, submeta, aguarde o estado terminal e preserve o task_id em caso de timeout
Geração não é “fazer uma chamada e receber um vídeo”. Gerar vídeo é um trabalho demorado. Você submete, ele entra em uma fila e precisa consultar o status até um estado terminal para saber o resultado. Esta etapa tem três finais, e eles devem permanecer separados:
Retorno logo após a submissão. O job entra na fila, você recebe um
task_ide o statusprocessing. Em vez de esperar, pode seguir com outra tarefa.Aguardar o estado terminal. Consulte o status até chegar a
completedoufailed. Esse é o resultado que você buscava.Timeout no limite. Você definiu um orçamento de tempo para o polling, mas ele acabou antes de chegar a um resultado. Aqui, não descarte a tarefa como falha. O correto é preservar o
task_id, marcá-la como “timeout, não concluída” e permitir retomar a espera por esse ID mais tarde, em vez de submeter novamente. Reenviar significa pagar uma segunda vez.
O terceiro caso é o mais fácil de errar. Muitas implementações equiparam “o polling expirou” a “a tarefa falhou”. Assim, um job que ainda está renderizando, apenas mais lento que o esperado, é descartado. Distinguir “a tarefa falhou” de “eu cansei de esperar” é o núcleo desta etapa. O primeiro é um estado terminal. O segundo apenas significa que, desta vez, você parou de esperar. A tarefa continua lá, o ID continua lá: retome-a.
Não submeta quando tudo estiver vazio: saber a hora de não rodar é o mais valioso
Reúna todas as restrições anteriores e chega à regra mais contraintuitiva — e mais valiosa — deste pipeline: se todas as evidências estiverem vazias, não submeta a geração.
Descoberta de demanda empty, validação comercial empty, matching de criadores empty. Não há uma única evidência primária qualificada nos três caminhos. O briefing fica blocked, o gate de prontidão de pesquisa no preflight de geração falha, toda a linha para em blocked e nenhum frame é gerado.
Isso parece “não fazer nada”, mas é a etapa mais difícil de acertar e a que mais economiza dinheiro. Um pipeline que só sabe avançar, diante de evidências totalmente vazias, recorre a um briefing genérico, gera um vídeo que não encontra público e reporta “sucesso”. Parece que ele funcionou. Na prática, gastou o custo de uma geração com zero informação e entregou um falso sinal de sucesso.
Metade do valor de um pipeline está na capacidade de gerar. A outra metade está em saber quando não deve gerar. A primeira é capacidade; a segunda, disciplina. E a condição para essa disciplina são os seis status apresentados antes. Sem separar empty de blocked, não existe um sinal limpo de “tudo vazio” para fundamentar a decisão de “não submeter”.
Uma única chave para análise e geração
O desenho do pipeline está pronto. O que sobra é uma fricção puramente de engenharia — e é justamente onde a maioria das pessoas trava.
Os modelos necessários para essa linha vêm de dois tipos de fornecedores. As camadas de texto — ler evidências, extrair campos, escrever o briefing e fazer atribuição — vêm de vários fornecedores, enquanto a camada de geração é um serviço separado de imagem e vídeo. Você pode integrar um SDK, um esquema de autenticação e um formato de erros para cada camada ou, como a maioria das pessoas, usar um só modelo para tudo, gastando demais nas etapas em lote e perdendo precisão no briefing, para então integrar uma plataforma de vídeo separada. Para economizar trabalho de integração, você reduz a qualidade de todo o pipeline.
AIReiter remove essa camada. Uma chave, uma interface compatível com OpenAI e todas as quatro camadas de texto por trás dela; basta trocar o campo model no corpo da requisição. A geração de imagem e vídeo está no mesmo site e usa a mesma chave, então, assim que o briefing estiver pronto, você pode tentar gerá-lo diretamente em /chat.
# Write the brief: the reasoning tier
curl https://aireiter.com/api/v1/chat/completions \
-H "Authorization: Bearer $AIREITER_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5",
"messages": [{"role": "user", "content": "<brief prompt + qualified evidence bundle>"}]
}'
# Extract fields in bulk: change the model field, leave the rest
# "model": "claude-sonnet-5"
# Stage attribution: "model": "gpt-5.6-sol"
# Read long evidence at once: "model": "kimi-k3"
Se você já usa o SDK da OpenAI, aponte base_url para https://aireiter.com/api/v1 e não mude mais nada. No SDK da Anthropic, use POST /api/v1/messages com a mesma chave.
O preço se encaixa na estrutura de custo deste pipeline. A etapa com mais chamadas é a extração de campos em lote: dezenas a centenas de ativos, uma chamada por item, concentrando a maior parte do custo do lado de texto. É exatamente aí que entram os 30% de desconto em Claude: Sonnet executa o lote, Opus itera o briefing e ambas são camadas Claude. A atribuição roda em GPT-5.6 pela metade do preço. Evidências longas rodam em Kimi K3 com a mesma chave. A geração é uma linha de custo separada, cobrada por execução, mas só dispara quando o gate de evidências é aprovado e um vídeo realmente deve ser produzido. A própria regra de “não submeter quando tudo estiver vazio” economiza custo de geração.
Experimente sem se cadastrar: envie manualmente um pacote de evidências qualificadas para o prompt de briefing e veja se ele vaza as marcas e os preços do concorrente para a entrada de geração; depois, quando estiver consistente, transforme isso em script.
Para fechar
Em um fluxo de “palavra-chave ao anúncio finalizado”, a engenharia de verdade não está no “anúncio finalizado”. Ela está no trecho do meio, que transforma dados públicos em evidências qualificadas e, depois, em um briefing limpo.
A operação desse trecho depende de três coisas. O resultado de cada etapa precisa cair em seis status, não apenas em “sucesso ou falha”, para que empty, skipped, unavailable e blocked indiquem cada um um próximo passo claro. As evidências precisam ser agrupadas e hierarquizadas, não somadas, para que um sinal forte não seja abafado pelo volume de sinais fracos. E “consegue produzir” deve ficar separado de “deve produzir” em dois gates, para que evidências totalmente vazias interrompam o processo com segurança antes da geração.
O modelo é uma ferramenta que trabalha nesta linha, não quem a conduz. Ele lê evidências, extrai campos, escreve o briefing, explica a atribuição e, no fim, um modelo de geração produz o vídeo. O que decide “devemos continuar?” são sempre os status e os gates, não a confiança do modelo. Estruture esse desenho, conecte as quatro camadas de texto e a geração no site com uma única chave, e o pipeline poderá realmente ir da palavra-chave ao anúncio finalizado.