Cuando se trabaja con Google Publisher Tags (GPT) y se implementa lazy loading en un sitio web, uno de los pasos críticos es confirmar que la Single Request Architecture (SRA) está efectivamente deshabilitada. Sin esta verificación, es posible que el lazy loading esté configurado en el código pero que GPT lo ignore silenciosamente, ya que ambas funcionalidades son incompatibles entre sí.
En este artículo te mostramos tres métodos concretos para verificar desde el navegador —sin herramientas de terceros— que SRA está deshabilitado en tu implementación de Google Ad Manager.
¿Qué es SRA y por qué importa deshabilitarlo?
La Single Request Architecture es una funcionalidad de GPT que agrupa todas las definiciones de slots de publicidad en una sola petición HTTP hacia los servidores de Google Ad Manager. Su propósito original es reducir la latencia de red al minimizar el número de roundtrips entre el navegador y los servidores de GAM.
Sin embargo, SRA entra en conflicto directo con el lazy loading. Cuando ambas están activas simultáneamente, GPT prioriza SRA y envía una única petición con todos los slots al momento de cargar la página, ignorando completamente los márgenes de viewport configurados en enableLazyLoad(). El resultado: se pierde el beneficio del lazy loading y todos los anuncios se cargan en el viewport inicial, afectando el rendimiento de la página.
Dato técnico La documentación oficial de Google Publisher Tags indica: “Lazy loading is not compatible with SRA. If both are enabled, GPT ignores the lazy loading settings.”
Tres métodos para verificar si SRA está deshabilitado desde el navegador
Método 1: Inspeccionar las peticiones de red (más directo y confiable)
Este método te permite observar directamente el comportamiento de GPT en la capa de red, sin necesidad de interpretar código.
1.- Abre las DevTools del navegador con F12 o Cmd+Option+I.
2.- Recarga la página mientras el panel Network está abierto.
3.- Observa el número de peticiones y su contenido.
4.- Ve a la pestaña Network y filtra por securepubads.g.doubleclick.net/gampad/ads.
| Escenario | Lo que verás en Network |
|---|---|
| SRA activo | Una sola petición HTTP con múltiples slots agrupados en los parámetros iu_parts o prev_iu_szs, y el parámetro sra=1 en la URL. |
| SRA deshabilitado | Múltiples peticiones independientes, una por cada slot. El parámetro sra=1 no aparece en ninguna URL. |
Busca específicamente el parámetro sra en la URL de las peticiones. Si sra=1 está presente, SRA sigue activo. Si no aparece, está correctamente deshabilitado.
Método 2: Consultar el estado de pubads desde la consola
GPT expone el objeto googletag.pubads() globalmente en el navegador, lo que permite inspeccionarlo directamente desde la consola de DevTools.
// Pega esto en la consola del navegador estando en la página a auditar
googletag.cmd.push(function() {
const pubads = googletag.pubads();
console.log('SRA habilitado:', pubads.isSRA ? pubads.isSRA() : 'método no disponible');
console.log('Slots definidos:', pubads.getSlots().map(s => s.getSlotElementId()));
});
Si isSRA() retorna false, la configuración es correcta y SRA está deshabilitado. Si retorna true, deberás revisar en qué parte del código se está invocando enableSingleRequest().
Método 3: Validar que el lazy loading está efectivamente activo
Este método complementa los anteriores. Si el lazy loading está funcionando correctamente (lo que solo es posible cuando SRA está deshabilitado), los slots que se encuentren debajo del fold no tendrán respuesta de GAM hasta que el usuario haga scroll hacia ellos.
// Verificar qué slots tienen respuesta y cuáles están pendientes (lazy)
googletag.cmd.push(function() {
googletag.pubads().getSlots().forEach(function(slot) {
const estado = slot.getResponseInformation() ? 'cargado' : 'pendiente (lazy)';
console.log(slot.getSlotElementId(), '→', estado);
});
});
Los slots ubicados debajo del viewport al momento de la carga inicial deben aparecer como pendiente (lazy). Si todos los slots aparecen como cargado inmediatamente, es señal de que SRA está interfiriendo o de que enableLazyLoad() no se llamó correctamente.
Secuencia correcta de inicialización GPT con lazy loading
Para que el lazy loading funcione correctamente en Google Publisher Tags, la secuencia de llamadas debe respetar el siguiente orden. Cualquier alteración puede provocar que GPT ignore la configuración de lazy loading.
// 1. Definir todos los slots
googletag.cmd.push(function() {
googletag.defineSlot('/red_id/adunit', [[728, 90]], 'div-id')
.addService(googletag.pubads());
});
// 2. Configurar lazy loading (UNA sola vez, globalmente)
googletag.cmd.push(function() {
googletag.pubads().enableLazyLoad({
fetchMarginPercent: 500,
renderMarginPercent: 100,
mobileScaling: 2.0
});
// 3. Activar el servicio — SIN enableSingleRequest()
googletag.enableServices();
});
enableLazyLoad() dentro del cmd.push de cada slot individual
es un patrón incorrecto. Al ser una API global, cada llamada sobreescribe la anterior y puede
generar comportamientos inconsistentes. Debe llamarse una sola vez, antes de
enableServices().
Resumen: tabla de diagnóstico rápido
| Lo que observas | Diagnóstico | Acción recomendada |
|---|---|---|
Parámetro sra=1 en URLs de GAM |
SRA activo | Eliminar enableSingleRequest() del código |
| Una sola petición con múltiples slots | SRA activo | Verificar closeDefSlot o equivalente |
| Múltiples peticiones independientes | SRA deshabilitado ✓ | Configuración correcta |
| Todos los slots muestran respuesta al cargar | Lazy loading no activo | Verificar orden de inicialización GPT |
| Slots bajo el fold aparecen como “pendiente” | Lazy loading activo ✓ | Configuración correcta |
Conclusión
Verificar que SRA está correctamente deshabilitado es un paso imprescindible al implementar lazy loading en Google Ad Manager. El método más rápido y confiable es inspeccionar las peticiones de red en la pestaña Network de DevTools: una implementación correcta produce múltiples peticiones independientes, sin el parámetro sra=1.
Complementar esta revisión con los comandos de consola permite confirmar tanto el estado interno de GPT como el comportamiento real de cada slot, dando visibilidad completa sobre si el lazy loading está surtiendo el efecto esperado en el rendimiento de la página.