Saltar al contenido principal

Crea anuncios desde Claude

Tu agente escribe el brief, genera el anuncio en tu propia cuenta y te devuelve el archivo

Dos formas de entrar: instala el skill pack de código abierto en tu terminal, o agrega el conector dentro de claude.ai.

3 días por 1 dólar en todos los modelos, en Claude y Cursor

El skill pack para Claude Code y Cursor

Una carpeta de skills que tu agente lee antes de trabajar. Escribe el brief, llama a Novoads en tu cuenta y trae el render terminado a la sesión.

Pega esto en Claude Code o Cursor

Abre una carpeta vacía y pega la línea de abajo. Tu agente clona el pack, ejecuta el setup y se detiene en el único paso que solo tú puedes hacer: pegar tu API key de Novoads.

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

Después describe el anuncio que quieres con tus propias palabras y entrega la foto de tu producto.

¿Prefieres la terminal?

El mismo setup a mano. El setup te pide la API key de Novoads que creas en Configuración, pestaña Developer, y verifica la conexión antes de terminar.

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

¿Solo quieres leer las skills primero? npx skills add https://novoads.ai trae los archivos de las skills por su cuenta, para mirarlos. El pack completo, con sus scripts y tu key, sigue viniendo de uno de los dos caminos de arriba.

  • Código abierto. Cada skill, prompt y verificación vive en un repositorio público, legible antes de que ejecutes nada.

  • Claude Code y Cursor. Un solo pack, los mismos comandos, en la terminal donde tu equipo ya trabaja.

  • Cotizado antes de ejecutarse. Cada render se cotiza con un estimado en vivo que primero lee tu saldo, así nada se gasta por sorpresa.

novoads/agent-skillsVer en GitHub

O conecta Novoads dentro de claude.ai

La segunda forma de entrar. Agregas una URL como conector y entras con OAuth, así que este camino no emite ninguna API key.

  1. 1

    Copia la URL del conector

    La vas a pegar en Claude en el paso siguiente.

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

    Abre los conectores de Claude

    Configuración → Conectores → Agregar conector personalizado, y pégala ahí.

  3. 3

    Inicia sesión y empieza

    OAuth, sin API key. Aprueba dos permisos y pide un anuncio.

La línea de tiempo, los subtítulos y la clonación de voz viven en la app

Qué hace Claude con esto

No es un diagrama del protocolo. Son las llamadas que hace una corrida real, en orden, junto a lo que produjeron.

Esta es nuestra camiseta negra. Haz un anuncio vertical en español, alguien en su casa hablándole a la cámara. Dime cuánto cuesta antes de gastar nada.

camiseta-negra.jpg

Claude

Primero lo cotizo.

estimate_cost

video6ses

3.4 créditos, contrastados con tu saldo. No cobra nada ni crea ningún trabajo.

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

Devuelve un jobId de inmediato. El render dura más que la llamada, así que no deja la conexión abierta.

Claude

Aquí está. Vertical, con audio nativo en español, listo para Reels o TikTok.

Resultado

Un anuncio real hecho con Novoads. La llamada de al lado es el contrato real de la herramienta: esos nombres de parámetros y esos límites son exactamente lo que acepta el servidor.

9 herramientas, y lo que cuesta cada una

4 gastan créditos. El resto lee, cotiza e informa, que es lo que hace seguro arrancar una cadena que corre sin que nadie mire.

Preparar

Mete tu material real y lee lo que ya está funcionando en el de otro. Leer un anuncio cobra una tarifa plana; subirlo no.

upload_assetNo gasta créditos

Devuelve una URL prefirmada para una imagen o un video, más el assetId que lo identifica en cada llamada posterior.

analyze_adGasta créditos

Convierte un anuncio subido en una lectura estructurada: resumen, límite del hook, beats, texto en pantalla, casting y zonas del layout.

list_caption_presetsNo gasta créditos

Los estilos de subtítulos que generate_captions puede incrustar, cada uno con su nivel de precio. Solo lee, y llamarlo no cuesta nada.

Crear

Todas las llamadas de este grupo cobran. Todas validan el prompt antes de mover un crédito.

generate_videoGasta créditos

Envía un render de video y devuelve un jobId de inmediato. El prompt se valida antes de cobrar ningún crédito.

generate_imageGasta créditos

Genera una imagen de anuncio estático y devuelve las URLs y un jobId.

generate_captionsGasta créditos

Incrusta subtítulos en un video terminado, en el estilo que elijas. Funciona sobre un clip generado aquí o sobre uno que subiste.

Cotizar y seguir

Cotiza antes de comprometerte y después sigue el trabajo. Ninguna de estas cobra por llamarla.

estimate_costNo gasta créditos

Cuánto costaría una generación, tu saldo y si alcanza. No gasta nada ni crea ningún trabajo.

get_generationNo gasta créditos

Estado, progreso y, cuando termina, una URL de salida con vigencia limitada para un trabajo.

list_generationsNo gasta créditos

Tus trabajos recientes, del más nuevo al más viejo. La vía de recuperación cuando lo que se perdió fue la respuesta que traía el jobId.

Modelo de video
Seedance 2.0 por defecto
Duración
4 a 30s en Seedance 2.5, hasta 13 créditos
Modelo de imagen
3 modelos, 0.3–1 créditos cada una
Formatos
6 relaciones de aspecto, 11 idiomas

La llamada gratis revisa tu prompt antes de que gastes

Cada regla de abajo se midió en un render que salió mal, no se dedujo de una ficha del modelo. `estimate_cost` las corre todas gratis y te devuelve lo que encontró. Son consejos: nada de esto rechaza una generación ni cambia el precio.

Prompts de video: 8 chequeos

Lo que le faltaba a un prompt que desperdició un render.

  • banned_polishArruina el render

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

  • back_referenceArruina el 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_descriptorArruina el 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_motionArruina el render

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

  • bullety_promptArruina el 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_lineArruina el 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 imagen: 3 chequeos

La misma idea, del lado de imagen.

  • banned_polishArruina el render

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

  • blank_labelArruina el render

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

  • unfilled_placeholderArruina el render

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

El texto de arriba es exactamente lo que vuelve en `warnings`, en inglés, sea cual sea el idioma de tu anuncio. Generar nunca corre estas reglas: solo `estimate_cost`, y solo para avisarte.

Lo que construimos encima

Cuatro skills que usamos internamente, cada una una cadena sobre las mismas siete herramientas.

novoads-pixar-ad

Entra un producto, sale un anuncio 3D animado con estilo. Imagen y diálogos hablados desde una sola llamada de generación.

estimate_costgenerate_imagegenerate_video
clone-hook

Lee el hook del video de un competidor hasta la señal que lo cierra, y después rearma ese hook con tu producto y tu actor.

upload_assetanalyze_adgenerate_videoget_generation
clone-static-ad

Lee las zonas del layout y la jerarquía del texto de un anuncio estático, y rearma esa estructura alrededor de tu producto.

upload_assetanalyze_adgenerate_imageget_generation
spy-competitor-ads

Trae lo que un competidor está corriendo ahora y reporta el patrón que hay detrás, no solo los archivos.

estimate_costfind_competitor_ads

Son instrucciones, no software. El criterio vive en la skill; el render pasa aquí, en tu cuenta. Varias son de código abierto en GitHub, así que puedes leer la carpeta antes de confiar en ella.

Preguntas que sí tiene un desarrollador

Si la respuesta que necesitas no está aquí, pregúntale directo a Pablo. Él contesta.

Escríbenos por WhatsApp

Por MCP, el estándar abierto para darle a un agente acceso a herramientas externas. Agregas una URL como conector e inicias sesión una vez. A partir de ahí Claude puede usar 9 herramientas de Novoads dentro de cualquier conversación, y los resultados vuelven en el chat en vez de en un panel que tengas que ir a revisar.

Cualquiera que hable MCP sobre Streamable HTTP con OAuth. Claude y Claude Code son los dos que usamos a diario, y las instrucciones de arriba son las que corremos nosotros mismos. Otros clientes toman la misma URL; lo único que cambia es la pantalla donde la pegas.

Depende de por dónde entraste, y es la diferencia más clara entre los dos caminos. El conector te autentica con OAuth contra la cuenta de Novoads que ya tienes y no emite ninguna key: los permisos que pide son mcp, offline_access, y puedes revocarlos desde tu cliente cuando quieras. El skill pack habla con nuestra API REST, así que sí necesita una key, y el setup te pide la que creas en Configuración, pestaña Developer.

Créditos de tu plan, con la misma tabla que cobra la app. Lo que cuesta depende del modelo además de la duración: un video en Seedance 2.0 con la duración por defecto son 3 créditos, y el render más largo disponible — 30 segundos en Seedance 2.5 — son 13. Las imágenes son 0.3–1 créditos cada una. estimate_cost cotiza la cifra exacta y lee tu saldo antes de que se cobre nada, y llamarla no cuesta.

generate_video devuelve un jobId de inmediato en vez de dejar la conexión abierta, porque un render dura más que una llamada. Consulta get_generation para el estado y la URL de salida. Si lo que se perdió fue la respuesta que traía el jobId, list_generations igual encuentra el trabajo, incluso si ya terminó y se cobró.

El idioma hablado del anuncio se declara en cada llamada y se aceptan 11. Se declara en vez de adivinarse del texto, así que un anuncio en español nunca termina reescrito en inglés solo para pasar una regla.

Sí. list_generations devuelve tus trabajos recientes con una URL de salida de vigencia limitada, y upload_asset vuelve a tomar cualquier imagen o video como un assetId que le puedes pasar a la siguiente llamada.

Los errores vuelven estructurados, con un código y un mensaje escrito para una persona, porque quedarse sin créditos es un paso siguiente distinto a que el proveedor esté caído. Si las herramientas nunca aparecen en Claude Code, casi siempre es el reinicio del paso 3. Cualquier otra cosa, escríbenos y la revisamos.
Pablo, co-fundador de Novoads
Pablo, co-fundador · Estoy aquí si necesitas algo

Tu primer anuncio, hoy.

Prueba 3 días por $1. Cancela cuando quieras. Sin llamadas de ventas.

Hecho en LatAm · Soporte por WhatsApp · Derechos comerciales incluidos.

¿Prefieres preguntar primero? Chatea con Pablo por WhatsApp