Como o Google melhorou a performance dos anúncios com o recurso obsoleto durante a revalidação

Descubra como carregar recursos de terceiros mais rapidamente pode aumentar a receita.

Jonathon Imperiosi
Jonathon Imperiosi

Este estudo de caso destaca como melhorar a performance dos recursos de terceiros pode aumentar as métricas de negócios. Enquanto um estudo anterior mediu o custo da latência de anúncios adicionada, este estudo demonstra o valor de uma melhoria de desempenho real:

0,5%

Aumento da receita para editores

2%

Aumento nos carregamentos iniciais de scripts de anúncios

Fonte: dados internos do Google, junho a julho de 2019.

Contexto

A Tag do editor do Google (GPT) é o script de inclusão de tags do Google Ad Manager que solicita e renderiza anúncios de display na Web. Ao implementar um cabeçalho HTTP stale-while-revalidate simples para o GPT, a equipe do GPT conseguiu melhorar a velocidade e a performance dos anúncios de display do Google para os parceiros de editores. Essa mesma técnica pode ser aplicada a qualquer outro cenário em que carregar scripts o mais rápido possível é mais importante do que carregar o código mais recente.

O problema

A GPT é implantada como um script de inicialização, gpt.js, que tem um tempo de vida (TTL) curto de 15 minutos. Esse TTL curto permite que o script seja atualizado ou revertido rapidamente. Depois de carregado, gpt.js solicita e carrega outros scripts de implementação, que têm um TTL mais longo.

Quando o TTL de 15 minutos expirar, a versão de gpt.js no cache ficará desatualizada e precisará ser revalidada. Antes, esse processo de revalidação envolvia fazer uma solicitação de rede síncrona para buscar uma cópia nova do script, o que aumentava a latência da primeira solicitação de anúncio.

A solução

O atributo stale-while-revalidate é usado pelo cabeçalho Cache-Control e define uma janela extra de tempo em que um cache pode usar um recurso desatualizado enquanto ele é revalidado de forma assíncrona. Isso ajuda os desenvolvedores a equilibrar o imediatismo (carregar o conteúdo em cache imediatamente) e a atualidade (garantindo que as atualizações do conteúdo em cache sejam usadas no futuro).

Estudo de caso dos anúncios de display do Google

A equipe do GPT adicionou esse cabeçalho Cache-Control na resposta HTTP gpt.js em 2016, antecipando a implementação de stale-while-revalidate pelos navegadores:

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

Essa configuração significa que, se gpt.js for solicitado entre 15 e 60 minutos após o valor anterior em cache, esse valor será usado para atender à solicitação, mesmo que esteja desatualizado. Ao mesmo tempo, uma solicitação de nova validação será feita em segundo plano para preencher o cache com um valor atualizado para uso futuro.

O Chrome lançou a stale-while-revalidate na versão 75 para 99% de todo o tráfego, deixando 1% do tráfego com o recurso desativado temporariamente para medir o impacto. A equipe do GPT registrou as métricas desse 1% (o grupo experimental) e uma amostra de 1% do tráfego com o recurso ativado (o grupo de controle) para testar a eficácia de stale-while-revalidate em scripts de anúncios. Ao longo de duas semanas de métricas registradas com base em uma amostra de 5,2 bilhões de impressões de anúncios de display do Google, o grupo de controle observou:

  • Aumento de 0,3% nas impressões de anúncios.
  • 0,5% de aumento na receita.
  • Aumento de 2% nos carregamentos iniciais de scripts de anúncios (<500ms do início do carregamento da página).
  • Aumento de 1,1% no total de carregamentos bem-sucedidos de scripts de anúncios.
Mudança percentual no número de carregamentos de script de anúncio em relação ao tempo entre o início do carregamento da página e o carregamento do script de anúncio (ms)
Fonte: dados internos do Google, junho a julho de 2019.

Como mostrado no gráfico acima, os resultados desse experimento podem ser atribuídos a um aumento nos carregamentos bem-sucedidos do script de anúncio, com a maioria ocorrendo no início do processo de carregamento da página.

Implementar a validação parcial no seu site

A equipe do GPT observou que fazer uma mudança relativamente simples nos cabeçalhos HTTP com stale-while-revalidate pode melhorar a velocidade e aumentar as métricas comerciais. Confira a postagem Como manter as coisas atualizadas com a função "válido por um tempo" para saber mais sobre a implementação de stale-while-revalidate no seu site.

Foto de Kahica no Unsplash