Sebuah modul JavaScript sederhana, modern, dan tanpa dependensi untuk mendeteksi apakah pengguna mengaktifkan AdBlock di browser mereka. Modul ini bekerja secara asinkronus dan mengembalikan sebuah Promise.
- Tanpa Dependensi: Murni menggunakan JavaScript modern.
- Ringan: Ukuran file sangat kecil.
- Berbasis Promise: Mudah diintegrasikan dengan sintaks
async/awaitatau.then(). - Metode Deteksi Ganda: Menggabungkan metode pemblokiran skrip iklan dan penyembunyian elemen "umpan" untuk akurasi yang lebih baik.
Cara termudah untuk menggunakan modul ini adalah melalui CDN seperti jsDelivr.
Anda bisa menggunakan tag <script type="module"> di file HTML Anda.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contoh Deteksi AdBlock</title>
</head>
<body>
<h1>Cek AdBlock</h1>
<p id="status">Mengecek...</p>
<script type="module">
// Impor fungsi dari CDN jsDelivr
import checkAdBlock from 'https://cdn.jsdelivr.net/gh/purujawa06-bot/detected-adblock@main/detected-adblock.js';
// Gunakan fungsi dengan async/await di dalam fungsi async
async function jalankanPengecekan() {
try {
const isAdBlockActive = await checkAdBlock();
const statusElement = document.getElementById('status');
if (isAdBlockActive) {
console.log('AdBlock terdeteksi!');
statusElement.textContent = 'AdBlock terdeteksi! Mohon nonaktifkan untuk mendukung kami.';
statusElement.style.color = 'red';
// Lakukan sesuatu, misalnya tampilkan popup
} else {
console.log('AdBlock tidak aktif.');
statusElement.textContent = 'Terima kasih telah tidak menggunakan AdBlock!';
statusElement.style.color = 'green';
}
} catch (error) {
console.error('Terjadi kesalahan saat memeriksa AdBlock:', error);
}
}
// Panggil fungsi saat halaman selesai dimuat
window.addEventListener('load', jalankanPengecekan);
</script>
</body>
</html>Jika Anda lebih suka menggunakan sintaks Promise klasik, Anda bisa melakukannya seperti ini:
import checkAdBlock from 'https://cdn.jsdelivr.net/gh/purujawa06-bot/detected-adblock@main/detected-adblock.js';
checkAdBlock()
.then(isAdBlockActive => {
if (isAdBlockActive) {
console.log('AdBlock aktif.');
alert('Kami mendeteksi AdBlock. Mohon pertimbangkan untuk menonaktifkannya.');
} else {
console.log('AdBlock tidak aktif.');
}
});Modul ini mendeteksi AdBlock dengan dua cara utama:
- Memuat Skrip Umpan: Mencoba memuat skrip iklan standar dari Google (
adsbygoogle.js). Jika permintaan ini gagal atau diblokir, itu adalah indikasi kuat adanya AdBlock. - Elemen Umpan (Bait Element): Membuat sebuah elemen
divdi halaman dengan nama kelas yang umum ditargetkan oleh AdBlock (misalnya,adsbox). Setelah beberapa saat, skrip akan memeriksa apakah elemen tersebut disembunyikan (display: none,visibility: hidden) atau memiliki tinggi0. Jika ya, berarti AdBlock telah menyembunyikannya.
Jika salah satu dari kondisi di atas terpenuhi, fungsi akan mengembalikan true. Jika tidak, fungsi akan mengembalikan false.
Proyek ini dilisensikan di bawah Lisensi MIT.