Cara Google meningkatkan performa iklan dengan validasi yang tidak berlaku saat validasi ulang

Ketahui bagaimana pemuatan resource pihak ketiga lebih cepat dapat meningkatkan pendapatan.

Jonathon Imperiosi
Jonathon Imperiosi

Studi kasus ini menyoroti bagaimana 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 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 di mana 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 yang 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 TTL 15 menit berakhir, versi gpt.js dalam cache akan menjadi usang 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 jangka waktu tambahan saat cache dapat menggunakan aset yang sudah tidak berlaku saat aset divalidasi ulang secara asinkron. Hal ini membantu developer menyeimbangkan antara kecepatan—langsung memuat konten yang di-cache—dan keaktualan—memastikan update pada konten yang di-cache digunakan pada masa mendatang.

Studi kasus iklan Display Google

Tim GPT menambahkan header Cache-Control ini di 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 digunakan di masa mendatang.

Chrome meluncurkan stale-while-revalidate di versi 75 hingga 99% dari semua traffic, meninggalkan 1% traffic dengan fitur yang dinonaktifkan sementara untuk mengukur dampaknya. Tim GPT mencatat metrik dari 1% ini (grup eksperimental) serta 1% sampel traffic dengan fitur yang diaktifkan (grup kontrol), untuk menguji keefektifan stale-while-revalidate untuk skrip iklan. Selama 2 minggu metrik yang dicatat dari ukuran sampel 5,2 miliar tayangan iklan Display Google, kelompok 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).
  • 1,1% peningkatan pada keseluruhan skrip iklan yang berhasil dimuat.
Perubahan poin persentase dalam jumlah pemuatan skrip iklan vs. Waktu dari awal pemuatan halaman hingga pemuatan skrip iklan (md)
Sumber: Data Internal Google, Juni hingga Juli 2019.

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 validasi ulang saat validasi ulang di situs Anda

Tim GPT telah melihat bahwa perubahan yang relatif sederhana pada header HTTP dengan stale-while-revalidate dapat meningkatkan kecepatan dan 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.

Foto oleh Kahica di Unsplash