Cách chống chặn quảng cáo bằng JavaScript (Anti Adblock)

Tác giả Security+, T.Hai 03, 2024, 04:55:12 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách chống chặn quảng cáo bằng JavaScript trong PHP (Anti Adblock)


1. Hiểu cách hoạt động của các công cụ chặn quảng cáo Adblock

Khi trình duyệt yêu cầu một địa chỉ trang web, nó sẽ tải xuống tệp HTML tương ứng, bao gồm các tham chiếu bên trong và bên ngoài tới các tệp Javascript, biểu định kiểu CSS và hình ảnh. Nếu trình duyệt đã cài đặt trình chặn quảng cáo, trình duyệt sẽ so sánh tên của các tập lệnh và tệp được tham chiếu với "danh sách chặn" và nếu có bất kỳ kết quả trùng khớp nào thì các tệp đó sẽ bị bỏ qua.


2. Tận dụng "danh sách chặn" để hiển thị trình chặn quảng cáo

Tất cả danh sách chặn đều bao gồm tham chiếu đến "googleafs.js" vì đây là tên chung cho các tệp JavaScript được liên kết với việc phân phát quảng cáo.

Biết được điều này, hãy lưu mã JavaScript sau để tạo div ẩn vào một tệp có tên "googleafs.js" và đặt nó vào thư mục gốc của trang web của bạn.

Mã nguồn [Chọn]
var e=document.createElement('div');
e.id='OHlkzDNGmysB';
e.style.display='none';
document.body.appendChild(e);

Lưu ý: id div tối nghĩa là để đảm bảo rằng nó không xung đột với bất kỳ div nào khác mà trang web của bạn có thể sử dụng.

3. Kiểm tra xem "googleafs.js" đã được tải hay bị chặn

Đặt đoạn mã JavaScript sau vào mã nguồn HTML của trang web ngay phía trên thẻ </body>. Mục đích của nó là kiểm tra xem div ẩn được tạo trong "googleafs.js" có tồn tại (quảng cáo được phép) hay không (quảng cáo bị chặn). Và đó là tất cả những gì cần làm!

Mã nguồn [Chọn]
<script src="/googleafs.js" type="text/javascript"></script>
<script type="text/javascript">

if(document.getElementById('OHlkzDNGmysB')){
  alert('Blocking Ads: No');
} else {
  alert('Blocking Ads: Yes');
}

</script>

Sau đó chúng ta sẽ đặt đoạn mã JavaScript bên dưới vào bên trên thẻ </body> của các trang web hoặc trong các giao diện của website.

Thay đổi thông báo đến người dùng nếu cần thiết trong alert.

Mã nguồn [Chọn]
<script src="/fload.js" type="text/javascript"></script>
<script type="text/javascript">

if(!document.getElementById('aBIcikORxFGp')){
  alert("PLEASE CONSIDER SUPPORTING US BY DISABLING YOUR AD BLOCKER OR WHITELISTING THIS WEBSITE");
}
</script>

4. Ví dụ 1: Gửi dữ liệu chặn quảng cáo tới Google Analytics

Bạn có thể dễ dàng theo dõi hoạt động chặn quảng cáo trên trang web của mình trong Google Analytics thông qua tập lệnh hỗ trợ tất cả các phiên bản sau. Xin lưu ý rằng sẽ có giới hạn dữ liệu nếu bạn đang sử dụng phiên bản miễn phí.

Mã nguồn [Chọn]
<script src="/googleafs.js" type="text/javascript"></script>
<script type="text/javascript">

if(document.getElementById('OHlkzDNGmysB')){
  OHlkzDNGmysB='No';
} else {
  OHlkzDNGmysB='Yes';
}

if(typeof ga !=='undefined'){
  ga('send','event','Blocking Ads',OHlkzDNGmysB,{'nonInteraction':1});
} else if(typeof _gaq !=='undefined'){
  _gaq.push(['_trackEvent','Blocking Ads',OHlkzDNGmysB,undefined,undefined,true]);
}

</script>

5. Ví dụ 2: Đăng dữ liệu chặn quảng cáo lên tập lệnh bên ngoài

Bằng cách sử dụng phương pháp này, bạn có thể ghi lại số liệu thống kê chặn quảng cáo của trang web vào cơ sở dữ liệu của riêng mình, nhưng để tiết kiệm cho mình nhiều sự phát triển, tốt hơn hết bạn chỉ nên sử dụng Adblock Analytics.

Mã nguồn [Chọn]
<script src="/googleafs.js" type="text/javascript"></script>
<script type="text/javascript">

if(document.getElementById('OHlkzDNGmysB')){
  OHlkzDNGmysB='No';
} else {
  OHlkzDNGmysB='Yes';
}

var r=new XMLHttpRequest();
r.open('POST','https://www.domain.com/script/');
r.setRequestHeader('Content-type','application/x-www-form-urlencoded');
r.send('blockingAds='+OHlkzDNGmysB);

</script>


6. Ví dụ 3: Hiển thị thông báo trên trang web của bạn

Điều này hơi gây tranh cãi, nhưng nếu bạn nhận thấy rằng phần lớn khách truy cập trang web của bạn đang chặn quảng cáo và làm giảm doanh thu thì bạn có thể muốn thử hiển thị một thông báo thân thiện yêu cầu họ vô hiệu hóa quảng cáo.

Mã nguồn [Chọn]
<style>
#KJNUIknZazRA {
display: none;
margin-bottom: 30px;
padding: 20px 10px;
background: #D30000;
text-align: center;
font-weight: bold;
color: #fff;
border-radius: 5px;
}
</style>

<div id="KJNUIknZazRA">
  Our website is made possible by displaying online advertisements to our visitors.<br>
  Please consider supporting us by disabling your ad blocker.
</div>

<script src="/googleafs.js" type="text/javascript"></script>
<script type="text/javascript">

if(!document.getElementById('OHlkzDNGmysB')){
  document.getElementById('KJNUIknZazRA').style.display='block';
}

</script>

Thông báo trông như thế này: