Обнаружить AdBlock: jQuery метод проверки

Определение работы расширения AdBlock в браузере пользователя позволяет выводить соответствующие сообщения (например, просьбу отключить блокировщик) или ограничивать доступ к определённым страницам сайта. Задача решается достаточно просто.

Определение с помощью jQuery

Этот метод основан на проверке высоты блока, содержащего рекламу. Если AdBlock активен, высота блока будет равна нулю, так как реклама будет скрыта.

Подготовка страницы

Создайте HTML-страницу с рекламным блоком (например, с кодом AdSense). Важно обернуть рекламный блок в ещё один блок с помощью тега <div> и присвоить ему идентификатор, например, test-for-adblock. К этому внешнему блоку не применяются стили.

<div id="test-for-adblock">
  <!-- Здесь размещается рекламный код -->
  <p>Обычный параграф</p>
  <!--AdSense код-->
</div>

Необходимо подключить библиотеку jQuery.

Создание скрипта

Скрипт должен выполняться после загрузки страницы. Для этого используется функция $.ready(). Для корректной работы необходима небольшая задержка (например, 100 миллисекунд) с помощью функции setTimeout(), чтобы дать AdBlock время скрыть рекламу.

$(document).ready(function() {
  setTimeout(function() {
    let adBlockHeight = $('#test-for-adblock').height();
    if (adBlockHeight === 0) {
      alert('AdBlock включен');
    }
  }, 100);
});

Код получает высоту блока #test-for-adblock с помощью функции height(). Если высота равна нулю, выводится предупреждение о включенном AdBlock.

Задержка

Задержка необходима, поскольку AdBlock может скрыть рекламу не мгновенно. Без задержки скрипт может проверить высоту до того, как AdBlock выполнит свою работу, что приведёт к некорректным результатам. Значение задержки (100 миллисекунд) может быть скорректировано в зависимости от скорости загрузки сайта. Слишком маленькая задержка может привести к ложноположительным результатам, а слишком большая — к замедлению работы страницы.

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

При выключенном AdBlock реклама отображается, и alert не срабатывает. При включенном AdBlock реклама скрывается, и alert с сообщением «AdBlock включен» появляется.

Что будем искать? Например,программа