Перестал работать скрипт антиадблока

D
На сайте с 16.06.2008
Offline
122
902

Не знаю когда, но перестал работать такой скрипт


<div id='puhkin'>
<!-- тут баннер гугла -->
</div>
<script>
window.addEventListener("load", function() {
var ins = document.getElementById('puhkin');
if (ins.clientHeight == "0") {
ins.innerHTML = 'Пожалуйста не блокируйте рекламу на сайте. Спасибо';
}
}, true);
</script>

AdBlock научился обходить его. Есть что-то свежее?

В старой теме писали про https://www.pravda.com.ua/rus/

Реально разобрать по частям как они это делают?

Спасибо

V
На сайте с 22.02.2007
Offline
150
#1

Какой то странный у вас скрипт. Адблок по идее банит загрузку внешних скриптов чтобы не грузить рекламу в принципе, поэтому ваш скрипт и так не очень точно определяет блокировку.

Если ваш див изначально высотой 0 а после загрузки рекламы больше 0, то надо смотреть. Может раньше они див обнуляли по высоте а сейчас нет.

Обычно же используется другой метод:

в хеаде страницы скрипт


window.onload = function()
{ txt='';ab=0;t = document.getElementsByTagName("script");
for (i = 0; i < t.length; i += 1)
{
if (t.src.indexOf("/img/advert.js.error") !== -1) ab=1;
if (t.src.indexOf("an.yandex.ru/system/context.js.error") !== -1) ab=1;
}
if (ab==1)
{
// код если адблок включен
var jsl = document.createElement('SCRIPT'); jsl.type = 'text/javascript'; jsl.src = '/img/adgsdg.js';
document.body.appendChild (jsl);
}
}

в боди страницы


var jsel = document.createElement('script');
jsel.type = 'text/javascript';
jsel.src = '/img/advert.js';
document.body.appendChild (jsel);

файл скрипта /img/advert.js пустой.

в скрипте /img/adgsdg.js пожно прописать что делать если забанено. Либо сразу как в вашем коде менять див.

AfterWar
На сайте с 28.01.2013
Online
167
#2

Про https://www.pravda.com.ua/rus/ - я им тогда писал что за тизерки-ответили это clickscloud - они сами определяют и подставляет свою но лично для меня не подошло. Выгоднее свои баннеры напрямую с партнерок подставлять - Vimsite вам подходящий код дал. Еще бы кто то код бы с рандомными дивами накодил.

А еще ищите свой сайт в списке easylist и т.п. - стукнули похоже на детект

⭐⭐⭐ЛУЧШАЯ АЛЬТЕРНАТИВА ADSENSE (ПЛАТЯТ, И ДЛЯ RU ДЛЯ БУРЖ) ( https://clck.ru/KgyqY )
S
На сайте с 08.06.2018
Offline
84
#3

ВОт зачем это вообще делать? У вас же должны быть космические отказы из-за этого

AfterWar
На сайте с 28.01.2013
Online
167
#4

А в чем ввобще взаимосвязь показа альтернативного баннера вместо GAS и отказов?

dotern
На сайте с 21.09.2016
Offline
123
#5
AfterWar:
Про https://www.pravda.com.ua/rus/ - я им тогда писал что за тизерки-ответили это clickscloud - они сами определяют и подставляет свою но лично для меня не подошло.

AdGuard успешно всё режет, и он становится популярнее Adblock

AfterWar
На сайте с 28.01.2013
Online
167
#6

У них списки фильтров одинаковые у всех (easy,privacy и т.п.), да есть у AdGuard свои но и ublock у остальных свои есть, но это мизер от общих фильтров. Вообщем принцип одинаковый. Тогда кстати на укрправде не резал ни один в т.ч и AdGuard чего и спрашивал их что за реклама.

A4
На сайте с 31.03.2017
Offline
29
#7

Попробуйте такой вариант


<script>
window.addEventListener("load", function () {
var ads = document.getElementsByClassName('adsbygoogle'), //default google ads container class
spanBanner = '<h1> any banner html </h1>'; // banner layout

if (ads.length > 0) {
if (window.getComputedStyle(ads[0], null).display === 'none') { //check is ads blocked
insertBanners();
}
}

function insertBanners() { // show banners
Array.prototype.forEach.call(ads, function(ad) {
ad.parentNode.insertAdjacentHTML('beforebegin', spanBanner); // insert new banner instead of blocked ads
});
}
});
</script>

В теме /ru/forum/984361 есть еще некоторое количество готовых решений.

D
На сайте с 16.06.2008
Offline
122
#8
Alex430:
Попробуйте такой вариант

Спасибо! Работает!

А не знаете как сделать чтобы вывод баннера который выглядит вот так

<div id="affiliate_rozetka_812"></div>
<script type="text/javascript" src="//affiliates.rozetka.com.ua/banners/?id=812"></script>

Я делаю вот так:


spanBanner = '<div id="affiliate_rozetka_812"></div>
<script type="text/javascript" src="//affiliates.rozetka.com.ua/banners/?id=812"></script>';

Не работает :( Выводит это как текст, а не выполняет его

A4
На сайте с 31.03.2017
Offline
29
#9

Попробуйте подключение скрипта сделать в начале страницы

<script type="text/javascript" src="//affiliates.rozetka.com.ua/banners/?id=812"></script>

а в код баннера подставить только div

spanBanner = '<div id="affiliate_rozetka_812"></div>'

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий