In che modo Google ha migliorato il rendimento degli annunci con la riconvalida durante la fase di inattività

Jonathon Imperiosi
Jonathon Imperiosi

Questo case study evidenzia come il miglioramento del rendimento delle risorse di terze parti possa aumentare le metriche aziendali. Mentre uno studio precedente misurava il costo della latenza degli annunci aggiunti, questo studio dimostra il valore di un miglioramento del rendimento nel mondo reale:

0,5%

Aumento delle entrate per i publisher

2%

Aumento dei caricamenti anticipati degli script degli annunci

Fonte: dati interni di Google, giugno-luglio 2019.

Sfondo

Il tag publisher di Google (GPT) è lo script di tag annuncio per Google Ad Manager che richiede e visualizza gli annunci display sul web. Implementando un'intestazione HTTP stale-while-revalidate per GPT, il team di GPT è riuscito a migliorare la velocità e il rendimento degli annunci display di Google per i suoi partner publisher. Questa stessa tecnica può essere applicata a qualsiasi altro scenario in cui il caricamento degli script il più rapidamente possibile è più importante del caricamento del codice più recente.

Il problema

GPT viene implementato come script di bootstrapping, gpt.js, a cui viene assegnata una durata (TTL) breve di 15 minuti. Questa breve durata consente di aggiornare o eseguire il rollback dello script rapidamente. Una volta caricato, gpt.js richiede e carica script di implementazione aggiuntivi, che hanno una durata maggiore.

Una volta scaduto il TTL di 15 minuti, la versione di gpt.js nella cache diventa obsoleta e deve essere riconvalidata. In precedenza, questa procedura di riconvalida prevedeva l'esecuzione di una richiesta di rete sincrona per recuperare una copia aggiornata dello script, aggiungendo latenza alla prima richiesta di annunci.

Soluzione

L'attributo stale-while-revalidate viene utilizzato dall'intestazione Cache-Control e definisce una finestra di tempo aggiuntiva durante la quale una cache può utilizzare un asset obsoleto mentre l'asset viene riconvalidato in modo asincrono. In questo modo gli sviluppatori possono trovare un equilibrio tra immediatezza—caricamento immediato dei contenuti memorizzati nella cache—e aggiornamento—utilizzo futuro degli aggiornamenti dei contenuti memorizzati nella cache.

Case study sugli annunci display di Google

Il team di GPT ha aggiunto questa intestazione Cache-Control nella risposta HTTP gpt.js nel 2016, in previsione dell'implementazione di stale-while-revalidate da parte dei browser:

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

Questa impostazione significa che se gpt.js viene richiesto tra 15 e 60 minuti dopo il valore memorizzato nella cache precedente, il valore memorizzato nella cache verrà utilizzato per soddisfare la richiesta anche se è obsoleto. Allo stesso tempo, verrà effettuata una richiesta di riconvalida in background per popolare la cache con un valore aggiornato per un utilizzo futuro.

Chrome ha implementato stale-while-revalidate nella versione 75 per il 99% di tutto il traffico, lasciando temporaneamente disattivata la funzionalità per l'1% del traffico per misurarne l'impatto. Il team di GPT ha registrato le metriche di questo 1% (il gruppo sperimentale) e di un campione di traffico dell'1% con la funzionalità attivata (il gruppo di controllo) per testare l'efficacia di stale-while-revalidate per gli script degli annunci. Nel corso di due settimane di metriche registrate da una dimensione del campione di 5,2 miliardi di impressioni degli annunci sulla Rete Display di Google, il gruppo di controllo ha osservato:

  • Aumento delle impressioni degli annunci dello 0,3%.
  • Aumento delle entrate dello 0,5%.
  • Aumento dei caricamenti anticipati degli script degli annunci del 2% (<500 ms dall'inizio del caricamento della pagina).
  • Aumento complessivo dei caricamenti degli script degli annunci riusciti dell'1,1%.
Variazione in punti percentuali del numero di caricamenti dello script annuncio rispetto al tempo trascorso dall&#39;inizio del caricamento della pagina al caricamento dello script annuncio (ms)
Fonte: dati interni di Google, giugno-luglio 2019.

Come mostrato nel grafico, i risultati di questo esperimento possono essere attribuiti a un aumento dei caricamenti degli script degli annunci riusciti, la maggior parte dei quali si verifica all'inizio della procedura di caricamento pagina.

Implementare stale-while-revalidate sul tuo sito

Il team di GPT ha notato che apportare una modifica relativamente piccola alle intestazioni HTTP con stale-while-revalidate può migliorare la velocità e aumentare le metriche aziendali. Per saperne di più sull'implementazione di stale-while-revalidate sul tuo sito, consulta l'articolo Mantenere i contenuti aggiornati con stale-while-revalidate.