Как отключить adblock в разных браузерах. Внимание adblock заблокировал загрузку javascript файлов

Блокировка рекламы – реальная проблема для всех блоггеров и владельцев сайтов, для которых единственным источником доходов является реклама, размещенная на собственном сайте. Давайте объективно взглянем на способы взаимодействия с посетителями, которые блокируют показ рекламы. Внимание! Этический аспект в этой статье не рассматривается!

1. Не делайте ничего

Не стоит воспринимать данный вопрос исключительно в черно-белом цвете. Посетители, блокирующие объявления, используют ресурсы сервера и загружают канал, однако сайт может извлечь пользу от юзеров менее очевидными способами. Например, посетитель даст знакомым ссылку на вашу статью, фото или видео. Эти знакомые зайдут на сайт и, вероятно, не будут блокировать рекламу. Посетитель, блокирующий рекламу, оставит комментарий в обсуждениях, что полезно для страницы с точки зрения SEO (если, конечно, он будет релевантным). Комментарий может пригодиться читателям или автору статьи.

Короче, если вы оптимист. Если все сказанное применимо к вашему ресурсу, лучшее решение – не предпринимать никаких действий. В случае с сайт, я руководствуюсь именно этими понятиями и рад любому посетителю, да и реклама у меня занимает менее 10% пространства от контента, думаю это терпимо.

2. Попросите не блокировать рекламу

Сайт распознает блокировку благодаря использованию «симуляторов» рекламных скриптов (если скрипт не выполняется, значит посетитель пользуется программами типа «adblock»). Вежливо и спокойно объясните, что блокировка рекламы не позволяет сайту загружать вполне безобидный контент. Попросите пользователя внести сайт в белый список, и реклама будет загружаться. Это очень изящный и эффективный способ решить проблему. Когда пользователь понимает, что вместе с объявлениями скрывается и полезный контент, он, вероятно, сделает для вашего сайта исключение и внесет его в white list.

Для CMS WordPress существует много антиблокировочных плагинов, которые прекрасно справляется со своей задачей и содержит массу полезных опций.

Например, можно настроить количество просмотренных страниц, после которых пользователь видит вашу просьбу. Указывается положение сообщения: в верхней части экрана или во всплывающем окне.

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

Настоятельно рекомендую посмотреть, что увидит пользователь, которого вы просите позволить загрузку рекламы. Если страница выглядит гораздо приятнее без рекламы, значит стоит поработать над ее оформлением. Лично я считаю, что избирательность в выборе рекламных объявлений – это большой шаг вперед, который подводит нас к следующей главе.

3. Работайте с проверенными рекламодателями

Рекламные сети рандомно вытягивает объявления из своей огромной библиотеки, а среди них частенько попадаются откровенно некачественная и недобросовестная, призывающая скачать какой-то сомнительный софт, выиграть бесплатный iPad или подзаработать. Уверен, что владельцы и разработчики сайтов должны более ответственно подходить к выбору рекламы, отображаемой на собственных площадках. Реклама – это необходимость, чего не скажешь о преднамеренном обмане. Прочитайте статью о , не зацикливайтесь только на одном.

4. Настройте редирект

Самый жестокий способ – перенаправить пользователей на другой сайт, не позволяя им смотреть вашу площадку. на страницу, указав на ней причины, почему пользователь не заслуживает информацию на вашем сайте. Особо мстительные вебмастера предпочитают редиректить на сайт с шок-контентом. Это, конечно, самый худший вариант из предложенных, поскольку чрезвычайно раздражает посетителей.

К потере дохода из-за заблокированной рекламы добавится недовольный посетитель, который мог бы стать постоянным пользователем. Некоторых владельцев сайтов такой подход устраивает, так как пользователи, блокирующие рекламу, не имеют права смотреть контент, не давая ничего взамен. Особенно, если от посетителей ожидается самая малость – нажать на рекламный баннер и прогрузить каких-то 90 килобайт страницы.

