Scopri in che modo caricare più rapidamente le risorse di terze parti può aumentare le entrate.
Questo case study evidenzia come il miglioramento del rendimento delle risorse di terze parti possa incrementare le metriche aziendali. Mentre uno studio precedente ha misurato il costo della latenza aggiuntiva degli annunci, questo studio dimostra il valore di un miglioramento del rendimento reale:
0,5%
Incremento delle entrate per i publisher
Il 2%
Aumento dei primi caricamenti dello script degli annunci
Fonte: dati interni di Google, da giugno a luglio 2019.
Sfondo
Il Tag publisher di Google (GPT) è lo script di tagging degli annunci per Google Ad Manager che richiede e mostra annunci display sul web. Grazie all'implementazione di una semplice intestazione HTTP stale-while-revalidate
per GPT, il team di GPT è stato in grado di migliorare la velocità e il rendimento degli annunci display di Google per i suoi publisher partner. La stessa tecnica può essere applicata a qualsiasi altro scenario in cui caricare gli script il più rapidamente possibile è più importante del caricamento del codice più recente.
Il problema
Il deployment di GPT viene eseguito sotto forma di script di bootstrap, gpt.js
, a cui viene concesso un breve durata (TTL) di 15 minuti. Questo breve TTL consente di aggiornare o eseguire rapidamente il rollback dello script. Una volta caricato, gpt.js
richiede e carica script di implementazione aggiuntivi, che hanno un TTL più lungo.
Alla scadenza del TTL di 15 minuti, la versione di gpt.js
nella cache diventa obsoleta e deve essere riconvalidata. In precedenza, questo processo di riconvalida prevedeva l'esecuzione di una richiesta di rete sincrona per recuperare una nuova copia dello script, aggiungendo latenza alla prima richiesta di annuncio.
Soluzione
L'attributo stale-while-revalidate
viene utilizzato dall'intestazione Cache-Control
e definisce un intervallo di tempo aggiuntivo durante il quale una cache può utilizzare un asset inattivo mentre l'asset viene riconvalidato in modo asincrono. Questo aiuta gli sviluppatori a trovare un equilibrio tra immediatezza (caricamento immediato dei contenuti memorizzati nella cache) e
aggiornamento: garantisce l'utilizzo degli aggiornamenti dei contenuti memorizzati nella cache in futuro.
Case study sugli annunci sulla Rete Display di Google
Nel 2016 il team GPT ha aggiunto questa intestazione Cache-Control
nella risposta HTTP gpt.js
, 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 precedente valore memorizzato nella cache, il valore memorizzato nella cache verrà utilizzato per soddisfare la richiesta anche se non è aggiornato. Allo stesso tempo, verrà effettuata una richiesta di riconvalida in background per compilare la cache con un nuovo valore da utilizzare in 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 GPT ha registrato le metriche relative a questo 1% (il gruppo sperimentale) e a un campione dell'1% di traffico 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 su un campione di 5,2 miliardi di impressioni degli annunci display di Google, il gruppo di controllo ha osservato:
- Aumento dello 0,3% delle impressioni dell'annuncio.
- aumento delle entrate dello 0,5%.
- Aumento del 2% dei primi caricamenti dello script degli annunci (<500 ms dall'inizio del caricamento pagina).
- Aumento complessivo dell'1,1% nei caricamenti dello script dell'annuncio riuscito.
Come mostrato nel grafico riportato sopra, i risultati di questo esperimento possono essere attribuiti a un aumento dei caricamenti dello script degli annunci andati a buon fine, in gran parte all'inizio del processo di caricamento della pagina.
Implementazione di stale-Durante-convalida sul tuo sito
Il team di GPT ha notato che una modifica relativamente semplice alle intestazioni HTTP con stale-while-revalidate
può migliorare la velocità e migliorare le metriche aziendali. Per saperne di più sull'implementazione di stale-while-revalidate
sul tuo sito, consulta il post Aggiornare gli elementi con stale-what-revalidate.