Dipublikasikan: 22 September 2025, Terakhir diperbarui: 7 Januari 2026
Bagi pengguna, tidak ada yang lebih membuat frustrasi daripada halaman web yang tiba-tiba melambat, menguras baterai, atau menghabiskan kuota data bulanan. Terkadang, penyebabnya bukan konten yang ingin mereka lihat, melainkan iklan yang berjalan di latar belakang.
Untuk melindungi pengalaman pengguna, Chrome menerapkan batasan pada resource yang dapat digunakan iklan. Jika iklan melebihi batas ini—menjadi iklan berat—Chrome akan menghentikan pemuatannya untuk mengosongkan resource perangkat.
Dokumentasi ini menjelaskan cara kerja intervensi ini, batas spesifik yang terlibat, dan beberapa praktik terbaik yang dapat Anda gunakan untuk memastikan iklan berjalan lancar.
Apa yang dimaksud dengan intervensi iklan berat?
Intervensi iklan berat adalah mekanisme di Chrome yang memantau penggunaan resource frame iklan. Jika iklan menggunakan bandwidth atau daya pemrosesan CPU yang tidak proporsional, Chrome akan menghentikan pemuatan frame iklan tertentu.
Sebagai ganti iklan, pengguna akan melihat kotak abu-abu dengan pesan yang menyatakan Iklan dihapus yang biasanya disertai dengan link Detail yang menjelaskan bahwa iklan tersebut menggunakan terlalu banyak resource.
Kapan iklan dianggap berat?
Chrome menentukan bahwa iklan berat berdasarkan tiga batas tertentu. Jika pengguna tidak berinteraksi dengan iklan dan iklan tersebut memenuhi salah satu kriteria berikut, iklan akan dihentikan pemuatannya:
- Penggunaan jaringan: Iklan menggunakan bandwidth jaringan lebih dari empat megabyte.
- Penggunaan CPU puncak: Iklan menggunakan thread utama selama lebih dari 15 detik dalam jangka waktu 30 detik.
- Total penggunaan CPU: Iklan menggunakan thread utama selama lebih dari 60 detik. Semua resource yang digunakan oleh iframe turunan dari frame iklan akan dihitung terhadap batas intervensi pada iklan tersebut.
Apa saja pemicu umum untuk intervensi ini?
Jenis perilaku iklan tertentu lebih cenderung memicu intervensi ini daripada yang lain. Penyebab umum meliputi:
- Media yang tidak dikompresi: Memuat gambar yang sangat besar dan dikompresi dengan buruk.
- JavaScript berat: Melakukan operasi yang luas, seperti mendekode file video menggunakan JavaScript.
- Penghitungan berat: Melakukan penghitungan yang kompleks di latar belakang.
- Konten video tanpa gestur: Memuat file video besar sebelum pengguna berinteraksi dengan iklan.
Apa yang terjadi saat iklan dihapus?
Saat Chrome mendeteksi bahwa iklan telah melebihi batas iklan berat, Chrome akan segera mengambil tindakan untuk melindungi resource perangkat pengguna.
Pengalaman pengguna
Dari perspektif pengguna, iklan akan segera dihentikan pemuatannya. Sebagai gantinya, Chrome menampilkan kotak abu-abu dengan pesan: Iklan dihapus. Jika pengguna mengklik Detail dalam penampung, mereka akan melihat penjelasan spesifik.
Pengalaman developer
Chrome juga membuat laporan intervensi dengan Reporting API untuk memberi tahu Anda secara pasti apa yang terjadi. Sebelumnya, laporan ini hanya dikirim ke frame iklan itu sendiri dan frame turunannya. Namun, penayang sering kali tidak mengetahui bahwa iklan di halaman mereka sendiri dihapus. Untuk mengatasi hal ini, Chrome telah memperluas mekanisme pelaporan. Laporan intervensi kini dikirim ke frame penyematan (induk dari frame iklan root) selain ke frame iklan itu sendiri. Laporan yang dikirim ke frame penyematan mencakup ID frame turunan dan URL frame iklan.
Untuk mengonfigurasi halaman untuk laporan HTTP, respons harus menyertakan header Report-To:
Reporting-Endpoints: default="https://example.com/reports"
Permintaan postingan yang dipicu akan menyertakan laporan seperti ini:
POST /reports HTTP/1.1
Host: example.com
…
Content-Type: application/report
[{
"type": "intervention",
"age": 60,
"url": "https://example.com/url/of/ad.html",
"body": {
"sourceFile": null,
"lineNumber": null,
"columnNumber": null,
"id": "HeavyAdIntervention",
"message": "Ad was removed because its CPU usage exceeded the limit. See https://www.chromestatus.com/feature/4800491902992384?utm_source=devtools"
}
}]
Frame penyematan akan menerima laporan serupa, yang ditujukan ke URL frame penyematan, tetapi pesan tersebut juga akan berisi ID frame turunan dan URL spesifik frame turunan:
...
"message": "Ad was removed because its CPU usage exceeded the limit. See https://www.chromestatus.com/feature/4800491902992384?utm_source=devtools (id=123;url=http://example2.com/pre-redirect-ad-url.html)"
...
JavaScript API menyediakan ReportingObserver dengan metode observe() yang dapat digunakan untuk memicu callback yang disediakan pada intervensi. Hal ini dapat berguna jika Anda ingin melampirkan informasi tambahan ke laporan untuk membantu proses debug.
// callback that will handle intervention reports
function sendReports(reports) {
for (let report of reports) {
// Log the `report` json using your own reporting process
navigator.sendBeacon('https://report.example/your-endpoint', report);
}
}
// create the observer with the callback
const observer = new ReportingObserver(
(reports, observer) => {
sendReports(reports);
},
{ buffered: true }
);
// start watching for interventions
observer.observe();
Karena intervensi menghentikan pemuatan halaman iframe (misalnya, iklan), gunakan peristiwa pagehide untuk memastikan callback pelaporan mengambil laporan intervensi sebelum halaman menghilang.
window.addEventListener('pagehide', (event) => {
// pull all pending reports from the queue
let reports = observer.takeRecords();
sendReports(reports);
});
JSON yang dihasilkan dari JavaScript mirip dengan yang dikirim pada permintaan POST:
[
{
type: 'intervention',
url: 'https://example.com/url/of/ad.html',
body: {
sourceFile: null,
lineNumber: null,
columnNumber: null,
id: 'HeavyAdIntervention',
message:
'Ad was removed because its network usage exceeded the limit. See https://www.chromestatus.com/feature/4800491902992384',
},
},
];
Praktik terbaik untuk developer
Untuk mencegah iklan Anda masuk ke banner iklan berat, pertimbangkan praktik terbaik berikut:
- Memerlukan interaksi pengguna untuk konten berat: Kriteria intervensi berlaku untuk iklan yang belum berinteraksi dengan pengguna. Jika pengguna mengklik atau mengetuk iklan Anda, batas resource tidak lagi berlaku. Untuk pengalaman video atau multimedia, tunggu gestur pengguna (seperti "klik untuk memutar") sebelum memuat aset berat.
- Mengoptimalkan gambar dan video: Pastikan gambar dikompresi dan video dioptimalkan untuk web. Hindari memuat file video besar secara otomatis; sebagai gantinya, gunakan placeholder ringan hingga pengguna berinteraksi.
- Mengaudit penggunaan CPU: Animasi kompleks atau operasi JavaScript yang memicu tata letak dan rendering berkelanjutan dapat meningkatkan penggunaan CPU. Gunakan alat untuk mengidentifikasi bottleneck dalam kode Anda yang mungkin membuat thread utama tetap sibuk dalam waktu lama.
- Memantau frame turunan: Ingatlah bahwa jumlah resource mencakup semua yang ada di dalam iframe iklan Anda. Jika iklan Anda memuat piksel pelacakan pihak ketiga atau sub-frame, penggunaan resource-nya akan dihitung terhadap batas Anda.
- Mengisolasi konten non-iklan: Pisahkan frame konten non-iklan ke domain yang berbeda atau pola yang dapat dikenali yang kemungkinan tidak akan dianggap sebagai domain iklan oleh kebijakan penyedia daftar filter.
Bagaimana cara melakukan debug dan mendiagnosis penyebab intervensi?
Untuk memecahkan masalah dan menyelesaikan intervensi iklan berat secara efektif, Anda harus terlebih dahulu memahami cara logika deteksi Chrome mengidentifikasi konten sebagai iklan, lalu menggunakan alat developer bawaan untuk mengaudit pemicu resource tertentu yang menyebabkan penghapusan
Bagaimana cara Chrome mendeteksi keberadaan iklan?
Chrome menandai konten sebagai iklan dengan mencocokkan permintaan resource dengan daftar filter. Logika deteksi berlaku untuk konten dalam iframe. Frame halaman utama tidak pernah dianggap terkait iklan, meskipun berisi skrip iklan. Perhatikan bahwa iframe yang dimuat dari resource yang cocok dengan daftar filter akan dianggap sebagai iklan meskipun konten non-iklan lainnya juga dimuat dari frame tersebut. Contohnya, pemutar video yang dimuat dalam iframe yang ditandai sebagai iklan mungkin juga memuat konten non-iklan.
Bagaimana cara memverifikasi deteksi iklan?
Sebagai developer, Anda dapat memverifikasi secara visual apakah Chrome telah berhasil mendeteksi konten Anda sebagai iklan menggunakan Chrome DevTools.
- Menandai frame iklan: Di panel Rendering, pilih Highlight Ad Frames, yang memberi kode warna pada frame iklan yang terdeteksi dengan warna merah di layar.
- Anotasi elemen: Di panel Elemen, iframe iklan yang terdeteksi akan menampilkan anotasi iklan di samping tag
<iframe>pembuka. - Aktivitas jaringan: Di panel Jaringan, filter permintaan berdasarkan boolean
Is ad-related. - Status iklan: Di panel aplikasi di bagian Frames, frame yang ditandai iklan akan menyertakan atribut
Ad Status.
Bagaimana cara mendiagnosis penyebab intervensi?
Chrome menyediakan alat untuk mengaudit dan meningkatkan kualitas serta performa halaman web. Jalankan Lighthouse di Chrome DevTools untuk mendapatkan laporan tentang performa halaman Anda. Anda juga dapat melihat koleksi web.dev/fast dan mempelajari informasi selengkapnya tentang Core Web Vitals.
Penggunaan jaringan
Buka panel Jaringan di Chrome DevTools untuk melihat aktivitas jaringan keseluruhan untuk iklan. Centang opsi Nonaktifkan cache untuk mendapatkan hasil yang konsisten selama pemuatan berulang.
Nilai yang ditransfer di bagian bawah halaman akan menampilkan jumlah yang ditransfer untuk seluruh halaman. Untuk membatasi permintaan hanya pada permintaan yang terkait dengan iklan, gunakan input Filter di bagian atas.
Jika Anda menemukan permintaan awal untuk iklan, misalnya, sumber untuk iframe, gunakan tab Inisiator dalam permintaan untuk melihat semua permintaan yang dipicu.
Mengurutkan daftar permintaan keseluruhan berdasarkan ukuran adalah cara yang baik untuk menemukan resource yang terlalu besar. Penyebab umum meliputi gambar dan video yang belum dioptimalkan.
Selain itu, pengurutan berdasarkan nama dapat menjadi cara yang baik untuk menemukan permintaan berulang. Mungkin bukan satu resource besar yang memicu intervensi, tetapi sejumlah besar permintaan berulang yang secara bertahap melebihi batas.
Penggunaan CPU
Panel Performa di DevTools akan membantu mendiagnosis masalah penggunaan CPU. Buka menu Setelan Perekaman. Gunakan drop-down CPU untuk memperlambat CPU sebanyak mungkin. Intervensi untuk CPU jauh lebih mungkin dipicu pada perangkat berdaya rendah daripada mesin pengembangan kelas atas.
Selanjutnya, klik tombol Rekam untuk mulai merekam aktivitas. Anda mungkin ingin bereksperimen dengan kapan dan berapa lama Anda merekam, karena pelacakan yang panjang dapat memerlukan waktu yang cukup lama untuk dimuat. Setelah rekaman dimuat, Anda dapat menggunakan linimasa atas untuk memilih sebagian rekaman. Fokus pada area di grafik berwarna kuning solid, ungu, atau hijau yang mewakili pembuatan skrip, rendering, dan rendering.
Jelajahi tab Bottom-Up, Call Tree, dan Log Peristiwa di bagian bawah. Mengurutkan kolom tersebut berdasarkan Self Time dan Total Time dapat membantu mengidentifikasi bottleneck dalam kode.
File sumber terkait juga ditautkan di sana, sehingga Anda dapat mengikutinya hingga ke panel Sumber untuk memeriksa biaya setiap baris.
Masalah umum yang harus dicari di sini adalah animasi yang dioptimalkan dengan buruk yang memicu tata letak dan rendering berkelanjutan atau operasi mahal yang tersembunyi dalam library yang disertakan.
Bagaimana cara melaporkan intervensi yang salah?
Jika konten non-iklan telah ditandai sebagai iklan, pertimbangkan untuk mengubah kode agar tidak cocok dengan aturan pemfilteran, atau berinteraksi langsung dengan pengelola EasyList untuk mengubah aturan pemfilteran. Ingatlah bahwa intervensi iklan berat tidak memengaruhi frame dengan gestur pengguna, sehingga video dapat dikecualikan dengan mewajibkan klik pada tombol putar sebelum memuat konten. Jika EasyList tidak cocok dengan konten Anda, dan Chrome entah bagaimana salah mengklasifikasikan konten sebagai terkait iklan, Anda dapat mengajukan masalah ke Chrome menggunakan template ini. Saat mengajukan masalah, sertakan contoh laporan intervensi yang diambil dan contoh URL untuk mereproduksi masalah.