1. Nguyên lý hoạt động
Hầu hết các trình chặn quảng cáo (như AdBlock, uBlock Origin…) hoạt động dựa trên blacklist từ khóa nằm trong tên file hoặc class/id. Ví dụ: bất kỳ file nào chứa ads.js, popup_ad.js, banner_ad.jpg… (xem thêm danh sách đen) đều có khả năng bị chặn.
Dựa vào đó, ta sẽ tạo một file JavaScript có tên “đáng ngờ” – ví dụ popup_ad.js – và kiểm tra xem nó có được load thành công không. Nếu bị chặn, chứng tỏ người dùng đang bật AdBlock.
2. Tạo file JavaScript để kiểm tra
Tạo file popup_ad.js với nội dung như sau:
var e = document.createElement('div');
e.id = 'vmrTlqNyHDpU';
e.style.display = 'none';
document.body.appendChild(e);
Nhúng vào trang web:
<script src="/js/popup_ad.js"></script>
3. Kiểm tra AdBlock sau khi trang tải
Sau khi trang load xong, bạn kiểm tra xem phần tử đó có tồn tại không:
window.addEventListener("load", function () {
if (!document.getElementById("vmrTlqNyHDpU")) {
// Người dùng đang bật AdBlock
alert("Bạn đang sử dụng AdBlock!");
}
});
Nếu bạn dùng jQuery:
$(window).on("load", function () {
if (!document.getElementById("vmrTlqNyHDpU")) {
// AdBlock đang hoạt động
}
});
4. Gợi ý nâng cao
- Hiện modal thông báo hoặc yêu cầu tắt AdBlock để tiếp tục xem nội dung
- Kết hợp hệ thống user để tạm ẩn một số tính năng khi phát hiện AdBlock
- Gửi log về backend nếu cần phân tích hành vi
Kết luận
Cách phát hiện AdBlock bằng JavaScript này đơn giản, dễ hiểu và hoạt động ổn định trên mọi trình duyệt hiện đại. Đây là một thủ thuật nhẹ nhàng nhưng hữu ích nếu bạn muốn tăng cường bảo vệ nguồn thu quảng cáo hoặc kiểm soát trải nghiệm người dùng khi truy cập trang.
Bình luận