CrUX ad metrics: qué anuncios ve realmente Chrome y cómo auditarlo
Google acaba de publicar en CrUX cuántos anuncios ve Chrome en cada web, y al reconstruir cómo los cuenta me encontré con que a veces se queda corto y a veces se pasa. Este post explica todo lo que he encontrado y la herramienta que he hecho para medirlo como lo haría un revisor. Eso sí, después de pasar por unos 80 medios y miles de tests, todavía no entiendo cómo algunos conservan a sus lectores con la cantidad de anuncios que les ponen delante.
Su autor lo publicó primero en natzir.com el 5 de octubre de 2026

Google acaba de publicar en CrUX cuántos anuncios ve Chrome en cada web, y al reconstruir cómo los cuenta me encontré con que a veces se queda corto y a veces se pasa. Este post explica todo lo que he encontrado y la herramienta que he hecho para medirlo como lo haría un revisor.
Eso sí, después de pasar por unos 80 medios y miles de tests, todavía no entiendo cómo algunos conservan a sus lectores con la cantidad de anuncios que les ponen delante 😀
CrUX ad metrics
El 15 de septiembre de 2026 Chrome añadió a CrUX métricas experimentales de anuncios, que miden cuántos anuncios hay de media en pantalla, qué parte de la pantalla ocupan y cuánta red y CPU consumen. No forman parte de las Core Web Vitals y Google no les ha puesto umbrales, pero cualquiera puede consultarlas para cualquier web. Lo que el anuncio no explica es qué cuenta Chrome como anuncio, y de eso depende cómo hay que creerse esas cifras.
Para entenderlo, he reconstruido la medida de Chrome con sus reglas y la comparé con lo que vería una persona revisando la página. Chrome solo cuenta lo que etiqueta su lista de filtros, que es una versión desfasada de EasyList, y su detector de pop-ups solo salta en condiciones muy concretas. Al probarlo, aparecieron anuncios que Chrome no ve, formatos que no sabe valorar, entre ellos un ad gate de la propia Google, y algún caso en el que marca como anuncio algo que no lo es. Utiliza esta información para lo consideres, ejem...
Por qué importa
Esto no es sólo por curiosidad técnica. Algunos de mis clientes han recibido avisos del Ad Experience Report por superar el 30 % de densidad de anuncios en móvil, junto con la advertencia de que Chrome dejaría de mostrar sus anuncios si no lo corregían. Google manda ese correo al menos 30 días antes de empezar a filtrar, y si el problema sigue ahí, Chrome bloquea los anuncios de la web en ese dispositivo.




Para un medio que vive de la publicidad es un golpe serio, así que saber qué ve un revisor y qué ve Chrome no es un detalle menor.
Aquí podemos ver esto que encontré en 2018 de Chrome filtrando anuncios en un medio:

Los anuncios también importan en SEO
En enero de 2012 Google lanzó el algoritmo de page layout, que podía bajar en los resultados las páginas con poco contenido visible al abrirlas o con buena parte de la primera pantalla ocupada por anuncios. Desde enero de 2017 también puede posicionar peor en móvil las páginas con intersticiales intrusivos, como explicó en Helping users easily access content on mobile, y la herramienta detecta esos intersticiales igual que los pop-ups de Better Ads.
Google ya no cita el page layout en su guía de sistemas de ranking, y la entrada de 2012 remite ahora a su documentación de page experience. Allí pregunta si el contenido evita "una cantidad excesiva de anuncios que distraen del contenido principal o interfieren con él", casi la misma pregunta que en 2019 propuso para revisar una web tras una core update. Google aclara que, salvo las Core Web Vitals, estos aspectos no ayudan directamente a posicionar, aunque hacen la web más satisfactoria y eso va en línea con lo que sus sistemas buscan premiar.
En esa misma página recomienda las CrUX ad metrics para conocer el número, la densidad y el peso de los anuncios de una web, y en su guía de indexación mobile-first pide seguir el estándar de Better Ads en móvil para que los anuncios no perjudiquen el posicionamiento.
Las Quality Rater Guidelines, las pautas con las que los evaluadores de Google valoran las páginas, son todavía más claras. Si los anuncios distraen bastante del contenido principal o dificultan usarlo, la página debe valorarse como Low aunque parte del contenido sea útil. Si lo tapan a propósito, como los que siguen al scroll y casi no se pueden cerrar o los que empujan el contenido tan abajo que muchos lectores no lo verían, la valoración baja a Lowest, la misma que reciben los anuncios disfrazados de contenido o de enlaces de navegación.
Las guías aclaran que ninguna valoración mueve por sí sola una página en los resultados, aunque Google las usa para medir y mejorar su buscador. Los lectores también cuentan, porque con tantos anuncios es fácil que reboten a la SERP, y la sentencia del juicio antimonopolio de 2024 describe Navboost, un sistema que recuerda en qué documentos hacen clic los usuarios tras cada búsqueda a partir de 13 meses de datos.
Además, el leak de la documentación interna del buscador en 2024 apunta en la misma dirección. Entre los datos que Google guarda de cada página en móvil están violatesMobileInterstitialPolicy, que según su descripción indica si la página incumple la política de intersticiales y debe ser degradada, y adsDensityInterstitialViolationStrength, que indica si incumple la de densidad de anuncios e intersticiales y con qué intensidad. La filtración muestra qué datos guarda Google pero no cuánto pesa cada uno, y Shaun Anderson ha analizado a fondo lo que dice de los anuncios.
En los core updates también se nota. Glenn Gabe ha documentado webs que caen con anuncios agresivos y suben al reducirlos, como una con 15 a 20 anuncios en algunas páginas que cayó un 41 % con la core update de mayo de 2020, redujo a la mitad los anuncios de algunas páginas y subió un 40 % con la de diciembre. Yo mismo he ayudado a salir de core updates a clientes que viven de la publicidad reduciendo sus anuncios, y no sólo a medios.
Los recomendadores de contenido como Taboola u Outbrain son otro caso. Mezclan noticias con anuncios que parecen contenido, a menudo con los titulares exagerados o las imágenes chocantes que las guías de los evaluadores consideran una distracción, y además ralentizan la carga. La herramienta deja fuera del contenido principal los que van al final del artículo, así que no suben la densidad que mide y conviene revisarlos aparte.
La herramienta: Ad Density Checker
Mi extensión mide una página como lo haría un revisor de Better Ads. Calcula la densidad de anuncios sobre el contenido principal, busca anuncios fijos grandes y pop-ups, avisa de los ad gates y de las redirecciones automáticas, y dibuja sobre una captura de la página qué ha contado y por qué. Con un selector se pasa de la vista Real, la de un revisor, a la vista Chrome, que solo muestra lo que Chrome etiqueta, y la imagen con las dos vistas lado a lado se puede abrir en una pestaña o descargar. Ahí se ve qué anuncios no cuenta Chrome, y lo que cada uno haga con esa información ya es cosa suya.
YouTubeYouTube video playerSe carga desde YouTube solo si lo pides: al hacerlo, YouTube recibe tu visita y puede usar sus propias cookies. También puedes verlo en YouTube.El código es abierto, con licencia MIT, y está en GitHub.
Lo que no tiene sentido es usarla para esconderle anuncios a Google. Que los detectores automáticos de Chrome no vean algo no quiere decir que nadie lo vea, porque un revisor del Ad Experience Report lo vería y los lectores lo sufren cada día.
Qué mide la herramienta
La herramienta sigue las definiciones de Better Ads y las reglas con las que Chrome mide sus anuncios, y añade lo que esas definiciones no recogen o dejan a interpretación. En la tabla está cada medida, lo que dice la fuente oficial y lo que hace la herramienta.
| Medida | Qué dice la definición oficial | Qué hace la herramienta |
|---|---|---|
| Densidad de anuncios | Better Ads suma la altura de los anuncios dentro del contenido principal y la divide por la altura de ese contenido. Deja fuera la cabecera, el pie, la navegación y los artículos relacionados, y cuenta una sola vez la altura de un anuncio fijo. Suspende por encima del 30 % en móvil y del 50 % en escritorio, o del 30 % en escritorio si la página tiene un vídeo fijo | Busca sola dónde empieza y dónde acaba el contenido principal, cuenta una vez los anuncios que comparten altura, uno junto a otro, y cuenta los skins como anuncios fijos. Además suma los anuncios que Chrome no etiqueta y los huecos rotulados como publicidad, aunque estén vacíos |
| Anuncio fijo grande | Better Ads suspende un anuncio fijo que ocupa más del 30 % de la pantalla, y Chrome lo busca en el centro de la parte baja, al 90 % de su altura | Lo mide como Chrome y muestra también los anuncios anclados al borde inferior, que nunca llegan al límite |
| Pop-ups e intersticiales | Better Ads suspende un anuncio que aparece encima del contenido y lo bloquea, sea cual sea la densidad. Chrome solo lo detecta si está en el centro de la pantalla, ocupa más del 10 % y desaparece sin que la página se mueva | Cuenta como pop-up un anuncio en una capa fija sobre el contenido que tapa la mitad de la pantalla o más, y lo cierra a los tres segundos, como haría un lector |
| Ad gates | Ni Better Ads ni Chrome los nombran | Los trata como pop-ups cuando difuminan más del 10 % de la pantalla, porque bloquean el contenido principal |
| Redirección automática | El Abusive Experience Report de Google la considera abusiva y Better Ads no la menciona | Detiene el test, avisa en el panel de adónde llevó la página y devuelve la pestaña al artículo |
| Reproductores de vídeo | Better Ads tiene un estándar de vídeo aparte, y Chrome etiqueta como anuncio todo lo que crea un script publicitario, también un reproductor | No cuenta un reproductor que enseña los vídeos de la web, y como no mide los anuncios que reproduce, lo avisa en el panel |
| Métricas de anuncios de Chrome | Chrome mide qué parte de la pantalla ocupan de media los anuncios que etiqueta y cuenta los de 10 000 px² o más | Las recalcula con las mismas reglas, con un margen de unos dos puntos frente a DevTools, y las pone al lado de los datos de CrUX |
Lo que no mide también lo dice el panel. Son los anuncios nativos que Chrome no etiqueta, el vídeo que arranca solo con sonido, los anuncios que parpadean y los que se insertan dentro del propio stream de vídeo.
Ejemplos de discrepancias
He elegido 14 ejemplos de medios en los que lo que cuenta Chrome no coincide con lo que contaría un revisor. En 11 de ellos Chrome no ve el anuncio o no lo reconoce como pop-up, en uno marca como anuncio algo que no lo es y en los dos restantes etiqueta el intersticial, pero lo suma a su media de pantalla en vez de tratarlo como pop-up. La herramienta, en cambio, lo valora aparte y lo cierra a los tres segundos, como haría un lector.
| Anuncio | Web (dispositivo) | Qué pasa | Chrome (etiquetas · % de pantalla medio) | Mi tool (densidad de Better Ads y veredicto) |
|---|---|---|---|---|
| Addoor | Diario de Sevilla (móvil) | Bloques de Addoor que Chrome no etiqueta | 4 · 5 % | 69,8 %, suspende (límite 30 %) |
| Refinery89 | Europa Press (móvil) | Anuncios de Refinery89 fuera de la lista de Chrome | 16 · 15 % | 33,1 %, suspende (límite 30 %) |
| videoo.tv | El Independiente (móvil) | Unidad de vídeo de videoo.tv sin etiquetar | 6 · 7 % | 22,2 %, aprueba (límite 30 %) |
| SunMedia | Faro de Vigo (escritorio) | Chrome etiqueta el vídeo de 248 px, pero la caja de SunMedia mide 331 px | 24 · 9 % | 28 %, aprueba (límite 50 %) |
| Infolinks | CBS (escritorio) | Banda fija de Infolinks de la que Chrome solo etiqueta una pieza de un 1 % de pantalla | 38 · 13 % | 26 %, aprueba (límite 50 %), con un anuncio fijo del 6 % |
| Anuncios de la casa | Newsweek (escritorio) | Anuncios propios («Become a Member») servidos por Google Ad Manager que Chrome no etiqueta | 1 · 0 % | 7 %, aprueba (límite 50 %) |
| Huecos rotulados | NY Post (móvil) | Huecos de 274 px con «Advertisement», vacíos | 0 · 0 % | 20,5 %, aprueba (límite 30 %) |
| Huecos rotulados | Infobae (escritorio) | Huecos de 640 px con «PUBLICIDAD», vacíos | 10 · 12 % | 49,1 %, aprueba por poco (límite 50 %) |
| Skin de wemass | El Correo (escritorio) | Fondo publicitario detrás del contenido, sin etiquetar | 11 · 17 % | 45,6 %, aprueba (límite 50 %) |
| Ad gate (membrana) | Diario de Navarra (móvil) | Capa que difumina el artículo hasta ver un anuncio | 7 · 12 % | 33,7 % (límite 30 %) y un pop-up que tapa el 90 % de la pantalla, suspende |
| Ad gate (Google) | Levante-EMV (móvil) | «Desbloquea el contenido tras un breve anuncio», y Chrome etiqueta el anuncio pero no el pop-up | 48 · 17 % | 22,9 % (límite 30 %), pero suspende por un pop-up que tapa toda la pantalla |
| Intersticial (bwin) | Sport (móvil) | Pop-up a pantalla completa que infla la media de Chrome cuando el test no lo cierra | 25 · 35 % | 33,2 % (límite 30 %) y un pop-up que tapa el 89 % de la pantalla, suspende |
| Intersticial | Información (móvil) | Pop-up a pantalla completa | 25 · 13 % | 26,1 % (límite 30 %), pero suspende por un pop-up que tapa toda la pantalla |
| Reproductor de vídeo | NY Post (escritorio) | Chrome etiqueta como anuncio el reproductor que muestra las noticias de la web | 19 · 11 % | 23,4 %, aprueba (límite 50 %), sin contar el reproductor |
Las dos columnas de cifras no miden lo mismo. La de Chrome es el porcentaje medio de pantalla que ocupa lo que etiqueta, mientras que la de la herramienta es la densidad de Better Ads sobre el contenido principal. Una página aprueba con una densidad de hasta el 30 % en móvil y del 50 % en escritorio, y un pop-up la suspende por sí solo, sea cual sea la densidad.
Anuncios que Chrome y CrUX ad metrics no etiquetan
Chrome solo etiqueta lo que crean los scripts de su lista de filtros, que es un recorte de EasyList, así que redes enteras, anuncios propios y huecos reservados se quedan fuera de su medida. En cada imagen aparece a la izquierda lo que ve Chrome y a la derecha lo que cuenta la herramienta, con el motivo.
Redes que la lista de Chrome no recoge
En Diario de Sevilla, en móvil, los bloques de Addoor no llevan etiqueta de Chrome aunque EasyList los nombra (||addoor.net^), de modo que Chrome mide un 5 % de pantalla mientras la densidad de Better Ads llega al 69,8 %. En Europa Press pasa lo mismo con los anuncios de Refinery89, de 100 y 250 px (||tags.refinery89.com^), y en El Independiente con la unidad de vídeo de videoo.tv. En Faro de Vigo, en escritorio, Chrome sí etiqueta el vídeo de SunMedia, pero solo esa parte de 248 px, mientras que la herramienta cuenta la caja entera del anuncio, de 331 px.
En CBS, en escritorio, la banda fija de Infolinks al pie de la pantalla ocupa un 6 % de ella, pero Chrome solo etiqueta la imagen pequeña que lleva dentro, de un 1 %, y la herramienta cuenta la banda entera (||infolinks.com^).





