Как определить наличие расширения AdBlock у посетителя сайта

AdBlock это не дружественная утилита с API, которая с удовольствием сообщит Вам о своем наличии. Определить, что у пользователя включен AdBlock можно только по косвенным признакам. В этой заметке я покажу как выявить включенный AdBlock или AdBlock Plus у пользователя средствами JavaScript. 

Итак.

Особенностью поведения плагина AdBlock является то, что он блокирует подключения файла adframe.js. Теперь, когда мы это знаем, все что нам нужно это создать файл adframe.js с некоторым содержимым и проверить результат его подключения. Наиболее простым способом будет создать файл adframe.js с переменно

var adframe = FALSE;

Вставим файл внутри тега <head>

<script type="text/javascript"><!--
    var adblock = TRUE;
    //--></script>
<script type="text/javascript" src="/js/adframe.js"></script>

Теперь проверим значение переменной adframe после загрузки страницы. Если у нас есть подключенный jQuery:

$(function() {
 if(adblock) {
   alert('adblock is ON');
 }
});

Если jQuery не подключен, то

document.addEventListener('DOMContentLoaded', function() {
 if(adblock) {
   alert('adblock is ON');
 }
});

Если AdBlock включен, то он заблокирует подключения файла adframe.js и тем самым выдаст себе потому, что никогда не узнает, что значение переменной adblock должно быть FALSE.

Мои PET-проекты
Матч Шредингера. Про футбол без спойлеров. Сервис помогает выбрать интересный матч для просмотра в записе. Перейти »
MafiozZz. Сервис для тех, кто любит играть в мафию. Сервис дает клубам возможность завести клубный сайт, предоставляет удобный интерфейс для ведения подобной статистики, расписания игр, выдавать игрокам награды, проводь адресную SMS рассылку (и прочие плюшки). Перейти »