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


<!--
  Datos estructurados: el renderizador (scripts/blog_render.py) inserta un conjunto plano
  de etiquetas BlogPosting + Open Graph + Twitter en <head> a partir de la información preliminar anterior.
  El JSON-LD correspondiente de la página de preguntas frecuentes (FAQPage) se encuentra en faq-schema.jsonld, en esta carpeta; incorpórelo
  en 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 un 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 recuadro 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 no incluyen publicidad, por lo que las sesiones de recopilación deben realizarse en un nivel de suscripción elegible ([TechCrunch, «ChatGPT rolls out ads», 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 y variadas solicitudes y registrar los resultados ([Search Engine Journal, 2026](https://www.searchenginejournal.com/see-competitor-ads-chatgpt-trendos-spa/575883/)).
> - Para 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, recorremos el proceso 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 cerrada, contextual y regional, todo al mismo tiempo. 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 consultas idénticas pueden mostrar anunciantes diferentes, por lo que una sola observación no aporta prácticamente nada.

Hay tres limitaciones que determinan 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 amplíe 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 emparejan contextualmente por hilo privado, y no cuentan con 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 economía habitual del scraping. En el scraping web clásico, el análisis es barato y el coste reside en el acceso. En este caso, analizar el recuadro patrocinado es trivial, y el coste real es de naturaleza estadística: 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" stroke="#1d1d21"/>
    <text x="589" y="183" fill="#faf4ec" font-family="Outfit, sans-serif" font-size="12" text-anchor="middle">8. Programar + guardar</text>

    <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 construcción en [mapeo de prompts 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 las versiones 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 mercados 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 indicación 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 consulta 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 válidas 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 IP de centros de datos, mientras que las IP residenciales de proveedores de servicios de Internet (ISP) de consumidores reales parecen tráfico ordinario, y las interfaces de IA se muestran por región e idioma, por lo que la precisión requiere 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 proceso. Massive es una red de acceso a dispositivos, además de una pila de renderizado, que devuelve 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 de la 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 ejecuta la operación. Para el 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 gestionan 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 solicitud y un mercado determinados. Si un anunciante aparece en 12 de 25 ejecuciones, eso supone una cuota de impresiones del 48 % para esa solicitud y esa ventana ([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 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 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 entre 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?

La recopilación debe realizarse con una cadencia fija y cada observación debe almacenarse 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 indicaciones, por mercado, crea un historial que no podrá completarse a posteriori. Considere la propia programación como parte del método: cambiar la periodicidad a mitad del proceso dificulta la comparación entre dos ventanas de datos.

El almacenamiento resulta sencillo una vez que el esquema es estable. Basta con una única tabla ancha: 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 se obtiene entonces mediante 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, que es precisamente el objetivo de extraer los resultados de IA patrocinados de forma programada.

## Una 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 de inicio de sesión normal y mantenga un ritmo de recopilación razonable, en lugar de saturar el servicio. Respete los términos establecidos por cada plataforma, mantenga su conjunto de prompts diseñado específicamente para este fin 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 coincidencia se produce por hilo privado sin un centro de transparencia, se ejecuta un conjunto de indicaciones diseñado repetidamente en sesiones elegibles de EE. UU. y se registra 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 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 por región e 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 registrar por cada anuncio?

Registre 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 extraer datos de los anuncios de ChatGPT?

Recopile únicamente el recuadro patrocinado público que cualquier usuario que cumpla los requisitos pueda ver, evite los datos personales y respete los términos establecidos por cada plataforma, así como una cadencia razonable. El espacio publicitario público 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

El scraping de anuncios de ChatGPT es un ejercicio de muestreo disciplinado, no de ingeniería de selectores. El proceso de ocho etapas mantiene constantes las condiciones: un conjunto de prompts diseñado, sesiones elegibles, la ubicación geográfica adecuada y la representació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 determinada y almacene cada fila.

La restricción que lo determina todo es la capa de recopilación: sesiones elegibles y con precisión geográfica que se asemejen a 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 resultarán 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).