Anuncios de la casa
Newsweek, en escritorio, sirve anuncios propios («Independent Journalism Needs You! · Become a Member») a través de Google Ad Manager y Chrome no etiqueta ninguno, por lo que su media se queda en el 0 %. Según la carga aparecen entre cuatro y ocho. La herramienta los encuentra porque los crea el script de Google (||g.doubleclick.net^).

Huecos rotulados
Un hueco con el rótulo «Publicidad» ocupa espacio reservado para anuncios aunque esa vez no se llene, y Chrome no etiqueta nada porque no ha cargado ningún anuncio. NY Post deja en móvil huecos de 274 px con «Advertisement», e Infobae, en escritorio, de 640 px con «PUBLICIDAD».


Skins
El Correo, en escritorio, lleva un fondo publicitario de wemass detrás del contenido que se queda pegado a la pantalla mientras se hace scroll. Chrome no lo etiqueta, aunque ||wemass.com^ está en EasyList Spanish, y la herramienta lo cuenta como skin con la altura de pantalla que ocupa, 940 px.

Ad gates e intersticiales
El detector de pop-ups de Chrome solo cuenta un anuncio que esté en el centro de la pantalla, ocupe más del 10 % de ella y desaparezca sin que la página se mueva. En un ad gate lo que hay en el centro es texto de la web y no un anuncio, y un test de laboratorio nunca cierra el intersticial, así que ninguno de los dos llega a contar como pop-up.
Ad gates
Un ad gate difumina el artículo hasta que el lector pasa por un anuncio. Better Ads no nombra este formato, pero bloquea el contenido principal igual que sus pop-ups, y por eso la herramienta lo suspende como pop-up y lo explica en el panel.
En Diario de Navarra, en móvil, la tarjeta de membrana («Estimado lector · El artículo se mostrará inmediatamente después de la publicidad · Continuar») tapa el 90 % de la pantalla sobre el artículo difuminado. En la carga de la imagen Chrome etiquetó el botón «Continuar», y por eso la vista Chrome, que aplica nuestras reglas a sus etiquetas, también muestra el gate, aunque su propio detector no lo marcaría porque en el centro de la pantalla está el texto de la tarjeta. En otras cargas Chrome no etiqueta nada de la capa.

