Верх страницы
Обложка к записи Как отловить пользователей расширения AdBlock
Время для прочтения: 0 мин. 1 сек.

Как отловить пользователей расширения AdBlock

Для того, чтобы определить, что у пользователя установлено расширение для блокировки рекламы AdBlock или AdBlock Plus, достаточно в код страницы включить вызов скрипта, который бы попадал под специальные паттерны для определения рекламных блоков (например, <div> с классом .banner).

И, если скрипт не выполнился, то, соответственно, расширение для браузера установлено.

Подключаем в шапке вашей страницы скрипт, название которого попадает под паттерн AdBlock:


<script src="advert.js"></script>

Внутри данного файла (advert.js) определяем переменную:


window.adBlock = false;

Теперь достаточно выполнить простую проверку на стороне клиента:


if ( ! ( 'adBlock' in window ) ) {
  alert( 'Расширение AdBlock установлено!' );
}

Что делать с пользователями, установившими расширение AdBlock решать вам. Можно обратиться к ним с просьбой внести ваш сайт в список исключений, если проект им действительно интересен.

Ссылки

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

8 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Александр Люханов
Александр Люханов
8 лет назад

а как вывести сообщение если включен Element Hiding Helper for Adblock Plus.

мне прет что я ставлю пользовательскую рекламу (тематическую и для людей), а есть такой один — сидит и заблокировал. теперь банер с адблоком не показывается. показывается на сайте без адблока. хотя банер лежит ввиде картинки — в корне сайта =( устал каждый день менять div банера и адрес картинки.. что делать? дайте наводку пожалуйста.

mihdan
8 лет назад
Ответить на  Александр Люханов

<div id="foo-<?php echo rand(0, 9999); ?>">банер</div>

Максин Дмитрий
Максин Дмитрий
6 лет назад

А можно ли сделать задержку вывода сообщения? А то если сайт быстро открывается, то сразу после нажатия на ссылку он даже не успевает перерисовывать новую страницу, а сообщение уже выскакивает .
Это дезориентирует..

Василий
Василий
5 лет назад

В последней версии Google Chrome заметил, что данное оповещение появляется, а потом сразу исчезает. Что интересно, так происходит не всегда, но довольно часто… ранее таких проблем не наблюдал, всё работало как часы.

Павел
Павел
1 месяц назад

«Живой пример» из статьи вызывает сомнения, т.к. эта страница с активным блокировщиком рекламы показывает «AdBlock is disabled». Либо адблок не блочит всё подряд.

Предыдущая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы