Pular para o conteúdo principal

Crie anúncios a partir do Claude

Seu agente escreve o briefing, gera o anúncio na sua própria conta e devolve o arquivo

Duas formas de entrar: instale o skill pack de código aberto no seu terminal, ou adicione o conector dentro do claude.ai.

3 dias por 1 dólar em todos os modelos, no Claude e no Cursor

O skill pack para Claude Code e Cursor

Uma pasta de skills que seu agente lê antes de trabalhar. Ele escreve o briefing, chama a Novoads na sua conta e traz o render pronto de volta para a sessão.

Cole isto no Claude Code ou no Cursor

Abra uma pasta vazia e cole a linha abaixo. Seu agente clona o pack, roda o setup e para no único passo que só você pode fazer: colar sua API key da Novoads.

https://github.com/novoads/agent-skills help me set this up

Depois descreva o anúncio que você quer com suas próprias palavras e entregue a foto do seu produto.

Prefere o terminal?

O mesmo setup na mão. O setup pede a API key da Novoads que você cria em Configurações, aba Developer, e confere a conexão antes de terminar.

git clone https://github.com/novoads/agent-skills.git
cd agent-skills
./scripts/setup.sh

Só quer ler as skills primeiro? npx skills add https://novoads.ai traz os arquivos das skills sozinhos, para dar uma olhada. O pack completo, com os scripts e a sua key, continua vindo de um dos dois caminhos acima.

  • Código aberto. Cada skill, prompt e verificação fica em um repositório público, legível antes de você rodar qualquer coisa.

  • Claude Code e Cursor. Um pack só, os mesmos comandos, no terminal em que seu time já trabalha.

  • Cotado antes de rodar. Cada render é cotado por uma estimativa ao vivo que lê seu saldo primeiro, então nada é gasto de surpresa.

novoads/agent-skillsVer no GitHub

Ou conecte a Novoads dentro do claude.ai

A segunda forma de entrar. Você adiciona uma URL como conector e entra por OAuth, então esse caminho não emite nenhuma API key.

  1. 1

    Copie a URL do conector

    Você vai colar isso no Claude no próximo passo.

    https://novoads.ai/api/mcp
  2. 2

    Abra os conectores do Claude

    Configurações → Conectores → Adicionar conector personalizado, e cole ali.

  3. 3

    Faça login e comece

    OAuth, sem API key. Aprove duas permissões e peça um anúncio.

Linha do tempo, legendas e clonagem de voz ficam no app

O que o Claude faz com isso

Não é um diagrama do protocolo. São as chamadas que uma execução real faz, em ordem, ao lado do que elas produziram.

Você

Esta é a nossa camiseta preta. Faça um anúncio vertical em espanhol, alguém em casa falando para a câmera. Me diga quanto custa antes de gastar qualquer coisa.

camiseta-preta.jpg

Claude

Primeiro eu coto.

estimate_cost

video6ses

3.4 créditos, comparados com o seu saldo. Não cobra nada nem cria nenhum job.

generate_video

Un joven en casa, luz natural de ventana, sostiene la cámara con una mano y habla directo al lente sobre su camiseta negra con el logo circular.

Seedance 2.09:166ses

Devolve um jobId na hora. O render dura mais que a chamada, então ele não segura a conexão aberta.

Claude

Aqui está. Vertical, com áudio nativo em espanhol, pronto para Reels ou TikTok.

Resultado

Um anúncio real feito com a Novoads. A chamada ao lado é o contrato real da ferramenta: esses nomes de parâmetros e esses limites são exatamente o que o servidor aceita.

9 ferramentas, e o que cada uma custa

4 gastam créditos. O resto lê, cota e informa, que é o que torna seguro iniciar uma cadeia rodando sem ninguém olhando.

Preparar

Coloque o seu material real dentro e leia o que já funciona no material de outro. Ler um anúncio cobra uma taxa fixa; o envio não.

upload_assetNão gasta créditos

Devolve uma URL pré-assinada para uma imagem ou vídeo, mais o assetId que o identifica em cada chamada seguinte.

analyze_adGasta créditos

Transforma um anúncio enviado em uma leitura estruturada: resumo, limite do hook, beats, texto em tela, casting e zonas do layout.

list_caption_presetsNão gasta créditos

Os estilos de legenda que o generate_captions consegue gravar no vídeo, cada um com o seu nível de preço. Só lê, e chamá-lo não custa nada.

Criar

Todas as chamadas deste grupo cobram. Todas validam o prompt antes de mover um crédito.

generate_videoGasta créditos

Envia um render de vídeo e devolve um jobId na hora. O prompt é validado antes de qualquer crédito ser cobrado.

generate_imageGasta créditos

Gera uma imagem de anúncio estático e devolve as URLs e um jobId.

generate_captionsGasta créditos

Grava legendas em um vídeo pronto, no estilo que você escolher. Funciona em um clipe gerado aqui ou em um que você subiu.

Cotar e acompanhar

Cote antes de se comprometer e depois acompanhe o job. Nenhuma delas cobra para ser chamada.

estimate_costNão gasta créditos

Quanto uma geração custaria, o seu saldo e se ele cobre. Não gasta nada e não cria job.

get_generationNão gasta créditos

Status, progresso e, quando termina, uma URL de saída com validade limitada para um job.

list_generationsNão gasta créditos

Seus jobs recentes, do mais novo para o mais antigo. O caminho de recuperação para quando o que se perdeu foi a resposta que trazia o jobId.

Modelo de vídeo
Seedance 2.0 por padrão
Duração
4 a 30s no Seedance 2.5, até 13 créditos
Modelo de imagem
3 modelos, 0.3–1 créditos cada
Formatos
6 proporções, 11 idiomas

A chamada gratuita confere seu prompt antes de você gastar

Cada regra abaixo foi medida em um render que voltou errado, não deduzida de uma ficha do modelo. O `estimate_cost` roda todas de graça e devolve o que encontrou. É conselho: nada aqui recusa uma geração nem muda o preço.

Prompts de vídeo: 8 verificações

O que faltava num prompt que desperdiçou um render.

  • banned_polishEstraga o render

    Rejected: polish words (cinematic, cinematográfico, perfecto, 8k, masterpiece). A valid prompt names the light source, the surface and the flaw.

  • back_referenceEstraga o render

    Rejected: back-references to an earlier shot's actor ("the same woman", "la misma mujer"). Seedance re-casts on every cut, so the actor tag is repeated verbatim.

  • missing_actor_descriptorEstraga o render

    Required in every shot: an actor descriptor. Established once in 37-53 chars (age band, gender, wardrobe), then repeated as an 11-30 char tag, word for word.

  • chained_motionEstraga o render

    Rejected: chained motion ("then", "y luego", "em seguida"). One action per shot; a second beat renders as a smear.

  • bullety_promptEstraga o render

    Rejected: bullets and field:value pairs. Seedance reads flowing prose; a labelled list renders as literal on-screen text.

  • label_without_holdCosmético

    A visible label, package or screen needs the labelHold clause, or its printed text comes back garbled.

  • no_spoken_lineEstraga o render

    Required: the spoken line in double quotes, or a statement that the shot is silent / b-roll / voiceover. A silent talking head bills in full.

  • no_aspect_ratioCosmético

    The aspect ratio belongs at the end. Vertical 9:16 is the format for Reels, TikTok and Stories.

Prompts de imagem: 3 verificações

A mesma ideia, do lado das imagens.

  • banned_polishEstraga o render

    Rejected: polish words (cinematic, cinematográfico, perfecto, 8k, masterpiece). A valid prompt names the light source, the surface and the flaw.

  • blank_labelEstraga o render

    Rejected: unbranded and blank-label products. A valid prompt names the real brand, with its photo passed via upload_asset + referenceAssetIds.

  • unfilled_placeholderEstraga o render

    Rejected: unfilled [PLACEHOLDER] tokens left over from a template.

O texto acima é exatamente o que volta em `warnings`, em inglês, qualquer que seja o idioma do seu anúncio. Gerar nunca roda essas regras: só o `estimate_cost`, e só para te avisar.

O que construímos em cima

Quatro skills que usamos internamente, cada uma uma cadeia sobre as mesmas sete ferramentas.

novoads-pixar-ad

Entra um produto, sai um anúncio 3D animado com estilo. Imagem e falas a partir de uma única chamada de geração.

estimate_costgenerate_imagegenerate_video
clone-hook

Lê o hook do vídeo de um concorrente até o sinal que o encerra e depois refaz esse hook com o seu produto e o seu ator.

upload_assetanalyze_adgenerate_videoget_generation
clone-static-ad

Lê as zonas de layout e a hierarquia de texto de um anúncio estático e refaz essa estrutura em volta do seu produto.

upload_assetanalyze_adgenerate_imageget_generation
spy-competitor-ads

Traz o que um concorrente está rodando agora e reporta o padrão por trás, não só os arquivos.

estimate_costfind_competitor_ads

São instruções, não software. O critério vive na skill; o render acontece aqui, na sua conta. Várias são de código aberto no GitHub, então você pode ler a pasta antes de confiar nela.

Perguntas que um desenvolvedor realmente tem

Se a resposta que você precisa não estiver aqui, pergunte direto ao Pablo. Ele responde.

Fale com a gente no WhatsApp

Por MCP, o padrão aberto para dar a um agente acesso a ferramentas externas. Você adiciona uma URL como conector e faz login uma vez. A partir daí o Claude alcança 9 ferramentas da Novoads dentro de qualquer conversa, e os resultados voltam no chat em vez de num painel que você precisa ir conferir.

Qualquer um que fale MCP sobre Streamable HTTP com OAuth. Claude e Claude Code são os dois que usamos todo dia, e as instruções acima são as que rodamos aqui. Outros clientes usam a mesma URL; a única coisa que muda é a tela onde você cola.

Depende de por onde você entrou, e essa é a diferença mais clara entre os dois caminhos. O conector autentica você por OAuth na conta Novoads que você já tem e não emite key nenhuma: as permissões que ele pede são mcp, offline_access, e você pode revogá-las pelo seu cliente quando quiser. O skill pack fala com a nossa API REST, então ele precisa de uma key, e o setup pede aquela que você cria em Configurações, aba Developer.

Créditos do seu plano, na mesma tabela que o app cobra. O custo depende do modelo além da duração: um vídeo no Seedance 2.0 na duração padrão são 3 créditos, e o render mais longo disponível — 30 segundos no Seedance 2.5 — são 13. Imagens são 0.3–1 créditos cada. estimate_cost cota o valor exato e lê o seu saldo antes de qualquer cobrança, e chamá-la não custa nada.

generate_video devolve um jobId na hora em vez de segurar a conexão aberta, porque um render dura mais que uma chamada. Consulte get_generation para o status e a URL de saída. Se o que se perdeu foi a resposta que trazia o jobId, list_generations acha o job mesmo assim, inclusive se ele já terminou e foi cobrado.

O idioma falado do anúncio é declarado em cada chamada e 11 são aceitos. Ele é declarado em vez de adivinhado pelo texto, então um anúncio em espanhol nunca acaba reescrito em inglês só para passar em uma regra.

Pode. list_generations devolve seus jobs recentes com uma URL de saída de validade limitada, e upload_asset recebe qualquer imagem ou vídeo de volta como um assetId que você passa para a chamada seguinte.

Os erros voltam estruturados, com um código e uma mensagem escrita para uma pessoa, porque ficar sem créditos é um próximo passo diferente de o provedor estar fora do ar. Se as ferramentas nunca aparecem no Claude Code, quase sempre é o reinício do passo 3. Qualquer outra coisa, fale com a gente que a gente olha.
Pablo, co-fundador da Novoads
Pablo, co-fundador · Estou aqui se precisar de algo

Seu primeiro anúncio, hoje.

Teste 3 dias por $1. Cancele quando quiser. Sem ligações de vendas.

Feito na LatAm · Suporte por WhatsApp · Direitos comerciais incluídos.

Prefere perguntar primeiro? Converse com Pablo no WhatsApp