# Cómo extraer anuncios de ChatGPT a gran escala: una arquitectura técnica


<!--
  Datos estructurados: el renderizador (scripts/blog_render.py) inserta una combinación plana
  de BlogPosting + Open Graph + etiquetas de Twitter en <head> a partir de la información preliminar anterior.
  El archivo JSON-LD correspondiente a la página de preguntas frecuentes (FAQPage) se encuentra en faq-schema.jsonld, dentro de esta carpeta; fúndalo
  con la página (a ser posible como un único @graph combinado) en el momento de la publicación.
-->

# Cómo extraer anuncios de ChatGPT a gran escala: una arquitectura técnica

OpenAI comenzó a probar anuncios dentro de ChatGPT para adultos estadounidenses que hubieran iniciado sesión en los planes «Free» y «Go» el 9 de febrero de 2026 ([OpenAI, «Pruebas de anuncios en ChatGPT»](https://openai.com/index/testing-ads-in-chatgpt/)). No existe ningún directorio público que se pueda consultar, y la correspondencia se realiza por hilo privado. Por lo tanto, aprender a extraer anuncios de ChatGPT no es un problema de análisis sintáctico. Se trata de un problema de muestreo: ejecute un conjunto de indicaciones diseñado a través de sesiones elegibles y con precisión geográfica, capture cada cuadro patrocinado y repita el proceso hasta que las cifras se estabilicen.

> **Puntos clave**
> - Los anuncios solo se muestran a adultos estadounidenses que hayan iniciado sesión en los planes Free y Go; los planes Pro, Business y Enterprise siguen sin anuncios, por lo que las sesiones de recopilación deben realizarse en un plan elegible ([TechCrunch, «ChatGPT lanza anuncios», 9 de febrero de 2026](https://techcrunch.com/2026/02/09/chatgpt-rolls-out-ads/)).
> - No existe un centro de transparencia publicitaria, y la correspondencia se realiza por hilo privado, por lo que la única forma de observar los anuncios es ejecutar numerosas indicaciones variadas y registrar los resultados ([Search Engine Journal, 2026](https://www.searchenginejournal.com/see-competitor-ads-chatgpt-trendos-spa/575883/)).
> - Por cada aparición, se registran el título del anuncio, la descripción del anuncio y la URL final; a continuación, se calcula la cuota de impresiones dividiendo el número de apariciones entre el total de ejecuciones ([Search Engine Land, 2026](https://searchengineland.com/what-chatgpt-ads-data-reveals-about-your-competitors-479301)).
> - Los anuncios se lanzan por países, por lo que la recopilación precisa de datos por mercado debe realizarse desde orígenes locales ([Euronews, 2026](https://www.euronews.com/next/2026/02/10/chatgpt-will-now-show-you-adverts-heres-everything-you-need-to-know)).
> - Las direcciones IP de los centros de datos se bloquean rápidamente; las direcciones IP residenciales de proveedores de servicios de Internet reales se asemejan al tráfico normal de los usuarios ([DataImpulse, «Los mejores proxies para el scraping con IA en 2026»](https://dataimpulse.com/blog/best-proxies-for-ai-scraping/)).

Este es el complemento técnico de la guía estratégica sobre [cómo supervisar los anuncios de ChatGPT](https://www.joinmassive.com/blog/how-to-monitor-chatgpt-ads). A continuación, describimos el flujo de trabajo real, etapa por etapa.

[IMAGEN: Pantalla de un ingeniero que muestra un flujo de datos con colas de solicitudes, regiones geográficas y una tabla de anuncios patrocinados, con detalles en naranja oscuro en la interfaz de usuario —términos de búsqueda: flujo de datos, pantalla de ingeniero, oscuro]

## ¿Por qué resulta tan difícil extraer los anuncios de ChatGPT?

Los anuncios de ChatGPT son difíciles de extraer porque su superficie es a la vez cerrada, contextual y regional. Los anuncios aparecen en recuadros etiquetados como «Patrocinados» debajo de la respuesta, y se seleccionan en función del tema de la conversación, el historial de chat y las interacciones publicitarias previas, en lugar de palabras clave exactas ([StackAdapt, «Cómo anunciarse en ChatGPT»](https://www.stackadapt.com/resources/blog/how-to-advertise-on-chatgpt)). Dos solicitudes idénticas pueden mostrar anunciantes diferentes, por lo que una sola observación no aporta prácticamente nada.

Hay tres limitaciones que condicionan cada decisión de diseño. En primer lugar, los anuncios solo se muestran a adultos estadounidenses que hayan iniciado sesión en las versiones Free o Go, por lo que sus sesiones deben cumplir los requisitos. En segundo lugar, la correspondencia se establece por hilo privado, sin que exista un directorio en el que buscar ([Search Engine Journal, 2026](https://www.searchenginejournal.com/see-competitor-ads-chatgpt-trendos-spa/575883/)). En tercer lugar, el despliegue se realiza por países, comenzando por EE. UU., seguido del Reino Unido, Japón, Corea del Sur, Canadá, Australia y Nueva Zelanda, y está previsto que se extienda a México y Brasil ([Euronews, 2026](https://www.euronews.com/next/2026/02/10/chatgpt-will-now-show-you-adverts-heres-everything-you-need-to-know)).

> Resumen de la cita: los anuncios de ChatGPT solo se muestran a adultos estadounidenses que hayan iniciado sesión en los planes «Free» y «Go», según la prueba realizada el 9 de febrero de 2026; aparecen en recuadros etiquetados como «Patrocinado» que se adaptan contextualmente a cada hilo privado, y no disponen de un directorio público, por lo que la superficie solo puede observarse ejecutando diversas indicaciones en sesiones elegibles ([OpenAI, «Pruebas de anuncios en ChatGPT»](https://openai.com/index/testing-ads-in-chatgpt/); [Search Engine Journal, 2026](https://www.searchenginejournal.com/see-competitor-ads-chatgpt-trendos-spa/575883/)).

<!-- [PERSPECTIVA ÚNICA] --> Esta superficie cerrada invierte la dinámica económica habitual del scraping. En el scraping web clásico, el análisis sintáctico es barato y el coste reside en el acceso. En este caso, el análisis del recuadro patrocinado resulta trivial, y el coste real es de carácter estadístico: se está estimando una distribución oculta, por lo que su arquitectura debe priorizar el tamaño de la muestra y la estabilidad de las condiciones frente a selectores ingeniosos.

## ¿Cómo se extraen los anuncios de ChatGPT de principio a fin?

Se extraen los anuncios de ChatGPT mediante un proceso de ocho etapas que convierte un conjunto de indicaciones en una línea de tendencia. Las etapas van desde el diseño hasta la entrega: diseño de indicaciones, calificación de sesiones, distribución por zona geográfica, renderización, captura, normalización, cálculo de la cuota de impresiones y, por último, programación y almacenamiento. Cada etapa alimenta a la siguiente, y todo el ciclo se repite con una cadencia tal que el ruido de una sola ejecución se promedia hasta convertirse en una señal medible.

<figure>
  <svg viewBox="0 0 680 260" role="img" aria-label="Proceso de ocho etapas para recopilar anuncios de ChatGPT, desde el diseño del conjunto de indicaciones hasta el almacenamiento programado" xmlns="http://www.w3.org/2000/svg">
    <rect x="0" y="0" width="680" height="260" fill="#0a0a0f"/>
    <text x="24" y="34" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="18" font-weight="600">Proceso de extracción de anuncios de ChatGPT</text>
    <text x="24" y="54" fill="#8e8b89" font-family="Outfit, sans-serif" font-size="12">Un conjunto de indicaciones diseñado se convierte en una línea de tendencia de cuota de impresiones.</text>

    <!-- Fila 1 -->
    <rect x="24" y="78" width="142" height="40" rx="6" fill="#121117" stroke="#d74939"/>
    <text x="95" y="103" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">1. Conjunto de indicaciones</text>
    <rect x="190" y="78" width="142" height="40" rx="6" fill="#121117" stroke="#1d1d21"/>
    <text x="261" y="103" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">2. Sesión válida</text>
    <rect x="356" y="78" width="142" height="40" rx="6" fill="#121117" stroke="#1d1d21"/>
    <text x="427" y="103" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">3. Datos geográficos por mercado</text>
    <rect x="522" y="78" width="134" height="40" rx="6" fill="#121117" stroke="#ff8163"/>
    <text x="589" y="103" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">4. Representación</text>

 <!-- fila 1 de flechas -->
    <text x="178" y="103" fill="#8e8b89" font-family="'JetBrains Mono', monospace" font-size="14" text-anchor="middle">&#8594;</text>
    <text x="344" y="103" fill="#8e8b89" font-family="'JetBrains Mono', monospace" font-size="14" text-anchor="middle">&#8594;</text>
    <text x="510" y="103" fill="#8e8b89" font-family="'JetBrains Mono', monospace" font-size="14" text-anchor="middle">&#8594;</text>

    <!-- Fila 2 -->
    <rect x="24" y="158" width="142" height="40" rx="6" fill="#121117" stroke="#1d1d21"/>
    <text x="95" y="183" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">5. Cuadro de captura</text>
    <rect x="190" y="158" width="142" height="40" rx="6" fill="#121117" stroke="#1d1d21"/>
    <text x="261" y="183" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">6. Normalizar</text>
    <rect x="356" y="158" width="142" height="40" rx="6" fill="#121117" stroke="#d74939"/>
    <text x="427" y="183" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">7. Cuota de impresiones</text>
    <rect x="522" y="158" width="134" height="40" rx="6" fill="#121117" trazo="#1d1d21"/>
    <texto x="589" y="183" relleno="#faf4ec" familia de fuentes="Outfit, sans-serif" tamaño de fuente="12" anclaje de texto="centro">8. Programar + almacenar</texto>

    <text x="178" y="183" fill="#8e8b89" font-family="'JetBrains Mono', monospace" font-size="14" text-anchor="middle">&#8594;</text>
    <text x="344" y="183" fill="#8e8b89" font-family="'JetBrains Mono', monospace" font-size="14" text-anchor="middle">&#8594;</text>
    <text x="510" y="183" fill="#8e8b89" font-family="'JetBrains Mono', monospace" font-size="14" text-anchor="middle">&#8594;</text>

    <text x="24" y="236" fill="#34d399" font-family="'JetBrains Mono', monospace" font-size="11">Repita todo el proceso de forma cíclica; la señal reside en la repetición</text>
  </svg>
  <figcaption>Flujo de trabajo de referencia para la extracción de anuncios de ChatGPT. Método según <a href="https://searchengineland.com/what-chatgpt-ads-data-reveals-about-your-competitors-479301">Search Engine Land, «Lo que revelan los datos de los anuncios de ChatGPT sobre sus competidores», 2026</a>.</figcaption>
</figure>

A continuación se detalla la función de cada etapa:

1. **Diseñe el conjunto de prompts.** Cree prompts relacionados con el recorrido del comprador («el mejor CRM para equipos pequeños») y prompts con términos de marca («¿merece la pena [marca]?»). La formulación determina qué anuncios se activan, por lo que debe tratar el conjunto como una variable controlada. Tratamos la creación de este conjunto en [mapeo de indicaciones para anuncios de ChatGPT](https://www.joinmassive.com/blog/prompt-mapping-chatgpt-ads).
2. **Califique la sesión.** Cada ejecución debe realizarse con un usuario adulto de EE. UU. que haya iniciado sesión en la versión Free o Go. Las versiones Pro, Business y Enterprise no muestran anuncios ([TechCrunch, 2026](https://techcrunch.com/2026/02/09/chatgpt-rolls-out-ads/)). Varíe los historiales de las sesiones para que un hilo sesgado no influya en la muestra.
3. **Distribuya por zona geográfica.** Dado que el lanzamiento se realiza por países, la recopilación se lleva a cabo por mercado desde orígenes locales. Una visión limitada a EE. UU. omite a los anunciantes del Reino Unido, Japón o Canadá a medida que se expande la prueba.
4. **Visualice la conversación.** Envíe la consulta y capture la respuesta completa, incluido cualquier bloque patrocinado. Esta es la etapa que requiere orígenes de usuarios reales, tal y como se explica a continuación.
5. **Capture el bloque patrocinado.** A partir del resultado generado, extraiga el título del anuncio, la descripción del anuncio y la URL final para cada posición patrocinada ([Search Engine Land, 2026](https://searchengineland.com/what-chatgpt-ads-data-reveals-about-your-competitors-479301)).
6. **Analice y normalice.** Asigne los campos sin procesar a un esquema estable. Normalice los nombres de los anunciantes y las URL finales para que un mismo anunciante no aparezca dividido en varias filas.
7. **Calcule la cuota de impresiones.** Agregue las apariciones al total de ejecuciones por solicitud y mercado. En breve se explicarán los cálculos con más detalle.
8. **Programar y almacenar.** Ejecute el conjunto con una cadencia fija y registre filas con marca de tiempo, de modo que la cuota de impresiones se convierta en una tendencia en lugar de una instantánea.

## ¿Cómo se ejecutan las solicitudes como sesiones elegibles y geolocalizadas con precisión?

Las solicitudes se ejecutan como sesiones válidas emitiéndolas desde orígenes de usuarios reales en el mercado de destino y, a continuación, capturando la conversación generada. Esta es la etapa que determina si se recopilan datos publicitarios de IA a gran escala o si se produce un bloqueo prematuro. La mayoría de las plataformas marcan rápidamente las direcciones IP de centros de datos, mientras que las direcciones IP residenciales de proveedores de servicios de Internet (ISP) de consumidores reales parecen tráfico ordinario, y las interfaces de la IA se muestran por región e idioma, por lo que la precisión requiere direcciones IP locales en todos los mercados ([DataImpulse, «Los mejores proxies para el scraping de IA en 2026»](https://dataimpulse.com/blog/best-proxies-for-ai-scraping/)). La elección de esa red es una decisión en sí misma, que se compara en [proxies residenciales frente a proxies de centros de datos para anuncios de IA](https://www.joinmassive.com/blog/residential-vs-datacenter-proxies-ai-ads).

Aquí es donde Massive encaja directamente en el flujo de trabajo. Massive es una red de acceso a dispositivos, junto con una pila de renderizado, que devuelve código HTML limpio o Markdown desde cualquier fuente pública, en cualquier ubicación, y que se ejecuta en dispositivos reales de consumidores en más de 195 países. Su punto final Web Render API `/ai` devuelve las respuestas completadas de ChatGPT a través de orígenes de dispositivos de usuarios reales en la zona geográfica que elija, en forma de HTML de conversación completa, HTML de solicitud, HTML de respuesta, HTML de fuentes y una matriz de subconsultas. El modo sincrónico devuelve la respuesta directamente; la ruta asíncrona `/ai/completions` funciona mediante cola y recuperación, con segmentación geográfica por país, subdivisión o ciudad.

Massive proporciona la funcionalidad; su equipo diseña el conjunto de indicaciones y gestiona la operación. En cuanto al flujo de trabajo circundante, el punto final de navegación (`/browser`) ofrece una salida en Markdown de primera clase y sesiones persistentes de hasta 12 minutos. Cada dirección IP se inscribe a través del SDK de Massive, y la plataforma cuenta con auditoría SOC 2, cumple con el RGPD y está certificada por AppEsteem, con un registro de auditoría completo.

El bucle de control es sencillo. Las partes más complejas (orígenes elegibles, geolocalización, renderizado) se sitúan tras la llamada de renderizado, de modo que su código se centra en el muestreo y la agregación:

```python
# Illustrative sampling loop. The render_chatgpt() call abstracts an
# eligible, geo-targeted session; see your render provider's docs for
# exact endpoint parameters before wiring it up.
from collections import Counter

def sample_prompt(prompt, market, runs=25):
    appearances = Counter()
    for _ in range(runs):
        convo = render_chatgpt(prompt=prompt, geo=market)   # rendered HTML
        for box in find_sponsored_boxes(convo):             # may be zero
            ad = {
                "advertiser": normalize(box.title),
                "description": box.description,
                "final_url":  canonical(box.final_url),
                "prompt":     prompt,
                "market":     market,
            }
            store(ad)                                       # stage 8
            appearances[ad["advertiser"]] += 1
    # stage 7: impression share = appearances / total runs
    return {a: round(n / runs, 3) for a, n in appearances.items()}
```

El bucle es deliberadamente sencillo. Una versión de producción añade reintentos, detección de recuadros patrocinados que tolera cambios de diseño, validación que descarta representaciones vacías y programación por mercado.

## ¿Cómo se calcula la cuota de impresiones en ejecuciones repetidas?

La cuota de impresiones se calcula dividiendo las apariciones de un anunciante entre el número total de ejecuciones para una consulta y un mercado determinados. Si un anunciante aparece en 12 de 25 ejecuciones, eso supone una cuota de impresiones del 48 % para esa consulta y ese periodo ([Search Engine Land, 2026](https://searchengineland.com/what-chatgpt-ads-data-reveals-about-your-competitors-479301)). Esa única proporción es lo que convierte una superficie ruidosa, por hilo, en una cifra que puede seguirse y compararse.

El tamaño de la muestra es importante. Unas pocas ejecuciones producen una estimación inestable, mientras que varias docenas por prompt dan lugar a un resultado estable. Mantenga fijas las condiciones de recopilación —el mismo mercado, nivel y redacción del prompt— para que cualquier variación en la cifra refleje la subasta publicitaria y no su configuración. El seguimiento de la URL final junto con la cuota de impresiones también revela la página de destino exacta a la que un competidor dirige cada conversación.

> Resumen de la cita: La cuota de impresiones de un anuncio de ChatGPT equivale al número de ejecuciones en las que aparece un anunciante dividido por el total de ejecuciones para esa consulta y ese mercado; 12 apariciones en 25 ejecuciones suponen una cuota de impresiones del 48 % para esa frase de búsqueda y ese intervalo de tiempo ([Search Engine Land, «Lo que revelan los datos de los anuncios de ChatGPT sobre sus competidores», 2026](https://searchengineland.com/what-chatgpt-ads-data-reveals-about-your-competitors-479301)).

## ¿Con qué frecuencia debe recopilarse la información y dónde se almacena?

Se recopila con una cadencia fija y se almacena cada observación como una fila con marca de tiempo, ya que el valor reside en la tendencia, no en la instantánea. Una ejecución semanal o diaria del mismo conjunto de consignas, por mercado, crea un historial que no se puede completar a posteriori. Considere el propio calendario como parte del método: cambiar la periodicidad a mitad del proceso dificulta la comparación entre dos ventanas de tiempo.

El almacenamiento resulta sencillo una vez que el esquema es estable. Basta con una única tabla ancha que incluya: prompt, mercado, marca de tiempo de la ejecución, anunciante, título del anuncio, descripción del anuncio y URL final. La cuota de impresiones es, entonces, una consulta sobre esa tabla agrupada por prompt, mercado y ventana. Dado que usted controla las condiciones de recopilación, volver a ejecutar la misma consulta el mes siguiente produce una cifra comparable, lo cual es precisamente el objetivo de recopilar los resultados de IA patrocinados de forma programada.

## Nota sobre el alcance y los términos de la plataforma

Recopile únicamente el espacio publicitario público y manténgase dentro de él. El recuadro patrocinado que ve cualquier usuario que cumpla los requisitos es información pública, y ese es el límite que conviene respetar. No recopile datos personales, no intente eludir la autenticación más allá de una sesión normal de inicio de sesión y mantenga un ritmo de recopilación razonable en lugar de saturar el servicio. Respete los términos establecidos por cada plataforma, asegúrese de que su prompt esté diseñado con un propósito, y, si opera con fines comerciales o a gran escala, solicite un análisis jurídico para su uso específico. La legislación en este ámbito varía según la jurisdicción y está en constante evolución.

## Preguntas frecuentes

### ¿Cómo se extraen los anuncios de ChatGPT si no existe un directorio público?

Se realiza un muestreo en lugar de una búsqueda. Dado que la correspondencia se produce por hilo privado sin un centro de transparencia, ejecute un conjunto de indicaciones diseñado repetidamente en sesiones elegibles de EE. UU. y registre cada recuadro patrocinado ([Search Engine Journal, 2026](https://www.searchenginejournal.com/see-competitor-ads-chatgpt-trendos-spa/575883/)). El volumen y la repetición convierten una superficie oculta, específica de cada hilo, en una cifra medible de cuota de impresiones que puede realizar un seguimiento a lo largo del tiempo.

### ¿Por qué se necesitan direcciones IP residenciales para recopilar datos publicitarios de ChatGPT?

Las direcciones IP de centros de datos se bloquean rápidamente, mientras que las direcciones IP residenciales procedentes de proveedores de servicios de Internet (ISP) reales de consumidores se asemejan al tráfico normal de los usuarios ([DataImpulse, «Los mejores proxies para el scraping de IA en 2026»](https://dataimpulse.com/blog/best-proxies-for-ai-scraping/)). Las superficies publicitarias de IA también se muestran según la región y el idioma, y el despliegue se realiza por países, por lo que una recopilación geográficamente precisa requiere direcciones IP locales en cada mercado que desee observar.

### ¿Qué planes de ChatGPT muestran realmente anuncios?

Solo los planes «Free» y «Go», y únicamente para adultos estadounidenses que hayan iniciado sesión, según la prueba realizada el 9 de febrero de 2026 ([OpenAI, «Prueba de anuncios en ChatGPT»](https://openai.com/index/testing-ads-in-chatgpt/)). Los planes Pro, Business y Enterprise siguen sin anuncios ([TechCrunch, 2026](https://techcrunch.com/2026/02/09/chatgpt-rolls-out-ads/)). Las sesiones de recopilación que no se realicen en un plan elegible no mostrarán ningún recuadro patrocinado.

### ¿Qué campos debe recopilar por cada anuncio?

Recopile el título del anuncio, la descripción del anuncio y la URL final de cada posición patrocinada, además de la consulta, el mercado y la marca de tiempo de la campaña ([Search Engine Land, 2026](https://searchengineland.com/what-chatgpt-ads-data-reveals-about-your-competitors-479301)). Estos campos le permiten normalizar los anunciantes, realizar un seguimiento de las páginas de destino y calcular la cuota de impresiones como el número de apariciones dividido por el total de publicaciones para cada prompt y mercado.

### ¿Está permitido el scraping de anuncios de ChatGPT?

Recopile únicamente el recuadro patrocinado público que cualquier usuario elegible puede ver, evite los datos personales y respete los términos establecidos por cada plataforma, así como una cadencia razonable. La superficie publicitaria pública es el límite. Considere el scraping como una observación de las ubicaciones públicas, no como una recopilación masiva, y solicite asesoramiento jurídico para un uso comercial o a gran escala, ya que las normas varían según la jurisdicción.

## En qué situación le deja esto

La recopilación de anuncios de ChatGPT es un ejercicio de muestreo disciplinado, no de ingeniería de selección. El proceso de ocho etapas mantiene constantes las condiciones —un conjunto de indicaciones diseñado, sesiones elegibles, la ubicación geográfica adecuada y la visualización de usuarios reales—, de modo que las cifras de cuota de impresiones que calcule tengan sentido a lo largo de las semanas. Configure el bucle una vez, ejecútelo con una cadencia adecuada, y almacene cada fila.

La restricción que lo determina todo es la capa de recopilación: sesiones elegibles, con precisión geográfica y que parezcan de usuarios reales. Ahí es donde encajan el punto final `/ai` de Massive y su cobertura de más de 195 países, que devuelven las respuestas completadas de ChatGPT a través de dispositivos de usuarios reales en el mercado que elija. Comience a realizar muestreos ahora mismo, respete la superficie publicitaria pública y dispondrá de datos de tendencias que resultan imposibles de recrear a posteriori. Para el marco estratégico, vuelva a [cómo supervisar los anuncios de ChatGPT](https://www.joinmassive.com/blog/how-to-monitor-chatgpt-ads).