El ad gate de Levante-EMV
El caso más llamativo es el de Levante-EMV en móvil. Al bajar por el artículo aparece una capa que difumina el texto y pide «Sigue disfrutando de la noticia · Desbloquea el contenido al instante tras un breve anuncio», con un botón para ver el anuncio y seguir leyendo. La sirve Google Ad Manager (||g.doubleclick.net^) y cubre toda la pantalla, así que para el lector funciona como un pop-up de manual, porque no puede seguir leyendo sin pasar por el anuncio.
Chrome etiqueta el anuncio de 600 px que hay dentro, pero su detector de pop-ups no marca la capa, porque en el centro de la pantalla está el texto de la tarjeta, que no es un anuncio. El resultado es que un formato de anuncios de la propia Google bloquea el contenido principal sin que Chrome lo cuente como pop-up, y en sus métricas solo aparece como un anuncio más dentro de su media de pantalla. Better Ads no nombra los ad gates, probablemente porque este formato no existía cuando se escribieron sus normas, pero es difícil que un revisor que viera esta pantalla no la considerara un pop-up. La herramienta lo suspende como tal y lo explica en el panel.

Intersticiales
En Sport, en móvil, el pop-up de bwin ocupa la pantalla entera, con cuenta atrás y botón de cierre, y está hecho de varias piezas que Chrome etiqueta y suma a su media de pantalla. Como el test de laboratorio no lo cierra, esa media sube al 35 %, mientras que la herramienta lo cuenta como pop-up (89 % de la pantalla) y lo cierra a los tres segundos. En Información, también en móvil, el intersticial ocupa el 100 % de la pantalla y la herramienta lo suspende como pop-up.


Reproductores de vídeo
Chrome etiqueta como anuncio todo lo que crea un script publicitario, muestre lo que muestre. En NY Post, en escritorio, marca así el reproductor de Connatix, que enseña los vídeos de noticias de la propia web. La herramienta no lo cuenta, porque ese espacio pertenece al vídeo igual que el texto pertenece al artículo.
En una grabación de 45 segundos el reproductor puso un clip de 65 segundos de la videoteca de NY Post y después otro de Minute Media, mientras sus huecos de anuncio seguían parados, y en 15 cargas solo una vez sonó un anuncio de unos segundos. Aun así, Chrome etiqueta cada pieza que crea el script de Connatix, desde el <video> del contenido hasta los huecos de anuncio y los marcos de Google IMA, y suma 19 etiquetas y un 11 % de pantalla de media.
La herramienta no cuenta un reproductor que se ve mostrando su vídeo, aunque dentro suene un anuncio, y lo marca como «not counted · content video player», y tampoco lo cuenta cuando flota en una esquina. Los anuncios que reproduce se rigen por el estándar de vídeo de Better Ads, que el test no mide, y el panel lo avisa. Lo mismo ocurre con los reproductores de Información y People, que muestran vídeos propios, y con los de Mirror (Primis) y El Economista (EX.CO), que muestran noticias de sus redes.

y la herramienta no cuenta (gris)
Todo esto depende de cómo esté montado el reproductor. Si lo crea un script que Chrome tiene en su lista de anuncios, como el de una red de vídeo o el SDK de anuncios de Google (IMA), Chrome etiqueta cada pieza que ese script añade a la página, desde el contenedor hasta el <video> y el marco de IMA. En The US Sun, por ejemplo, la herramienta avisa de que "Chrome tags 3 elements that aren't counted: 3 pieces of content video players", y son piezas del reproductor que enseña los vídeos de la propia web. Así que, si tu reproductor está hecho de esta forma, Chrome te contará tres etiquetas donde en realidad puede que solo haya un reproductor, y quizá ni siquiera muestre anuncios.
Otros hallazgos
Tests de laboratorio y bots
Las webs y sus pilas de anuncios evitan servir a bots, porque lo consideran tráfico no válido, y un test de laboratorio como que hace mi tool podría fallar por 2 vías. La primera es la marca de automatización, ya que un Chrome controlado por automatización avisa a las webs con navigator.webdriver = true, y con ella las mismas páginas recibieron muchos menos anuncios, como muestra la tabla. La segunda es la falta de movimiento, porque algunas webs, como El Independiente, no sirven anuncios hasta que hay interacción, así que el test hace lo mismo que un lector y, tras la carga, mueve el ratón una vez por el borde izquierdo de la pantalla, sin hacer clic ni scroll.
| Web (dispositivo) | Con la marca de bot | Sin ella |
|---|---|---|
| Vozpópuli (escritorio) | 1 hueco de Google, sin puja · 0 % | 12 huecos y puja completa · 62,4 % |
| Vozpópuli (móvil) | 0 % | 36,3 % |
| El Independiente (móvil) | 0 % | 17,3 % |
La extensión evita las dos cosas, porque corre en el Chrome de quien hace el test, donde esa marca vale false, y mueve el ratón como lo haría un lector. Una medida de anuncios hecha con un navegador automatizado y sin interacción puede quedarse corta.
Redirección maliciosa en El Independiente
En El Independiente, en móvil, a los 32,8 segundos de cargar el artículo y sin que nadie tocara la pantalla, un script inyectado con eval simuló un clic en un enlace y llevó la pestaña a una falsa alerta de McAfee. No pasa siempre, y solo pasó cuando el navegador no se identificaba como automatizado.
La cadena empieza en webtransit.live/visit.php?…&bid_id=…&pub=elindependiente.com&exchange=…, la dirección de un anuncio comprado en una subasta programática. Desde ahí, una redirección 302 lleva a safedevice.click/avs/es/mob/mcafee-2.php, que recibe en la propia dirección el país, la operadora, la ciudad, el sistema y el modelo de móvil del lector, y termina en «Escaneando tu dispositivo», un escaneo falso de McAfee SiteAdvisor con una campanita para pedir permiso de notificaciones.
Desde las versiones 64 y 65, de 2018, Chrome bloquea las redirecciones que lanza un iframe de terceros sin interacción del lector y también el «tab-under», pero esta se ejecutó dentro del propio marco de la página y por eso no la frena. El Abusive Experience Report de Google considera abusiva la redirección automática, aunque actúa a partir de revisiones de la web y no en cada visita, y Better Ads no la menciona. La herramienta ya la detecta, y cuando ocurre detiene el test conservando lo que había medido, avisa de la redirección en el panel y devuelve la pestaña al artículo.

