Terlepas dari usia pertanyaan ini, saya baru-baru ini merasa sangat berguna dan karena itu hanya dapat berasumsi ada orang lain yang masih melihatnya. Setelah mencari di sini dan di tempat lain saya menduga bahwa tiga sisi utama klien memeriksa secara tidak langsung mendeteksi pemblokir iklan adalah untuk memeriksa diblokir div
/ img
, diblokiriframe
, dan diblokir sumber daya (file javascript).
Mungkin itu di atas atau paranoid tetapi mencakup untuk sistem pemblokiran iklan yang hanya memblokir satu atau dua dari seleksi dan karenanya mungkin tidak tercakup seandainya Anda hanya melakukan satu pemeriksaan.
Pada halaman Anda menjalankan cek tambahkan: (Saya menggunakan jQuery)
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="advertisement.js"></script>
<script type="text/javascript" src="abds.js"></script>
dan tambahkan berikut ini di tempat lain di halaman:
<div id="myTestAd"><img src="http://placehold.it/300x250/000000/ffffff.png&text=Advert" /></div>
Saya menggunakan div dengan nama umpan serta gambar yang dihosting secara eksternal dengan teks "Iklan" dan dalam dimensi yang digunakan oleh AdSense (terima kasih kepada placehold.it!).
Dalam advertisement.js
Anda harus menambahkan sesuatu ke dokumen yang dapat kita periksa nanti. Meskipun sepertinya Anda melakukan hal yang sama seperti sebelumnya, Anda sebenarnya memeriksa file ( advertisement.js
) itu sendiri sedang dimuat, bukan output.
$(document).ready(
{
$("body").append("<div id=\"myTestAd2\">check</div>");
});
Dan kemudian script deteksi pemblokir iklan yang menggabungkan semuanya
$(document).ready(function()
{
var ifr = '<iframe id="adServer" src="http://ads.google.com/adserver/adlogger_tracker.php" width="300" height="300"></iframe>';
$("body").append(ifr);
});
$(window).on("load",function()
{
var atb = $("#myTestAd");
var atb2= $("#myTestAd2");
var ifr = $("#adServer");
setTimeout(function()
{
if( (atb.height()==0) ||
(atb.filter(":visible").length==0) ||
(atb.filter(":hidden").length>0) ||
(atb.is("hidden")) ||
(atb.css("visibility")=="hidden") ||
(atb.css("display")=="none") ||
(atb2.html()!="check") ||
(ifr.height()!=300) ||
(ifr.width()!=300) )
{
alert("You're using ad blocker you normal person, you!");
}
},500);
});
Ketika dokumen sudah siap , yaitu markup dimuat, kami juga menambahkan iframe ke dokumen. Kemudian, ketika jendela dimuat , yaitu konten termasuk. gambar dll dimuat, kami memeriksa:
- Dimensi dan visibilitas div tes pertama.
- Bahwa isi dari div tes kedua adalah "cek", karena itu akan menjadi jika
advertimsent.js
itu tidak diblokir.
- Dimensi (dan saya kira visibilitas, sebagai objek tersembunyi tidak memiliki tinggi atau lebar?) Iframe
Dan gaya:
div#myTestAd, iframe#adServer
{
display: block;
position: absolute;
left: -9999px;
top: -9999px;
}
div#myTestAd2
{
display: none;
}
Semoga ini membantu