Header bidding con Prebid.js: la subasta de 800 milisegundos
Prebid.js es la librería open source que ejecuta subastas paralelas entre 5 y 10 postores en el header de la página en menos de 1 segundo. Estos 6 puntos explican su flujo con referencias de Prebid.org.
1. Qué resuelve: de la cascada a la subasta paralela
Antes del header bidding, los ad servers llamaban a los SSP en cascada secuencial: si el primero no llenaba, pasaban al segundo con latencias de 3 a 5 segundos. Prebid invierte el modelo con 1 subasta paralela en el navegador: todos los bidders reciben la petición a la vez y el mejor precio gana en 800 a 1,000 ms.
Estudios del sector reportan uplift de 20 a 40% en CPM frente a la cascada, porque la competencia simultánea de 5+ postores eleva el precio de cierre. El contexto lo justifica: EMARKETER mide la programática sobre el 90% del display en EE.UU. (~$180B en 2025), y más del 91% ya fluye por PMP y programático directo.
2. Arquitectura: 3 piezas en el navegador
Un setup típico combina 3 piezas: el wrapper Prebid.js (idealmente menor a 100 KB), los bidder adapters (más de 300 disponibles en el repositorio oficial) y el ad server que recibe al ganador. El flujo tiene 4 fases: petición paralela, recolección de pujas hasta el timeout, selección del ganador por formato y envío de key-values al ad server.
La variante Prebid Server mueve la subasta al servidor para páginas con más de 10 bidders, reduciendo el peso en cliente a 30 KB.
3. Price granularity: 4 perfiles de buckets
Prebid redondea cada puja a buckets de precio con 4 perfiles estándar: low (incrementos de $0.50 hasta $5), medium ($0.10 hasta $20), high ($0.01 hasta $20) y dense (mixto hasta $20). La granularidad define cuántos line items necesita GAM: medium genera unos 200 buckets, dense más de 1,000.
Elegir dense sin automatización multiplica el trabajo manual por 5 veces; por eso la industria genera los line items con herramientas sobre la API de GAM en minutos.
4. Key-values: 5 señales que viajan a GAM
El ganador se comunica al ad server con 5 key-values estándar: hb_pb (precio en bucket), hb_bidder (postor ganador), hb_adid (ID de creatividad), hb_format (banner, video u otro) y hb_deal (deal ID si aplica). GAM usa esas
5 señales para el targeting de los line items de precio.
Un error de 1 carácter en el nombre del key-value deja el line item sin match en el 100% de las impresiones.
5. Timeouts y rendimiento: 3 números a vigilar
La configuración sana vigila 3 números: timeout global de 800 a 1,000 ms, timeout por bidder de 300 a 500 ms y peso del bundle menor a 100 KB. Superar 1,500 ms de subasta suma 0.5 segundos al LCP y puede costar posiciones en móvil.
Las buenas prácticas incluyen lazy-load de slots bajo el pliegue, solo 3 a 5 bidders por slot y auditoría trimestral que elimina adaptadores con win rate menor a 1%.
Referencias
- Prebid.org — Documentación oficial
- Prebid.org — Introducción a Prebid.js
- Prebid.org — Configuración con Google Ad Manager
- EMARKETER — Programática +90% del display (2026)
- IAB Tech Lab — OpenRTB