Специальный плагин для WordPress, который отлично справлялся бы с этой задачей, пока не разработан. Я написал небольшой скрипт jQuery для определения размера рекламного контейнера после загрузки страницы. Если размер контейнера составляет 0 пикселей, значит реклама не загрузилась и произошла блокировка. Перед использованием скрипта задайте контейнеру стилевой идентификатор id для CSS или поместите код рекламы в теги div, где и укажите конкретный id.

< script type= "text/javascript" > jQuery(document) .ready (function() { if (jQuery("#myAdContainer" ) .height () == 0 ) { window.location = "http://google.ru" ; } } ) ;

jQuery(document).ready(function(){ if (jQuery("#myAdContainer").height() == 0) { window.location = "http://google.ru"; } });

В образце кода атрибуту id присвоено имя myAdContainer, а редирект настроен на сайт google.ru. Сценарий нужно разместить в любом месте файла, а лучше в футере или хедере.

Бонус: обходим блокировку скриптов

Любой способ выявления блокировки рекламы и последующие действия со стороны сайта зависят от Javascript или jQuery, но если пользователь отключил поддержку Javascript в браузере, предлагаемые способы не сработают. В этом случае можно прибегнуть к мета-редиректу.

< noscript> < meta http- equiv= "refresh" content= "0;url="http://google.ru"" >

Разместите этот код на странице (такая страница не пройдет валидацию на соответствие стандартам html-кода, за исключением HTML5, однако на работу сайта этот сниппет никак не повлияет).

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

Adblock – это специальная программа-расширение, которая скрывает рекламу от глаз пользователей. Она идет как дополнение к программе-поисковику, и суть ее заключается в блокировке всплывающих окон, баннеров и прочей нежелательной информации, которая отвлекает от просмотра основного содержания веб-страницы.

Расширение Адблок так же легко отключить, как и активировать. Иногда возникает надобность в отображении всех материалов на сайте, либо же информация отображается некорректно, и необходимость в блокировке рекламы отпадает – в этой статье подробно рассмотрим, как отключить Адблок в самых популярных поисковиках – Google chrom, Yandex, Opera и Mozilla. Также мы рассмотрим особенности подключения и отключения программы Адблок на телефонах, планшетах и смартфонах с программным обеспечением на базе ОС Андроид.

Как отключить adblock в Google Chrom

Расширение Адблок – самое популярное дополнение к веб-браузеру для блокировки рекламы. Существуют различные версии этой программы, самые последние из них блокируют не только рекламные сообщения, а и вредоносные ссылки в режиме просмотра интернет-страниц. В разных поисковиках принцип отключения этой программы достаточно однообразен. Рассмотрим два способа отключения Адблок и Адблок плюс (усиленная версия) в поисковике Гугл хром.

Первый способ
  • Открываем браузер.
  • В правом верхнем углу находим значок программы Адблок (в примере мы вмдим два расширения – Адблок и Адблок плюс, более расширенная версия), нажимаем на него.


  • Откроется окно меню, выбираем опцию «Приостановить программу», кликаем по ней.


  • Значок программы Адблок становится неактивным (зеленого цвета). Чтобы включить программу, следует проделать те же операции, что и при выключении.


Второй способ
  • Открываем поисковик Гугл Хром, в правом верхнем углу находим значок «Настройки и управление», нажимаем на него.


  • В открывшемся меню находим опцию «Настройки», заходим в нее.


  • Откроется окно внутренних настроек браузера, нам они не нужны. В левом верхнем углу нажимаем вкладку «Расширения».


  • После ее нажатия на экране покажется список расширений, выбираем из списка Адблок и Адблок плюс, снимаем флажки напротив этих программ.


  • После снятия флажков команда «Включено» сменится на «Включить».


Третий способ
  • Открываем поисковик, в открытом окне нажимаем значок «Настройки и управление».


  • В открытом меню ищем «Дополнительные инструменты», затем «Расширения», снимаем флажки напротив программ Адблок. Расширения неактивны.


Как отключить adblock в браузере Opera

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

  • Открываем поисковик.
  • Слева на панели задач в самом низу находим значок расширений в виде кусочка паззла.


  • Нажимаем на него, находим активные расширения (Адблок), даем команду «Отключить». Работа расширения приостановлена в браузере Опера.



Как отключить adblock в Яндексе

Поисковая программа Яндекс очень похожа на Гугл Хром, и различия между ними очень незначительные. Рассмотрим отключение Адблок в этом поисковике.

  • Заходим в Яндекс-браузер.


  • В правом верхнем углу находим значок Адблок – обычно это открытая ладонь на красном фоне, нажимаем на него.


  • Откроется дополнительное меню, выполняем операцию «Приостановить Адблок».


  • После выполнения операции «Приостановить Адблок» значок расширения поменяется на «Класс» на зеленом фоне – это значит, что программа неактивна.


Отключение adblock в браузере Mozilla Firefox

Поисковик Мозилла становится все менее популярным на фоне более практичных Гугл Хром и Яндекса, однако многие пользователи все так же отдают предпочтение этому сервису, как самому надежному и стабильному поисковику. Рассмотрим отключение Адблок в этом поисковике.

  • Открываем браузер Мозилла.


  • В правом верхнем углу находим уже знакомый значок программы, нажимаем его.


  • Высвечивается контекстное меню, выбираем там «Отключить везде».


  • Расширение Адблок неактивно, о чем говорит серый цвет значка.


Программа adblock в операционной системе Андроид

Использование Адблок на телефонных устройствах, планшетах и смартфонах имеет свои особенности. В Андроиде данное расширение идет как отдельный веб-браузер, с помощью которого можно совершать поиск в сети интернет. При этом программа сама фильтрует рекламу и вредоносные ссылки, от вас требуется только самостоятельная установка этой программы с помощью сервиса Google play (Плей-маркета).

Если Адблок установлен на вашем устройстве, и вы хотите отключить функцию блокировки рекламы, вам потребуется совершить такие действия:

  • Открываем Адблок-браузер на телефоне (планшете, смартфоне).

  • Заходим в настройки браузера (это делается с помощью левой клавиши на сенсорном телефоне), находим меню «Параметры», нажимаем на него.

  • В «Параметрах» находим опцию «Блокировка рекламы», которая позволит вам выставить нужные параметры блокировки, язык и настройки по умолчанию.

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

9 июля 2018

Сегодня AdBlock является главной проблемой индустрии интернет-рекламы. Число пользователей, блокирующих рекламный контент, постепенно растёт, а прибыль владельцев сайтов снижается. Многочисленные подписки позволяют обладателям расширений значительно увеличить список нежелательных элементов, добавив к нему не только рекламу, но и, например, установленные на странице социальные виджеты или скрипты сбора статистики, что серьезно повышает приватность просмотра и осложняет вовлечение посетителей в процесс интеграции сайта с социальными сетями. Рано или поздно разработчики сталкиваются с вопросом: как проверить наличие AdBlock и минимизировать наносимый им «ущерб»?

Принцип работы блокировщиков рекламы

С технической точки зрения AdBlock, uBlock Origin, AdGuard и другие подобные браузерные расширения (далее по тексту — AdBlock) блокируют не саму рекламу, а соответствующие сетевые запросы: при загрузке страницы каждое соединение сверяется со списком запрещённых и при необходимости отклоняется. В самих блокировщиках это называется сетевым фильтром . Он может содержать как конкретный перечень доменов, например, ad.mail.ru , так и части URL — /ucoz/img/uads/ , что позволяет блокировать запросы даже при совпадении по маске.