Lo que descarté de implementar en la tool
Descarté lo que una extensión no puede medir bien y lo que no llegó a verse en las pruebas, y en esos casos el panel dice qué no mide en lugar de dar una cifra errónea.
| Qué | Por qué se descartó | Qué queda |
|---|---|---|
| CPU de anuncios | Chrome solo la da en su dominio Ads de depuración (Ads.getAdMetrics), que está cerrado a las extensiones, y no hay otra forma de atribuir CPU a los anuncios | El dato de CrUX en la tabla del panel |
| Red de anuncios (KB) | Nuestro cálculo cuadraba con Chrome al ±3 % en 3 webs, pero en la validación se desvió +7,4 %, −7,2 % y +14,5 %, y hasta +52 % en móvil con scroll y vídeo, y ninguna de las tres formas de contarla que probamos resultó fiable | El dato de CrUX. Ni la CPU ni la red forman parte de Better Ads, sino de la medida de Chrome contra anuncios pesados |
| Estándar de vídeo de Better Ads (mid-rolls, pre-rolls de más de 31 s sin poder saltar, anuncios superpuestos) | Chrome lo aplica desde el 5 de agosto de 2020 revisando la web, sin un detector en el navegador. Medirlo exigiría ver minutos de vídeo, el botón de saltar está en un iframe de otro dominio y los anuncios insertados en el stream no se distinguen del contenido. Además, en 20 grabaciones de 10 páginas de vídeo apenas salió algún pre-roll | El panel dice que los anuncios del reproductor no se miden |
| Lo que el test no mide | Nativos que Chrome no etiqueta (las parrillas dentro del artículo cuentan como contenido), vídeo con sonido automático, anuncios que parpadean y anuncios insertados en el stream (Google DAI) | Lo dice el README |
Cómo funciona por dentro
La extensión controla la pestaña con el protocolo de depuración de Chrome, el mismo que usa DevTools. Emula el móvil o el escritorio, baja por la página pantalla a pantalla como lo haría un lector y en cada parada anota dónde está cada anuncio, qué parte de la pantalla ocupa y si sigue en el mismo sitio cuando la página se mueve, que es como reconoce los anuncios fijos. No espera a que la página termine de cargarlo todo, porque hay webs que siguen cargando anuncios mucho después de que el artículo esté a la vista. El test empieza a bajar cuando el documento lleva 5 segundos listo, que es lo que haría un lector.
Para decidir qué es un anuncio no se queda en Blink. Chrome marca como anuncio lo que crea un script de su lista de filtros, y la herramienta lee esas marcas y recalcula con ellas la media de pantalla de Chrome, que cuadra con DevTools con un margen de unos dos puntos. Después repite el mismo razonamiento con EasyList completa y dieciocho listas regionales, casi cien mil reglas. Para cada elemento pide a Chrome la pila de llamadas con la que se creó, mira qué script lo insertó y trata como publicitario también lo que carga un script publicitario, igual que hace Blink. Solo deciden las reglas que nombran un dominio, porque las que adivinan por la forma de la dirección, como /ads/, también atrapan código de la propia web, como las promociones que Estadio Deportivo sirve desde ads.meteored.com.
También deja fuera lo que Chrome etiqueta sin ser un anuncio. En un reproductor de vídeo mira qué <video> está sonando, si el del contenido o el que abre Google IMA para el anuncio, y no cuenta el reproductor que muestra vídeos de la web. Busca además los huecos rotulados como publicidad y los ad gates, y los pop-ups los busca en el centro de la pantalla, como el detector de Chrome, pero también dentro de esas capas que difuminan el artículo. Cuando encuentra uno lo cierra a los tres segundos, como haría un lector, y sigue midiendo el resto de la página.
La densidad se mide sobre el contenido principal, así que la herramienta tiene que saber dónde empieza y dónde acaba el artículo en webs que no ha visto nunca. Primero se fía de lo que declara la propia página, como las etiquetas article, main, aside o footer y sus roles equivalentes, y después busca dónde acaba el texto y empiezan las recomendaciones, los comentarios o el pie. Esas reglas se ajustaron con artículos marcados a mano en una veintena de medios y se comprobaron con otra veintena que no se usó para ajustarlas, como se valida un modelo, para que no acabaran hechas a medida de los medios de prueba. Son reglas generales, sin excepciones para ningún medio concreto.
Para que las webs no lo traten como un bot, el test se hace pasar por un lector. Corre en el Chrome de quien lo lanza, que no lleva la marca de automatización, y tras la carga mueve el ratón una vez, porque algunas webs no sirven anuncios hasta que notan movimiento.
Lo que más trabajo dio fueron las capturas. La imagen de la página entera se monta con una captura por pantalla, y lo que se queda fijo, como los anuncios sticky, las barras de la web o las capas de los ad gates, saldría repetido en cada trozo o tapando el contenido, así que la herramienta lo quita de las capturas siguientes y lo dibuja una sola vez. Los skins dieron guerra aparte, porque el anuncio está detrás del contenido, solo asoma por los lados y a veces se queda fijo mientras se baja. Y había que tener en cuenta los bloques que la web carga o retira durante el scroll, que mueven todo lo demás y dejaban huecos en blanco en la imagen. Casi cuatro de cada diez cambios del código tienen que ver con las capturas y con lo que se queda fijo en pantalla.
Aun así, seguro que hay casos que se me escapan, así que te agradecería que me mandaras cualquier fallo que encuentres.

