Studi kasus ini menyoroti cara peningkatan performa resource pihak ketiga dapat meningkatkan metrik bisnis. Meskipun studi sebelumnya mengukur biaya latensi iklan tambahan, studi ini menunjukkan nilai peningkatan performa di dunia nyata:
0,5%
Peningkatan pendapatan untuk penayang
2%
Peningkatan pemuatan skrip iklan awal
Sumber: Data Internal Google, Juni hingga Juli 2019.
Latar belakang
Tag Google Publisher (GPT) adalah skrip pemberian tag iklan untuk Google Ad Manager yang meminta dan merender iklan Display di web. Dengan menerapkan header HTTP stale-while-revalidate untuk GPT, tim GPT dapat meningkatkan kecepatan dan performa iklan Display Google untuk partner publisher-nya. Teknik yang sama ini dapat diterapkan pada skenario lain saat memuat skrip secepat mungkin lebih penting daripada memuat kode terbaru.
Permasalahan
GPT di-deploy sebagai skrip bootstrapping, gpt.js, yang diberi waktu aktif (TTL) singkat selama 15 menit. TTL singkat ini memungkinkan skrip diperbarui atau di-roll back dengan cepat. Setelah dimuat, gpt.js meminta dan memuat skrip penerapan tambahan, yang memiliki TTL lebih lama.
Setelah TTL 15 menit berakhir, versi gpt.js dalam cache menjadi tidak valid dan perlu divalidasi ulang. Sebelumnya, proses validasi ulang ini melibatkan pembuatan permintaan jaringan sinkron untuk mengambil salinan skrip yang baru, sehingga menambahkan latensi pada permintaan iklan pertama.
Solusi
Atribut stale-while-revalidate digunakan oleh header Cache-Control dan menentukan jangka waktu tambahan saat cache dapat menggunakan aset yang sudah usang sementara aset divalidasi ulang secara asinkron. Hal ini membantu developer menyeimbangkan antara kecepatan—memuat konten yang di-cache dengan segera—dan
kualitas—memastikan update pada konten yang di-cache digunakan pada masa mendatang.
Studi kasus iklan display Google
Tim GPT menambahkan header Cache-Control ini dalam respons HTTP gpt.js pada tahun 2016, sebagai antisipasi penerapan stale-while-revalidate oleh browser:
cache-control: private, max-age=900, stale-while-revalidate=3600
Setelan ini berarti bahwa jika gpt.js diminta antara 15 dan 60 menit setelah nilai yang di-cache sebelumnya, nilai yang di-cache akan digunakan untuk memenuhi permintaan meskipun sudah tidak berlaku. Pada saat yang sama, permintaan validasi ulang akan dilakukan di latar belakang untuk mengisi cache dengan nilai baru untuk penggunaan di masa mendatang.
Chrome meluncurkan stale-while-revalidate di versi 75 hingga 99% dari semua traffic, dan menonaktifkan fitur ini untuk 1% traffic sementara waktu guna mengukur dampaknya. Tim GPT mencatat metrik dari 1% ini (grup eksperimental) serta sampel traffic 1% dengan fitur yang diaktifkan (grup kontrol), untuk menguji efektivitas stale-while-revalidate untuk skrip iklan. Selama 2 minggu metrik dicatat dari ukuran sampel 5,2 miliar tayangan iklan display Google, grup kontrol mengamati:
- Peningkatan tayangan iklan sebesar 0,3%.
- Peningkatan pendapatan sebesar 0,5%.
- Peningkatan 2% pada pemuatan skrip iklan awal (<500 md dari awal pemuatan halaman).
- Peningkatan keberhasilan pemuatan skrip iklan secara keseluruhan sebesar 1,1%.
Seperti yang ditunjukkan dalam diagram, hasil eksperimen ini dapat dikaitkan dengan peningkatan pemuatan skrip iklan yang berhasil, dengan sebagian besar terjadi di awal proses pemuatan halaman.
Menerapkan stale-while-revalidate di situs Anda
Tim GPT telah melihat bahwa melakukan perubahan yang relatif kecil pada header HTTP dengan
stale-while-revalidate dapat meningkatkan kecepatan dan mendorong metrik bisnis. Lihat
Menjaga konten tetap aktual dengan stale-while-revalidate
untuk mengetahui informasi selengkapnya tentang penerapan stale-while-revalidate di situs Anda sendiri.