Phần lớn các website ngày nay đều hầu như kiếm sống bằng quảng cáo. Cơ mà phần lớn người dùng trình duyệt web đều có cài cái thằng ông nội Adblock plus để ngăn chặn hiển thị quảng cáo. Vậy? Chẵng nhẽ chúng ta phải chịu chết hay sao? KHÔNG, chúng ta phải sống… Trong bài viết này, tôi sẽ hướng dẫn các bạn các cách để detect Adblock +

#Quảng cáo tí

Adblock + là một plugin/addon/extension trên trình duyệt dùng để ngăn chặn sự hiển thị của các loại quảng cáo cây phiền cho người dùng. Đặc điểm của Adblock + là nó có thể ngăn chặn được gần như 95% các loại quảng cáo gây phiền cho người dùng, ngay cả video ads nó cũng chặn được nốt, bạn cứ thử vào hdviet hoặc zing tv thì sẽ thấy được kết quả.

Adblock + được phát triển bởi Wladimir Palant vào năm 2006. Hiện tại thì Adblock + đã phát triển với hơn 50 triệu người dùng và hơn 300 triệu lượt download. Với số liệu như vậy thì bạn biết là nó phổ biến đến mức nào rồi.

Cách hoạt động của nó cũng đơn giản. Adblock + sẽ đọc nội dung website của bạn (cấu trúc html), nếu phát hiện có quảng cáo (thông qua hệ thống filter các id và class phổ biến). Nó sẽ tự động remove các đoạn mã quảng cáo đó đi, và website của bạn trong mắt người dùng là hoàn toàn sạch đẹp.

disable adblock plus

#Cách loại bỏ Adblock +

Thực tế mà nói thì chúng ta không thể loại bỏ hoàn toàn được Adblock + vì nó nằm trên máy của người dùng mà. Chúng ta chỉ có thể thông báo cho người dùng biết là Adblock + đang chặn quảng cáo hiển thị trên website của bạn. Đồng thời cũng yêu cầu, nhờ vã, van xin hay năng nỉ họ tạm thời tắt đi Adblock + trên website của chúng ta mà thôi.
Có một vài cách để kiểm tra xem Adblock + của máy người dùng có đang hoạt động chặn quảng cáo trên website của bạn không.

Tự code với javascript

Cách này thì cũng đơn giản. Bạn sẽ tạo ra một con mồi giả để nhử thằng Adblock + cắn câu. Tức là in ra một đoạn html với nội dung quảng cáo. Nếu thằng Adblock + hoạt động thì nó sẽ remove cái đoạn html đó của mình. Lúc nó, bạn sẽ dùng javascipt để kiểm tra xem đoạn html đó có tồn tại hay không?

– Nếu không tức đang bật Adblock +
– Nếu có, tức Adblock + không hoạt động.

Và mình chỉ việc tạo cảnh báo cho người dùng biết.

Giờ thực hiện thôi. Trước tiên thì bạn sẽ dùng javasript để in ra cái mồi nhữ. Tuy nhiên, mình cần phải ẩn thằng này đi, để tránh trường hợp nó hiển thị ra website, dùng css display:none để ẩn thôi.

See the Pen rGLAk by Minh Man (@izwebz) on CodePen.

Lưu ý: Phần code detect, bạn nên viết ra một file javscript riêng rồi chèn vào. Phần tạo thẻ html tester giả thì cho thẳng vào trong tag body luôn. Tuy rằng xài cách này thì cũng gọn và nhanh. Nhưng mà kết quả thì lúc đúng, lúc lại không và còn phụ thuộc vào từng trình duyệt nữa. Tôi vẫn khuyến khích các bạn dùng cách bên dưới này.

Dùng plug-in javacript

Nếu bạn không rành javascript cho lắm thì cứ dùng các plugin có sẳn thôi. Đơn giản lại gọn nhẹ, đỡ mệt óc. Cũng có một vài plugin, nhưng tôi thấy thằng FuckAdBlock thì khá hay. Đơn giản vì nó có cái tên khá hổ cmn báo. Ngoài ra thì nó chạy được trên hầu hết các trình duyệt đang có.

Với plugin này thì bạn sẽ được cấp 3 function chính để làm việc, tôi thì lại thích dùng cái thứ 3 hơn.

function adBlockNotDetected() {
/* Hiển thị thông tin nếu phát hiện AdBlock + đang chạy;*/
}
function adBlockDetected() {
/* Hiển thị thông tin nếu AdBlock + không chạy */
}
fuckAdBlock.add(true, function() {
/*Nếu giá trị là true thì AdBlock + đang chạy, False thì ngược lại*/
})

Tất nhiên, plugin còn cung cấp thêm một số phương thức và funtions khác, nhưng có lẽ mình không dùng tới. Các bạn có thể tham khảo thêm tại trang chủ của Fu**AdBlock.

Phần thực tế thì các bạn có thể xem cái ví dụ bên dươi này: Trong đó, tôi tạo một

<div class="blockPlusAlert"> </div> 

để chứa thông tin kết quả trả về từ F**kAdBock.

See the Pen IerDk by Minh Man (@izwebz) on CodePen.

Lưu ý: tôi dùng HTML 5 Query Selector, nêu có thể các trình duyệt IE cũ sẽ không hoạt động đc.

#Kết luận

Cũng đơn giản quá đấy nhỉ? Nhưng cái chính vẫn là ở phía người dùng. Họ có đồng ý Disable hay vẫn Enable thì tùy tâm thôi. Cái đó bạn không thể quản lý được.