Случается, что в результате фильтрации сайт теряет нормальную работоспособность или возможностей одного лишь сетевого фильтра не хватает, чтобы заблокировать нежелательный контент. Для этого в блокировщиках предусмотрено скрытие элементов — косметический фильтр , применяющийся путём встраивания в документ правил CSS повышенного приоритета, которые скрывают области с рекламой, как правило, при помощи свойства display или в отдельных ситуациях добавлением атрибута hidden .

Работа косметического фильтра uBlock Origin на примере рекламы ВКонтакте: элемент #ads_left принудительно скрывается встроенным CSS с внушительного размера селектором.

Для заблокированного или скрытого контента доступно исключение из правил: при желании пользователя расширение способно игнорировать ненавязчивую (приемлемую) рекламу — баннеры, объявления и ссылки, которые носят дополняющий характер по отношению к основному контенту, не слишком фокусируют на себе внимание и в некоторых случаях бывают полезными. К сожалению, для рядовых сайтов попасть в белый список фактически невозможно, а значит блокировка рекламы по умолчанию гарантирована.

Но реклама — далеко не единственный объект фильтрации. Блокирование внешних ресурсов или скрытие элементов зависит от подписок , которые включены в пользовательский AdBlock. Каждая подписка специализируется на определенном типе нежелательного контента и периодически обновляется.

Популярные подписки

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

  • Реклама — любые элементы станицы, в том числе подключаемые извне ресурсы, в идентификаторах, классах и атрибутах которых встречаются запрещенные фильтром выражения. Обычно, подписка составляется с региональным учетом, например, EasyList+RuAdList .
  • Элементы социальных сервисов — кнопки «share», виджеты социальных сетей и иные встраиваемые посредством API элементы. Основным списком является .
  • «Раздражающие» элементы — вспомогательный контент страницы: кнопки для подписок, RSS, скроллинга вверх; формы для новостных рассылок; блоки с предупреждениями, информацией о политике приватности и использовании cookies и др. Всё это содержит список Fanboy’s Annoyance List .
  • Сервисы статистики — счётчики и скрипты анализа посещаемости, отслеживающие поведение пользователя, фактически не являются рекламой, однако рекомендуются к блокировке в целях повышения приватности. Среди таких списков стоит выделить EasyPrivacy и региональный RuAdList Counters .
  • Элементы «Anti-AdBlock» — баннеры, модальные окна и всплывающие уведомления, которые отображаются для пользователей с включенными расширениями и призывают отключить блокировщик и/или ограничивают функционал сайта. Ответом на них являются списки по типу Anti-AdBlock Filter .
  • Вредоносный и мошеннический контент — сайты, наносящие вред компьютеру и пользователю, блокируются всеми средствами: поисковыми системами, антивирусами, браузерами. Расширения, направленные на борьбу с рекламой, также предлагают подобные фильтры — например, Malware Domains .
  • Пользовательские правила блокирования — пользователь может самостоятельно заблокировать определенный сетевой запрос или скрыть элемент на странице, что запишется в отдельный фильтр.
  • Таким образом, список «кандидатов» на потенциальное скрытие или блокировку существенно увеличивается, и возникает вопрос, как разработчик может учесть эту проблему при вёрстке сайта.

    Вёрстка с учётом AdBlock

    Периодически обновляемые подписки с огромным числом правил блокирования невозможно досконально проанализировать, и на их основе нельзя составить универсальные рецепты для правильной вёрстки контента, который может попасть под действие фильтров. Самым верным решением будет установка всевозможных подписок и проверка конкретного сайта через логи блокировщика. Ниже приведены общие рекомендации по верстке двух типов наиболее часто встречающегося контента — рекламы и социальных виджетов.

    Рекламные блоки

    Ввиду того, что косметический фильтр аналогично сетевому также работает по маске и сверяет названия идентификаторов, классов и атрибутов элементов с указанными в списке, независимо от домена могут фильтроваться такие элементы как, например, #adv , .ad-google , .banner125x125 , .sponsor-logo , a и многие другие, поэтому во избежание искажений вёрстки подобные названия не рекомендуется использовать для обозначения элементов в HTML-разметке и для указания содержимого атрибутов href , src в ссылках, картинках и фреймах: они будут по умолчанию скрыты, даже если разработчик не подразумевал под ними контент рекламного характера.

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

    Ads...

    С использованием этой простой техники при попадании элемента под фильтр на его месте возникает пустое пространство, которое можно задействовать, например, для вывода плейсхолдера или из правил блокирования.

    Важно, что AdBlock анализирует и атрибуты элементов, поэтому ссылки, href которых содержит явное указание на рекламу, рекомендуется заменять через сервисы сокращения URL , а содержимое атрибута src у изображений по возможности преобразовывать в base64 :

    Социальные виджеты

    Практически все популярные «социальные скрипты» блокируются как косметическим, так и сетевым фильтром: упомянутая подписка Fanboy’s Social Blocking List содержит значительное количество названий классов и идентификаторов, которые часто употребляются при вёрстке блоков, включающих социальные виджеты: .b-share , .article__footer-share-title , .connect-icons и многие другие, а также маски для внешних скриптов, например, /fbshare.js , /share42.js , /twitter.js .


    AdBlock является причиной скрытия не только рекламы, но и блоков с социальными кнопками. Косметический фильтр по умолчанию добавляет display: none элементу с классом.article__share .

    Чтобы ограничить действия фильтров на подобные элементы, разработчикам следует по возможности отказываться от популярных решений в пользу собственных скриптов (пример создания своими руками) и избирательнее использовать названия для обозначения контента в разметке. То же касается и изображений, используемых, как правило, в качестве социальных иконок:

    Очевидно, что «спасти» контент от блокирования не всегда возможно, и лучшее, что следует предпринять в такой ситуации, — обратиться к пользователю с просьбой исключить сайт из фильтров AdBlock. Для вывода обращения не обязательно использовать JS: достаточно применить простые CSS-техники, о которых пойдет речь ниже. Но сначала стоит рассмотреть вопрос о содержимом и месте появления обращения на странице, так как его главной целью является не только привлечь внимание посетителя, но и получить согласие.

    Как правильно попросить пользователя отключить AdBlock?

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

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


    Пример правильного отображения просьбы об отключении AdBlock на Хабре. Ссылка на обращение ненавязчива и размещена строго на месте рекламного баннера.

    Правильное обращение (или ссылка на него) должно быть ненавязчивым, т. е. не слишком фокусировать на себе внимание, но в то же время — быть заметным для пользователя. В тексте желательно привести убедительные аргументы: например, указать зависимость дохода от рекламы и затрат на содержание сайта. Наконец, сам сайт должен быть полезен и важен для пользователя. Именно качественный контент и возможность дать посетителю то, что он ищет , являются главными факторами лояльности аудитории. Следовательно, в обращении к пользователю целесообразно подчеркнуть, что именно даёт ему сайт в обмен на лояльность и с какими затратами или усилиями разработчиков связано качественное предоставление этой информации, товара, услуги.

    Это можно проиллюстрировать на примере просьбы упомянутого IT-сообщества, даже небольшой фрагмент которой отражает уважительное отношение к участникам:

    В противовес тактичному обращению, размещенному на определенной части сайта и не мешающему посетителю, разработчики нередко используют большие модальные окна с фиксированным позиционированием, которые затеняют всю область просмотра. Прибегать к этому не рекомендуется как минимум по двум причинам:

    • 1. Более-менее опытный пользователь при желании без труда скроет косметическим фильтром практически любой мешающий ему элемент сайта, включая подобное модальное окно.
    • 2. Такая техника вредна с точки зрения SEO, так как может рассматриваться поисковыми роботами как клоакинг — попытка скрыть контент.

    В заключение вопроса о правильном составлении просьбы следует выделить, что нельзя злоупотреблять и самой рекламой — AdBlock изначально подразумевался как ответ на раздражающий контент. Огромные мигающие баннеры на пол страницы, расположенные по центру экрана, отпугнут даже самых лояльных пользователей, решивших исключить сайт из фильтров.

    Вывод просьбы отключить AdBlock на CSS

    Существует как минимум два простых варианта реализации вывода сообщения с просьбой отключить AdBlock на чистом CSS без использования JavaScript: посредством псевдокласса:empty и наложением двух элементов друг на друга через свойства position и z-index . Первый вариант расчитан скорее на сетевой фильтр, второй — более универсален, так как потенциально учитывает действие и косметического фильтра.

    Добавление псевдоэлемента в родительский контейнер

    Если скрипт, который генерирует рекламный контент и вставляет его в заданный пустой блок, не загрузится из-за сетевого фильтра , то этот контейнер так и останется без дочерних элементов и для него продолжит действовать псевдокласс:empty . В тривиальном исполнении это можно продемонстрировать следующим образом:

    Ads... .container:empty::before { content: "Пожалуйста, отключите AdBlock!"; }

    В примере внешний JS-файл вставляет в блок с атрибутом data-insert новый элемент. Если скрипт не загрузится из-за сетевого фильтра, к элементу.container будут применены стили псевдокласса:empty:

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

    Наложение одного блока на другой

    Если рекламный блок не отображается из-за косметического фильтра , т. е. элемент с рекламой внутри принудительно скрывается посредством display: none !important , то псевдокласс:empty станет бесполезен:

    Ads... Ads...

    Для разрешения проблемы предлагается создать дополнительный элемент , непосредственно содержащий сообщение с просьбой отключить блокировщик, но поместить его на слой ниже, т. е. позиционировать под рекламным блоком так, чтобы он был виден лишь тогда, когда к визуально перекрывающему его элементу было применено правило display: none . Для этого потребуется провести незамысловатные манипуляции со свойствами position и z-index:

    Ads... Пожалуйста, отключите AdBlock. .container { position: relative; } .adspace, .request { position: absolute; width: 100%; height:100%; } .adspace { z-index: 2; /* рекламный блок располагается на слой «выше» */ } .request { z-index: 1; }

    В отличие от предыдущего случая, когда приходилось оперировать лишь стилями для псевдоэлементов::before и::after , данный подход расширяет возможности стилизации и редактирования уведомления, выступающего уже полноценным DOM-элементом, а значит, по аналогии с тем, как это реализовано на Хабре, кроме обычного текста в блок можно добавить кнопку или ссылку на полное обращение к пользователю:

    JSFiddle недоступен без JavaScript

    Единственный недостаток данной техники — абсолютно позиционированный элемент.request будет ограничен областью своего родителя, поэтому указанный код непригоден в случае, если возникает потребность отображать модальное окно по центру экрана и затенение, занимающее весь viewport. Для решения такого рода задач нельзя обойтись без JavaScript.

    Как проверить наличие AdBlock через JS?

    Механизмы работы сетевого и косметического фильтров открывают разработчикам возможность определить наличие расширений AdBlock посредством JavaScript: состояние загрузки подключенного к странице скрипта отслеживается событиями onload и onerror или возможностью корректного вызова содержащихся в нём методов и функций, а видимость элемента — через анализ примененного к нему CSS-свойства display . На основе этого существует несколько путей обнаружения AdBlock .

    Использование внешнего скрипта

    Первый вариант — это подключение на страницу внешнего скрипта с названием, подходящим для маски фильтрации, и содержимым, выполнение которого необходимо будет проверить. Например, файл, именуемый ads.js , может содержать всего одну переменную:

    // ads.js var adb = "";

    Соответственно, при включённом блокировщике рекламы файл ads.js не загрузится, и задекларированная внутри него переменная adb не будет существовать. Проверка выполнения скрипта представляет собой тривиальное условие, которое необходимо поместить ниже подключенного файла:

    If(typeof adb === "undefined") { // AdBlock включен } else { // AdBlock выключен }

    Второй вариант схож с первым: внешний скрипт ads.js может быть пуст (но не возвращать ошибку 404), а проверка на блокировку заключается в добавлении к нему событий onerror или onload , которые будут обрабатываться отдельной функцией с одним параметром, например, adsLoaded(status) :

    Var adsLoaded = function(status) { if(status === false) { // AdBlock включен } else { // AdBlock выключен } }

    В HTML-документе подключаемый скрипт должен иметь соответствующие обработчики:

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

    Проверка видимости элемента

    Данный подход не подразумевает создания внешних скриптов или отслеживания состояния их загрузки: проверка осуществляется на конкретном элементе путем анализа примененного к нему CSS-свойства display . Учитывая задержку при инициализации косметического фильтра блокировщика рекламы, для проверки окончательного вычисленного значения целесообразно использовать метод getComputedStyle() и дождаться, пока страница и внешние ресурсы полностью загрузятся:

    Window.addEventListener("load", function() { if(window.getComputedStyle(document.getElementById("my-adv")).getPropertyValue("display") === "none") { // AdBlock включен } else { // AdBlock выключен });

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

    Функции рекламных скриптов

    Рекламные скрипты имеют собственные методы и функции, которые не могут быть вызваны, когда внешний файл оказывается недоступен. Например, Google Adsense создаёт объект google_jobrunner и встраивает рекламу через элементы с классом.adsbygoogle:

    Document.addEventListener("load", function() { if(typeof window.google_jobrunner === "undefined" || document.querySelector("ins.adsbygoogle").innerHTML.replace(/s/g, "").length === 0) { // AdBlock включен, скрипт Adsense заблокирован } });

    Проверка на AdBlock с определением подписок

    Проанализировав, какие именно элементы отфильтрованы блокировщиком, можно сделать предположение о наличии соответствующих видов подписок у пользователя. На уменьшение точности определения влияют два фактора — пользовательский список фильтров и большое число «официальных» подписок, правила блокирования которых нередко пересекаются между собой.

    Суть проверки заключается в создании на странице невидимых для пользователя, но видимых для AdBlock «фейковых» элементов с идентификаторами, классами и атрибутами, указывающими на принадлежность к определенной группе контента. Элементы, попавшие под действие косметического фильтра, будут свидетельствовать в пользу наличия соответствующего вида подписки, т. е. в целом указывать на то, какого рода контент блокируется пользователем:

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

    JSFiddle недоступен без JavaScript

    Как видно из примера, функция adbCheck() возвращает объект, поэтому при необходимости можно обратиться только к интересующему в нём свойству:

    Var result = adbCheck(); result.ads_block; // реклама result.cnt_block; // счетчики result.soc_block; // социальные виджеты result.ang_block; // раздражающие элементы result.ant_block; // элементы anti-adblock result.scm_block; // мошеннические сайты

    В заключение

    Учет действий фильтров AdBlock — это показатель качественной вёрстки сайта и принятие во внимание сегмента посетителей, которые не только не видят рекламы, но и, вполне возможно, не могут использовать социальные виджеты share и не учитываются счетчиками посещений и прочими сервисами статистики. Именно такой широкий спектр объектов фильтрации — от рекламных скриптов до социальных кнопок и отслеживающих элементов — предоставляют сегодня популярные подписки. Проверке на AdBlock стоит уделять особенно пристальное внимание на сайтах, зависящих от доходов с рекламы или активно использующих социальные виджеты. В свою очередь, правильное, тактичное и ненавязчивое обращение к посетителю может серьезно поспособствовать пересмотру его отношения к заблокированному контенту.