Очередной велосипед для адблок

MP
На сайте с 04.07.2016
Offline
97
#81

Блин все неплохо, но вот в чем проблема. Скрипт срабатывает как-то поздно, точнее сказать, наверное поздно определяет, что есть adblock. Т.е. контент успевает отобразится и можно даже успеть нажать на кнопку скачать. И даже видно, что элемент на сайте есть, а потом оп, пропадает. Как этого избежать?

T
На сайте с 11.08.2009
Offline
142
#82
MetadonPerec:
Блин все неплохо, но вот в чем проблема. Скрипт срабатывает как-то поздно, точнее сказать, наверное поздно определяет, что есть adblock. Т.е. контент успевает отобразится и можно даже успеть нажать на кнопку скачать. И даже видно, что элемент на сайте есть, а потом оп, пропадает. Как этого избежать?

Скрыть ссылку на скачать изначально (css), а после проверки на блок выдать ее (через js).

css - display:none

js (jquery) - $('#ID_ссылки').show();

lkm
На сайте с 16.03.2012
Offline
347
lkm
#83
MetadonPerec:
Блин все неплохо, но вот в чем проблема. Скрипт срабатывает как-то поздно, точнее сказать, наверное поздно определяет, что есть adblock. Т.е. контент успевает отобразится и можно даже успеть нажать на кнопку скачать. И даже видно, что элемент на сайте есть, а потом оп, пропадает. Как этого избежать?

Загружать сначала скрипт, а потом - контент. Но это нарушение фундаментальных принципов, которые исповедуют все поисковые системы, особенно Google.

A4
На сайте с 31.03.2017
Offline
29
#84
MetadonPerec:
Скрипт срабатывает как-то поздно, точнее сказать, наверное поздно определяет, что есть adblock.

Все должно срендериться перед проверкой рекламных блоков на их блокировку адблоком.

Поэтому да, как заметили выше, вам над сперва все скрывать, а в случае отсутствия адблока показывать кнопку на скачивание.

Ingvarr
На сайте с 26.04.2009
Offline
452
#85
ziliboba0213:
Письмо привалило про адблок

Мне тоже сегодня пришло, только вместо Ильи мне Степан написал.

C
На сайте с 07.05.2010
Offline
227
#86
-Dima-:
Не стоит недооценивать пользователей адблоков ;)

О, да! Как оказалось это довольно настырная аудитория. Мы с 2013 года занимаемся этой проблемой (проверка на наличие фильтров). Их постоянно приходится переписывать.

Самые первые были простые - надо было проверить лишь наличие определенных html-тегов. Затем Adblock стал оставлять теги, но не показывал рекламу.

Последняя версия Adblock работает с теневым DOM. Но тут пришел на помощь сам Google. При обнаружении фильтрации, он в определенные теги пишет сообщение и не грузит определенный скрипт. Пока вот поэтому факту и ловим.

---------- Добавлено 09.02.2018 в 18:49 ----------

MetadonPerec:
Блин все неплохо, но вот в чем проблема. Скрипт срабатывает как-то поздно, точнее сказать, наверное поздно определяет, что есть adblock. Т.е. контент успевает отобразится и можно даже успеть нажать на кнопку скачать

Да, есть такое. У нас другой код скрипта-ловушки, но пока действует именно так.

The_ru
На сайте с 13.12.2008
Offline
117
#87

Отключать adblock не стал.

Поставил еще 1 расширение - Quick Javascript Switcher 1.4.1

C
На сайте с 07.05.2010
Offline
227
#88

Очередное снижение доходов опять вызвано обновлением блокираторов. На этот раз обновились алгоритмы uBlock и AdBlockPlus. Приходится заново переписывать скрипт ловушку.

P.S. Кто в js хорошо разбирается? Как отследить, загрузился ли скрипт? Надо что-то по аналогии с консолью браузера сделать. Когда установлен блокиратор, в консоли выводятся сообщения, такой-то скрипт не загрузился...

A4
На сайте с 31.03.2017
Offline
29
#89
ctit:
Очередное снижение доходов опять вызвано обновлением блокираторов. На этот раз обновились алгоритмы uBlock и AdBlockPlus. Приходится заново переписывать скрипт ловушку.
P.S. Кто в js хорошо разбирается? Как отследить, загрузился ли скрипт? Надо что-то по аналогии с консолью браузера сделать. Когда установлен блокиратор он сообщает, такой-то скрипт не загрузился...

Как вариант загружаемый скрипт должен сетить глобальную переменную в window. А уже после загрузки страницы проверять есть ли такая устанавливаемая скриптом переменная в windiw. Если нет - скрипт не загрузился.

Еще как вариант юзать getScript из jquery



$.getScript( path/script-name.js" )
.done(function( script, textStatus ) {
//загружен
})
.fail(function( jqxhr, settings, exception ) {
//не загрузился
});

Ну и мой велосипед который трекает блокировку гугловской рекламы самым тупым способом и вставляет произвольный html вместо заблоченной рекламы, пробовал на последних версиях адблока и адблок плюса.



<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>

C
На сайте с 07.05.2010
Offline
227
#90

Проверьте пожалуйста на uBlock и на AdGuard. Тоже сейчас займусь.

---------- Добавлено 13.02.2018 в 11:54 ----------

Alex430:
Еще как вариант юзать getScript из jquery

Скорей всего google будет ругаться, что его кто-то скрипты трогает кроме браузера.

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