Copy de anuncios
Cada red publicitaria impone su propio límite de caracteres, y un titular que se corta a la mitad pierde el clic antes de que se lea la oferta. Este endpoint toma los datos de su producto y devuelve varias variantes listas para pegar, ya ajustadas al límite que usted indique, para que nada se recorte en la revisión final.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Pensado para quien redacta cincuenta grupos de anuncios por semana
Los especialistas en pauta que manejan campañas de búsqueda y redes sociales no necesitan inspiración, necesitan volumen: cinco ángulos de titular, tres largos de descripción, tonos distintos, todo antes del mediodía. Hacerlo a mano implica contar caracteres una y otra vez y reescribir el mismo beneficio de tres formas distintas. Este endpoint recibe la descripción del producto, la audiencia y el tono, y devuelve un conjunto de variantes ya medidas contra el límite indicado, listas para pasar directo al gestor de anuncios sin pasar por una hoja de cálculo de ajustes.
Qué envía y qué recibe
Una solicitud incluye el producto u oferta, la audiencia, un tono (directo, cercano, técnico, el que encaje con la marca) y los límites de caracteres para titular y descripción. La respuesta es un arreglo JSON de variantes, cada una ya dentro del límite, sin necesidad de recortarlas después. Como la tarea corre de forma asíncrona, recibe un task_id de inmediato y el copy terminado llega por webhook firmado, o se puede recuperar desde un enlace firmado válido por 24 horas.
Los límites de caracteres existen por una razón
Los formatos de anuncios en búsqueda y redes sociales adoptaron límites estrictos porque el espacio publicitario comparte pantalla con resultados orgánicos y otros anuncios; un titular más largo simplemente no se renderiza. Esos límites han cambiado con los años conforme las plataformas rediseñan sus interfaces, y por eso fijar un número en el código resulta frágil. Enviar el límite como parámetro en cada solicitud hace que su integración se adapte cuando una red cambia sus reglas, sin necesidad de un nuevo despliegue.
Dónde encaja dentro de un flujo automatizado
La mayoría de los equipos llaman este endpoint después de actualizar un feed de productos o al publicar una nueva página de aterrizaje, generando variantes frescas de forma automática en vez de esperar la cola de un redactor. Como el precio es una tarifa base pequeña más un cargo por variante, puede pedir diez variantes para una campaña de alto gasto o dos para una prueba rápida sin replantear el presupuesto. Una generación fallida nunca se cobra: la tarea reintenta internamente hasta tres veces, y si aun así no logra producir un resultado válido, recibe un error claro en vez de un cargo.
El control de calidad sigue en sus manos
La API devuelve opciones, no una decisión final, así que el flujo de trabajo se beneficia de una revisión humana antes de publicar, sobre todo en categorías reguladas o afirmaciones sensibles. Los resultados se eliminan al terminar el periodo de retención y nunca se usan para entrenar modelos, algo importante cuando el copy menciona precios no publicados o una campaña bajo embargo.
Qué puede hacer con ella
Campaña de búsqueda a gran escala
Un comprador de medios que administra cuarenta grupos de anuncios de producto solicita cinco variantes de titular por grupo en un solo lote, todas ajustadas al límite de la red de búsqueda.
Promoción de temporada contrarreloj
Una tienda necesita copy nuevo para una oferta relámpago que arranca en dos horas; el endpoint devuelve variantes en minutos en lugar de esperar a un freelancer.
Prueba A/B de tono
Un equipo de crecimiento pide la misma oferta en tono directo y en tono cercano para ver cuál obtiene mejor tasa de clics antes de comprometer presupuesto.
Lanzamiento en varios mercados
Un editor de apps genera variantes de copy por país y segmento de audiencia, todas respetando los mismos límites de caracteres, a partir de un solo brief de producto.
Preguntas frecuentes
¿Cómo se asegura la API de que el copy de anuncios respete el límite de caracteres?
Envía el límite exacto de caracteres para titular y descripción en la solicitud, y cada variante devuelta se mide contra ese límite antes de entregarse.
¿Existe un plan gratuito para la API de generar copy de anuncios?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cuánto cuesta por variante?
$0.003 por solicitud más $0.0135 por variante generada, así que pedir cinco variantes tiene un costo total pequeño y predecible.
¿Cómo recibo los resultados?
Por webhook firmado, la opción recomendada para producción, o desde un enlace firmado que permanece válido durante 24 horas tras completarse la tarea.
¿Qué pasa si una generación falla?
La tarea reintenta automáticamente hasta tres veces; si sigue fallando recibe un error claro y nunca se le cobra por ese intento.
¿Puedo pedir distintos tonos para el mismo producto?
Sí, el tono es un parámetro de la solicitud, así que puede generar una versión directa y otra cercana a partir de los mismos datos del producto en llamadas separadas.
¿El endpoint conoce el límite exacto de cada red publicitaria?
Usted indica el límite en cada solicitud en lugar de depender de un valor fijo en el código, lo que mantiene su integración correcta incluso cuando una red cambia su formato.
¿Se guarda el copy generado después de entregarlo?
No, los datos se eliminan al finalizar el periodo de retención y nunca se usan para entrenar modelos, algo relevante para ofertas no publicadas o campañas bajo embargo.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/text/ad-copy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/text/ad-copy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/ad-copy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/ad-copy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/ad-copy", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.ad_copy",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_tokens | 20000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |