Google y los AdBlockers
Los ingresos de Google vienen en un 90% de la publicidad:


Curiosidad: ¿Cuanto gana Google por cada búsqueda? Google no informa de ese desglose pero estoy seguro que es una métrica que manejan internamente. No obstante podemos hacer una aproximación burda: hay unos 100 billones de búsquedas mensuales en Google, en 3 meses son 300 * 10⁹. Los ingresos en Google websites (supondremos que todo son búsquedas) son 12.402 * 10⁹ así que cada búsqueda supone 12.402/300 = 4,13 céntimos (de $) por cada búsqueda (de media); usando la métrica RPM (revenue per thousand impressions: ingresos por mil páginas vistas) esto supone $41 por cada mil búsquedas. Es un ejercicio muy sano para cualquier web calcular su RPM, tanto si vive de la publicidad como si no. De las que conozco personalmente tienen un RPM muy inferior a $40 (excepto si son e-commerce).
Estratégicamente Google invierte recursos en defender y saturar su modelo de negocio: ¿Qué se interpone entre el usuario y la capacidad de Google de servir anuncios? El dispositivo, el sistema operativo, el navegador y la red. Google está interesado en facilitar el acceso a su plataforma (para servir anuncios) y que ninguno de esos elementos sea un obstáculo o pueda serlo si está controlado por intereses hostiles, así que invierte en controlar cada elemento o bien convertirlo en algo tan básico y no diferenciado que sea intercambiable sin apenas coste (“commoditizar”):
- Dispositivo (hardware): Chromebook es el caso más relevante. Tener el control del dispositivo tiene interés por dos cosas:
1) por controlar el sistema operativo y
2) que el precio no suponga barrera de entrada. - Sistema operativo: Además del aumentar el precio final de cara al consumidor final (Windows, en escritorio), el sistema operativo puede ser un obstáculo si no prioriza el funcionamiento en internet (acordaros del sistema operativo de los móviles Nokia) y también la preselección del navegador o canales por los que pueda fluir la publicidad. En móviles, el navegador irá poco a poco bajando de relevancia para muchas búsquedas que gravitarán a aplicaciones específicas o interfaces conversacionales (e.g: Siri, Cortana, M, etc.).
- Navegador: Además de sugerir el buscador por defecto, el navegador puede facilitar la inclusión de tecnologías de AdBlocking. Personalmente me resulta muy irónico que haya sido el propio Google Chrome el que ha popularizado el AdBlocking con las extensiones (ya se podía hacer antes con Firefox y Greasemonkey pero no era habitual).
- Red: Tradicionalmente el principal obstáculo ha sido la velocidad, el acceso o el precio (de ahi que Google haga experimentos en convertirse en proveedor de acceso), pero el control de la red también puede boicotear la entrega de anuncios o su contenido: reducción de velocidad para videos (Youtube) y más radicalmente la eliminación (o sustitución) de anuncios a nivel de red. Uno de los motivos que Google tiene para que internet gravite a HTTPS (SSL/TLS) es precisamente garantizar la integridad del contenido hasta el usuario y que nadie por en medio pueda modificarlo, en este caso: eliminar o sustituir anuncios.
AdBlockers
Por hardware (dispositivo)
Que yo sepa no hay AdBlockers que funcionen nativamente en hardware, pero su control permite a los fabricantes imposibilitar modificaciones del software que no les convengan. Por ejemplo, el control del hardware del iPhone permite que Apple controle lo que se ejecuta en su entorno y que no haya querido dar tímido soporte a los AdBlockers en el iPhone hasta hace relativamente poco (iOS 9). Igualmente no es fácil instalar AdBlockers en la PS4 o Xbox, si las usamos para navegar por internet.
En el sistema operativo
El caso de Android hay multitud de AdBlockers que bloquean anuncios. La Play Store está llena de AdBlockers que o bien constituyen navegadores en sí mismo, o bien (como en iOS 9) extensiones que bloquean selectivamente anuncios en navegadores ya existentes.


En el caso de Android hay un conflicto de interés clarísimo en el control que pretende ejercitar Google en el ecosistema sin asumir el la fabricación del hardware. Google quiere aplanar el terreno para que existan terminales baratos poniendo el sistema operativo mientras que los fabricantes de hardware Android luchan en un terreno de márgenes cada vez más hostil; todo mientras Apple se lleva más del 90% de los beneficios de los terminales (vendiendo sólo un 20% de ellos).
Esta misma semana Google hace el primer movimiento para limitar el uso de AdBlockers en Android respondiendo al lanzamiento de Samsung de tecnología para crear AdBlockers de forma muy sencilla. Mi sensación es que Samsung quiere diferenciar sus terminales con una estrategia similar a la de Apple: ofrecer una experiencia similar a la que puedes tener con iPhone con los Content Blockers de Safari, y quizás introducirse en el mercado de la publicidad para ganar fuerza de negociación con Google o aumentar el margen por terminal monetizando a futuro con el indulto selectivo de anuncios (como hace AdBlock Plus) por un módico precio, claro.
Técnicamente el bloqueo de anuncios a nivel de sistema operativo consiste simplemente en facilitar el bloqueo de anuncios a nivel de red, o a nivel de navegador, puesto que gran parte del navegador en dispositivos móviles se ha sedimentado en el sistema operativo (tanto en iOS como en Android).
Existen algunos AdBlockers en Android que en realidad usan bloqueo a nivel de red mediante redirección de DNS.
A nivel de red
El bloqueo de anuncios a nivel de red se puede hacer de dos formas:
- Inspeccionando el tráfico (fundamentalmente HTTP) y modificándolo de forma dinámica, o bien
- Inspeccionando las peticiones DNS y anulando las relacionadas con publicidad.
La gran ventaja del bloqueo a nivel de red es que funciona para todos los dispositivos de una red sin tener configurar o instalar nada cada uno.
La desventaja es que no funciona siempre, especialmente para anuncios incrustados en páginas seguras. Aunque no es muy común, técnicamente es posible filtrar anuncios servidos via HTTPS a nivel de red usando técnicas MiTM, aunque con mejoras como HSTS será cada vez más complicado.
Como usuario lo puedes poner de dos formas:
a) Contratándolo. Por ejemplo Movistar ofrece bloqueo de anuncios selectivo como parte de su paquete Canguro Net Plus que vale menos de 5 EUR/mes.


Personalmente no lo he probado pero si funciona en conexiones 4G resultaría interesante ¡Por cierto: nadie me paga por poner esto!
Existe una empresa de tecnología israelí que provee este tipo de soluciones para las operadoras.
b) Para el filtrado de DNS: instalando un DNS haga el filtrado de peticiones de anuncios. El DNS es un tema delicado a nivel de seguridad así que recomiendo no poner cualquier DNS alegremente sin saber quien hay detrás. Con una Raspberry Pi es trivial instalar un bloqueador de anuncios de este tipo y con OpenWRT se puede adaptar el Pi-Hole fácilmente (si a alguien le interesa que me escriba un tweet y publicaré un articulo de cómo hacerlo).
En su versión más sencilla el filtrado de DNS consiste en tener un listado de nombres de dominio cuya única finalidad es servir anuncios y redirigirlos para anularlos: o bien usando un servidor intermedio que sirva contenido hueco en vez de anuncios o bien resolviendo la IP de los servidores de anuncios a una IP inexistente (i.e. 0.0.0.0).
En el navegador
Con una extensión es posible introducir reglas que bloqueen secciones de una página que concuerden con filtros muy granulares:


La gran ventaja es que los filtros pueden ser por URL (no sólo por nombre de dominio o IP, sino por el path en la URL) y también por selector dentro del DOM de la página.
Existen extensiones con las que es muy sencillo crear reglas para identificar y bloquear anuncios:


Idea
Os dejo una idea que podría ser la base de un proyecto:
Dispositivo casero auto-configurable que:
- Elimina anuncios a nivel de red, se podría basar en https://pi-hole.net.
- Detecta de si algún dispositivo de tu casa está infectado (inspeccionando comunicación con IPs sospechosas, etc.)
- Proporciona comunicaciones seguras con 1 click, configurable a nivel de Proxy a un país determinado con 1-click.
- Control de contenidos y horario por dispositivo (e.g. la XBOX o PS4 no tienen conexión a internet a la hora de los deberes, el Clash of Clans, Youtube, etc. sólo disponible 20 minutos al día, etc.).
Innovación
Tecnológicamente el bloqueo de anuncios está generando innovaciones que a mi personalmente muy interesantes. Espero que la industria responda igual y no con presión regulatoria (imaginad un canon por el bloqueo de anuncios) o “innovaciones” como esta (es un fake):


Contramedidas
Que conste que creo que las medidas más eficaces consisten en darle al usuario una experiencia buena sin abusar de la publicidad; pero puestos a anticipar contramedidas:
- HTTP vs. HTTPS: Migración a protocolos que imposibiliten la modificación de contenidos a nivel de red y capas por encima para que no sea posible interceptar HTTPS ni con la complicidad del usuario (no aceptación de certificados proporcionados por el usuario, HSTS, etc.).
- Nuevos formatos para garantizar la integridad del contenido (y sus anuncios): extensiones del lenguaje o añadidos técnicos para garantizar la integridad del HTML y que el browser alerte al usuario si alguna extensión ha violado la integridad de los anuncios.
- Cierre gradual de la “neutralidad del navegador” o reducción de la visibilidad de extensiones de bloqueo. ¿Es normal que AdBlockPlus con más de 10,000,000 instalaciones no esté mucho más arriba en la página de extensiones más populares de productividad?
Volviendo al dato que abría el artículo: el 90% de los ingresos de Google viene de la publicidad, y de éstos el 77% viene de las páginas propias de Google (buscador, etc.). Los anuncios en el buscador son mucho menos molestos que la gran mayoría de anuncios de otras webs: el problema es menor y no sería nada difícil para Google dificultar la vida de un AdBlocker ofuscar el modelo DOM aleatoriamente para que sigan saliendo los AdWords.