Cómo Google mejoró el rendimiento de los anuncios con stale-while-revalidate

Descubre cómo la carga más rápida de recursos de terceros puede aumentar los ingresos.

Jonathon Imperiosi
Jonathon Imperiosi

En este caso de éxito, se destaca cómo la mejora del rendimiento de los recursos de terceros puede impulsar las métricas empresariales. Si bien en un estudio anterior se midió el costo de la latencia adicional de los anuncios, en este estudio se demuestra el valor de una mejora en el rendimiento en el mundo real:

0,5%

Incremento de ingresos para publicadores

2%

Aumento de las primeras cargas de secuencias de comandos de anuncios

Fuente: Datos internos de Google, de junio a julio de 2019.

Información general

Google Publisher Tag (GPT) es la secuencia de comandos de etiquetado de anuncios de Google Ad Manager que solicita y renderiza anuncios gráficos en la Web. Mediante la implementación de un encabezado HTTP stale-while-revalidate simple para GPT, el equipo de GPT pudo mejorar la velocidad y el rendimiento de los anuncios gráficos de Google para sus publicadores asociados. Esta misma técnica se puede aplicar a cualquier otra situación en la que cargar las secuencias de comandos lo más rápido posible es más importante que cargar el código más reciente.

El problema

GPT se implementa como una secuencia de comandos de arranque, gpt.js, a la que se le da un corto tiempo de actividad (TTL) de 15 minutos. Este TTL corto permite que la secuencia de comandos se actualice o revierta con rapidez. Una vez cargado, gpt.js solicita y carga secuencias de comandos de implementación adicionales, que tienen un TTL más largo.

Una vez que venza el TTL de 15 minutos, la versión de gpt.js almacenada en caché se volverá inactiva y debe volver a validarse. Anteriormente, este proceso de revalidación implicaba realizar una solicitud de red síncrona para recuperar una copia nueva de la secuencia de comandos y agregar latencia a la primera solicitud de anuncio.

La solución

El encabezado Cache-Control usa el atributo stale-while-revalidate y define un período adicional durante el cual una caché puede usar un recurso inactivo mientras el recurso se revalida de forma asíncrona. Esto ayuda a los desarrolladores a equilibrar la inmediatez (cargar contenido almacenado en caché de inmediato) y actualización, lo que garantiza que las actualizaciones del contenido almacenado en caché se usen en el futuro

Caso de éxito de los anuncios gráficos de Google

El equipo de GPT agregó este encabezado Cache-Control en la respuesta HTTP gpt.js en 2016, a la espera de que los navegadores implementaran stale-while-revalidate:

cache-control: private, max-age=900, stale-while-revalidate=3600

Esta configuración significa que, si gpt.js se solicita entre 15 y 60 minutos después del valor anterior almacenado en caché, este se usará para completar la solicitud aunque esté inactiva. Al mismo tiempo, se realizará una solicitud de revalidación en segundo plano para propagar la caché con un valor nuevo para usar en el futuro.

Chrome lanzó stale-while-revalidate en la versión 75 al 99% de todo el tráfico, lo que dejó un 1% del tráfico con la función inhabilitada temporalmente para medir su impacto. El equipo de GPT registró métricas de este 1% (el grupo experimental), así como de una muestra del 1% del tráfico con la función habilitada (el grupo de control), para probar la eficacia de stale-while-revalidate para las secuencias de comandos de anuncios. En el transcurso de dos semanas de métricas registradas de un tamaño de muestra de 5,200 millones de impresiones de anuncios gráficos de Google, el grupo de control observó:

  • Aumento del 0.3% en las impresiones de anuncios
  • Aumento del 0.5% en los ingresos
  • 2% de aumento en las primeras cargas de secuencias de comandos de anuncios (menos de 500 ms desde el inicio de la carga de la página)
  • Aumento general del 1.1% en las cargas exitosas de secuencias de comandos de anuncios
Cambio en los puntos porcentuales en la cantidad de cargas de la secuencia de comandos de anuncios en comparación con el tiempo desde el inicio de la carga de la página hasta la carga de la secuencia de comandos de anuncios (ms)
Fuente: Datos internos de Google, de junio a julio de 2019.

Como se muestra en el gráfico anterior, los resultados de este experimento pueden atribuirse a un aumento en las cargas de secuencias de comandos de anuncios exitosas, en la que la mayoría ocurre al principio del proceso de carga de la página.

Implementa el estado inactivo durante la revalidación en tu sitio

El equipo de GPT observó que hacer un cambio relativamente sencillo en los encabezados HTTP con stale-while-revalidate puede mejorar la velocidad y potenciar las métricas empresariales. Consulta la publicación Mantén todo actualizado con stale-while-revalidate para obtener más información sobre la implementación de stale-while-revalidate en tu propio sitio.

Foto de Kahica en Unsplash