OAI-AdsBot: robots.txt y WAF para que OpenAI apruebe tu anuncio

Antes de aprobar cada anuncio de ChatGPT, OpenAI lee la landing con un rastreador llamado OAI-AdsBot. Si no llega, el anuncio no se aprueba, y el motivo casi nunca es el copy. Son tres capas, en este orden.

Por Marco Pilco Vinueza · actualizado el 14 de septiembre de 2026

Capa 1: el robots.txt y la herencia del comodín

La regla es de la RFC 9309 y la aplican Google y OpenAI igual: un bot busca el grupo que lleva su nombre; si no lo hay, usa el de User-agent: *. Un bot con grupo propio ignora el comodín por completo.

Traducido a negocio: si tu robots.txt tiene Allow: / para OAI-SearchBot y GPTBot pero ningún grupo para OAI-AdsBot, el rastreador de anuncios hereda el comodín. Y en el comodín es donde viven los Disallow del checkout, de las citas, del alta, del área privada. El anuncio apunta ahí. Se rechaza por rastreo, y el equipo dice "pero si los bots de OpenAI están permitidos".

El grupo tiene que cubrir la ruta exacta de la landing. Un Allow: / vale; un Allow solo sobre la home no.

User-agent: OAI-AdsBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

Aquí hago una precisión importante: si el comodín bloquea el checkout, también lo bloquea para Googlebot orgánico. Eso no es problema de ChatGPT Ads, pero merece una revisión desde SEO.

Capa 2: el WAF, por proveedor

Un WAF puede devolver 403, o algo peor: un 200 con un challenge de JavaScript de doscientos bytes que un rastreador sin motor JS nunca resuelve. Para el Ads Manager es lo mismo: no ha podido leer la página.

  • Cloudflare. OAI-AdsBot está en su lista de bots verificados. Security → Bots → "Allow verified bots", o una regla WAF con Skip para el user-agent. Una prueba desde tu ordenador con ese user-agent puede dar 403 precisamente porque Cloudflare detecta la suplantación Fuente: guía de crawlers de OpenAI, 03-09-2026
  • Imperva / Incapsula. Filtra por huella TLS, no por user-agent: devuelve el interstitial a curl y a Python aunque lleven user-agent de Chrome. Sin allowlist documentada para OpenAI. Se pide la excepción por rangos y el log Fuente: caso auditado por Casiopea, 03-09-2026
  • DataDome. Tiene ficha propia de OAI-AdsBot y lo gestiona por identidad verificada desde el panel. Challenge a cualquier cliente que no sea un navegador completo, incluido Chromium headless. Se pide que lo permita en las rutas de las landings y que active el registro por URL y código Fuente: datadome.co/bots/oai-adsbot, 12-09-2026
  • Akamai, AWS WAF y el resto. Nada documentado a día de hoy. Excepción por rangos de IP y log de peticiones Fuente: búsqueda propia, 12-09-2026

Los rangos del rastreador de anuncios los publica OpenAI en openai.com/adsbot.json, y avisa de que cambian. Son distintos de los de OAI-SearchBot (searchbot.json): exceptuar uno no exceptúa al otro. En la práctica, el correo a IT es este:

Hola equipo!

Vamos a anunciarnos en ChatGPT y su rastreador (user-agent OAI-AdsBot) tiene que
poder leer [URL de la landing] para aprobar cada anuncio. Hoy el WAF le devuelve
[403 / challenge].

Necesitamos una excepción para los rangos que publica OpenAI en
https://openai.com/adsbot.json (cambian; conviene revisarlos cada pocos meses), y
el log de sus peticiones (URL, fecha, código) cuando el anuncio esté en revisión.

Es un rastreador de verificación de destino: no indexa ni entrena. Ya me diréis
cuando esté.

Gracias!

El checker de la página principal te genera esta carta con tu URL, el proveedor detectado y los rangos leídos en vivo del JSON de OpenAI.

Capa 3: el anti-bot de aplicación, y el límite de cualquier comprobación

Aunque el WAF deje pasar, un CAPTCHA, un challenge de JavaScript propio o una validación de sesión en la aplicación paran al rastreador igual. Y aquí es importante ser transparentes: nadie puede simular al rastreador de OpenAI desde fuera. Sus IPs no se pueden suplantar, y varios WAF bloquean precisamente a quien lo intenta. Cualquier checker (el nuestro incluido) mide lo que ve un cliente sin JavaScript desde una IP ajena.

Mi recomendación, como consultor, es tratar el checker como la lista de lo que hay que pedir a IT, y la revisión del anuncio en el Ads Manager como la prueba. Y aun con el anuncio aprobado, pedir el log del WAF: un WAF que endurece por comportamiento puede dejar pasar el primer rastreo y bloquear el siguiente sin que nadie lo vea.

Preguntas frecuentes

¿Qué user-agent usa el rastreador de anuncios de OpenAI?

OAI-AdsBot. Es obligatorio permitirlo para que un anuncio se apruebe. OAI-SearchBot es otro rastreador (recomendado, no obligatorio) que ayuda a OpenAI a entender el contenido público. GPTBot es el de entrenamiento y no tiene nada que ver con los anuncios (guía oficial de crawlers, leída el 3 de septiembre de 2026).

Mi robots.txt ya permite a OpenAI, ¿por qué falla?

Probablemente permite a OAI-SearchBot o a GPTBot, no a OAI-AdsBot. Un bot sin grupo propio hereda las reglas de User-agent: *, y ahí suelen estar bloqueados el checkout, las citas o el alta, que es justo donde apunta el anuncio.

¿Dónde están las IPs del rastreador?

OpenAI las publica en openai.com/adsbot.json y avisa de que cambian. Conviene apuntar al fichero, no copiar los rangos, y revisarlos cada pocos meses.

¿Cloudflare bloquea a OAI-AdsBot?

Cloudflare lo tiene en su lista oficial de bots verificados, así que con "Allow verified bots" activo pasa. Ojo: Cloudflare bloquea a quien se hace pasar por un bot verificado desde una IP ajena, así que una prueba hecha con el user-agent desde tu ordenador puede dar 403 aunque el rastreador real pase.

¿E Imperva, Akamai o DataDome?

OpenAI solo documenta allowlist oficial en Cloudflare. Imperva y Akamai no documentan nada sobre OAI-AdsBot; DataDome sí tiene ficha propia y lo gestiona por identidad verificada desde su panel. En los tres casos hay que pedirlo expresamente a quien administre el WAF, y pedir el log de sus peticiones como prueba.

Si te han salido rojos, te los miro yo

Déjame tu correo y el dominio. Te escribo en menos de 24 horas con qué está bloqueando la aprobación, qué hay que pedir a IT y si el canal tiene sentido para tu negocio con los números que tienes.