Cari tahu cara memuat resource pihak ketiga dengan lebih cepat untuk meningkatkan pendapatan.
Studi kasus ini menyoroti bagaimana meningkatkan performa resource pihak ketiga dapat meningkatkan metrik bisnis. Meskipun studi sebelumnya mengukur biaya latensi iklan yang ditambahkan, studi ini menunjukkan nilai peningkatan performa di dunia nyata:
0,5%
Peningkatan pendapatan bagi 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
sederhana untuk GPT, tim GPT dapat meningkatkan kecepatan dan performa iklan Display Google untuk partner penayangnya. Teknik yang sama ini dapat diterapkan ke skenario lain yang memuat skrip secepat mungkin lebih penting daripada memuat kode terbaru.
Permasalahan
GPT di-deploy sebagai skrip bootstrap, gpt.js
, yang diberi time to live (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 yang lebih panjang.
Setelah masa berlaku TTL 15 menit berakhir, versi gpt.js
dalam cache akan menjadi tidak berlaku dan perlu divalidasi ulang. Sebelumnya, proses validasi ulang ini melibatkan pembuatan permintaan jaringan sinkron untuk mengambil salinan skrip baru, yang menambahkan latensi ke permintaan iklan pertama.
Solusi
Atribut stale-while-revalidate
digunakan oleh header Cache-Control
dan menentukan periode waktu tambahan selama cache dapat menggunakan aset yang sudah tidak berlaku saat aset divalidasi ulang secara asinkron. Hal ini membantu developer menyeimbangkan antara segera—langsung memuat konten yang di-cache—dan
keaktualan—memastikan update pada konten yang di-cache digunakan di masa mendatang.
Studi kasus iklan Display Google
Tim GPT menambahkan header Cache-Control
ini dalam respons HTTP gpt.js
pada tahun 2016, untuk mengantisipasi browser yang menerapkan stale-while-revalidate
:
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 sebelumnya yang di-cache, nilai yang di-cache akan digunakan untuk memenuhi permintaan meskipun sudah tidak berlaku. Pada saat yang sama, permintaan validasi ulang akan dibuat di latar belakang untuk mengisi cache dengan nilai baru untuk penggunaan mendatang.
Chrome meluncurkan stale-while-revalidate
di versi 75 untuk 99% dari semua traffic, sehingga 1% traffic tidak memiliki fitur ini untuk sementara guna mengukur dampaknya. Tim GPT mencatat metrik dari 1% ini (grup eksperimental) serta sampel traffic 1% dengan fitur yang diaktifkan (grup kontrol), untuk menguji keefektifan 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 sebesar 1,1% pada pemuatan skrip iklan yang berhasil secara keseluruhan.
Seperti yang ditampilkan pada diagram di atas, hasil eksperimen ini dapat dikaitkan dengan peningkatan pemuatan skrip iklan yang berhasil, yang sebagian besar terjadi di awal proses pemuatan halaman.
Menerapkan stale-while-revalidate di situs Anda
Tim GPT telah melihat bahwa membuat perubahan yang relatif sederhana pada header HTTP dengan stale-while-revalidate
dapat meningkatkan kecepatan dan meningkatkan metrik bisnis. Lihat postingan Menjaga hal-hal tetap baru dengan validasi yang usang saat validasi ulang untuk informasi selengkapnya tentang menerapkan stale-while-revalidate
di situs Anda sendiri.