Незважаючи на вік цього питання, я нещодавно виявив це дуже корисним, тому можу лише припустити, що його ще переглядають інші. Подивившись тут і в іншому місці, я припустив, що основні три перевірки на стороні клієнта щодо опосередкованого виявлення блокатора оголошень полягають у тому, щоб перевірити наявність заблокованих div
/ img
, заблокованих iframe
s та заблокованих ресурсів (файли javascript).
Можливо, це верх або параної, але він охоплює системи блокування реклами, які блокують лише одну або дві з вибору, і тому, можливо, не були охоплені, якби ви зробили лише одну перевірку.
На сторінці, на якій працює ваш чек, додайте: (я використовую 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>
і додайте наступне деінде на сторінці:
<div id="myTestAd"><img src="http://placehold.it/300x250/000000/ffffff.png&text=Advert" /></div>
Я використовував div з назвою наживки, а також зовнішнє розміщене зображення з текстом "Реклама" та в розмірах, які використовує AdSense (завдяки placehold.it!).
До advertisement.js
вас слід додати щось до документа, який ми можемо перевірити згодом. Хоча здається, що ви робите так само, як і раніше, ви насправді перевіряєте, advertisement.js
чи завантажується сам файл ( ), а не вихід.
$(document).ready(
{
$("body").append("<div id=\"myTestAd2\">check</div>");
});
А потім скрипт виявлення блокатора реклами, який поєднує все
$(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);
});
Коли документ готовий , тобто розмітка завантажується, ми також додаємо до документа iframe. Потім, коли вікно завантажується , тобто включно із утриманням. завантажуються зображення тощо, ми перевіряємо:
- Розміри та видимість першого тестового діва.
- Що вміст другого тестового діва є "перевірити", як це було б, якби не
advertimsent.js
було заблоковано.
- Розміри (і я думаю, видимість, оскільки прихований об’єкт не має висоти чи ширини?) Iframe
І стилі:
div#myTestAd, iframe#adServer
{
display: block;
position: absolute;
left: -9999px;
top: -9999px;
}
div#myTestAd2
{
display: none;
}
Сподіваюсь, це допомагає