{lang: ‘ru’}

adblock, анти adblock, adblock детектор, anti adblockМногие пользователи сети Интернет наверняка слышали о таком плагине как AdBlock plus. Добавив этот плагин себе в браузер можно раз и навсегда избавиться от навязчивой рекламы. Зачем  же тогда бороться с  AdBlock plus, спросите Вы? Если Вы обычный пользователь, то бороться не зачем, но если же Вы владелец сайта, на котором размещена реклама, то  это меняет дело. Если посетители сайта будут блокировать рекламу, то доход от показа рекламы может существенно сократиться.

Метод борьбы, приведенный в этой статье, достаточно прост и заключается в выводе на экран ненавязчивого сообщения с просьбой отключить плагин для данного сайта с помощью JS скрипта. Некоторые веб-мастера называют такой скрипт анти AdBlock или AdBlock детектор.


Demo Исходники




Шаг 1. HTML

Достаточно добавить блочный элемент с атрибутом class в любое место страницы, предварительно разместив рекламный код внутри блока.

<div class="adb">
    Рекламный код тут
</div>

Шаг 2. JS

Нужно разместить этот код в файле с расширением js

var ads = "adb"
var msg = '<div style="border: 1px dashed #f00; padding: 5px;"><b>Adblock Detected</b></div>';

onload=function(){
	// заглушка для IE, т.к. нет функции getElementByClassName
	if (document.getElementsByClassName == undefined) {
		document.getElementsByClassName = function(className)
		{
			var hasClassName = new RegExp("(?:^|\s)" + className + "(?:$|\s)");
			var allElements = document.getElementsByTagName("*");
			var results = [];

			var element;
			for (var i = 0; (element = allElements[i]) != null; i++) {
				var elementClass = element.className;
				if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
					results.push(element);
			}
			return results;
		}
	}

    blocked = 0;
	//получаем массив всех рекламных элементов
	var ad_nodes = document.getElementsByClassName(ads);
	for(i in ad_nodes){
        // проверяем высоту i-го блока
        if (ad_nodes[i].offsetHeight == 0){
            blocked = 1;
            ad_nodes[i].innerHTML = msg; // выводим сообщение на экран
        }
    }
}

Данный скрипт проверяет высоту всех рекламных блоков на странице и, если высота какого-либо блока равна нулю, выводит сообщение на экран.

Итоги

Установив данный скрипт на свой сайт можно попросить пользователя добавить сайт в белый список, тем самым помочь ресурсу. Стоит помнить, что при выключенном JavaScript, скрипт работать не будет и пользователь не увидит Вашего сообщения.
Если Вам понравилась статья, то я буду рад, если Вы поделитесь ссылкой с друзьями в соцсетях. Удачи в работе! :)


Получайте новые статьи блога прямо себе на почту