Хочется сразу сказать, что не стоит блокировать сайт и просить посетителя включить показ рекламы. В этом случае большинство пришедших на сайт людей просто закроют страничку.
Многие вебмастеры возможно скажут: «не смотришь рекламу, не смотри и сайт», но это не совсем так. Большинство людей заходят на сайт из поисковых систем, которые в свою очередь фиксируют время, проведенное этим человеком на сайте. И если большинство посетителей будут закрывать сайт, как только туда попали, очень вероятно, что поисковик просто уберет его из высоких результатов поиска.
На мой взгляд, более логично показывать альтернативную рекламу, если у посетителя включен блокировщик. Это может быть либо другой ваш сайт, либо какие-то партнерские ссылки. Ну а если ничего такого нет, можно просто написать текст о просьбе включить показ рекламы.
И так, у нас есть блок с рекламой, в который для примера мы подключим скрипт с названием advertising и текстом "Реклама показывается!"
1 2 3 |
<div class="ads"> <script src="//atuin.ru/demo/advertising.js"></script> </div> |
Выше добавим другой, скрытый блок, который нам и надо будет показать, если заблокирован блок с рекламой.
1 2 3 |
<div class="alternative" style="display:none;"> <div style="padding:10px; color:red;">Реклама заблокирована! Показываем что-то еще.</div> </div> |
Обратите внимание, что классы ads и alternative используются в скриптах и везде используется библиотека jQuery.
1. Проверка ошибки при загрузке рекламного скрипта
Самый простой способ, это определить, загрузилась ли наша реклама. Для этого в скрипт ее подключения добавим проверку на ошибку. Если скрипт по какой то причине не загрузился, мы сразу покажем альтернативный блок.
1 |
<script src="//atuin.ru/demo/advertising.js" onerror="$('.alternative').show(); $('.ads').hide();"></script> |
Плюсы:
Элементарное решение, которое покажет альтернативный блок даже если AdBlock выключен, но сторонняя реклама не подключилась.Минусы:
Подойдет только для альтернативной рекламы. Писать про AdBlock и тем более блокировать сайт в этом случае нельзя.Результат:
2. Проверка загрузки скрипта
Т.к AdBlock блокирует любую загрузку внешних скриптов с рекламными названиями, то просто создадим и подключим файл reklama.js, где определим переменную:
1 |
var reblock = 0; |
А затем (ниже наших рекламных блоков) проверим, определена ли наша переменная
1 2 3 4 5 6 7 8 |
if(typeof reblock == "undefined") { // AdBlock обнаружен, поэтому прячем рекламный блок и показываем альтернативный $('.alternative').show(); $('.ads').hide(); } else { // AdBlock не обнаружен // Дополнительные манипуляции (при необходимости) } |
Плюсы:
Простое решениеМинусы:
Нужно загружать дополнительный, хоть и пустой скриптРезультат:
3. Используем скрипт FuckAdBlock
Для этого в шапку сайта размещаем (Скачать blockadblock.js) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<script>var fuckAdBlock = undefined;</script> <script src="blockadblock.js"></script> <script> // AdBlock обнаружен, поэтому прячем рекламный блок и показываем альтернативный var adBlockDetected = function() { $('.alternative').show(); $('.ads').hide(); } // AdBlock не обнаружен var adBlockUndetected = function() { // Дополнительные манипуляции (при необходимости) } // We observe if the variable "fuckAdBlock" exists if(typeof FuckAdBlock === 'undefined') { // If it does not exist, it means that AdBlock blocking the script FuckAdBlock // Therefore the function "adBlockDetected" is executed // PS: The function is executed on the "document ready" in order to select the HTML with jQuery $(document).ready(adBlockDetected); } else { // Otherwise, our functions we add to FuckAdBlock for a classic detection fuckAdBlock.on(true, adBlockDetected).on(false, adBlockUndetected); } </script> |
Плюсы:
Популярное и надежное решение. Различные настройки и варианты можно поглядеть на сайте разработчика: fuckadblock.sitexw.frМинусы:
Нужно загружать дополнительный скриптРезультат:
4. Проверка высоты рекламного блока
Данный способ вообще не имеет никакого отношения к блокировщикам рекламы.
Мы просто проверим высоту рекламного блока, и если она меньше чем нам хотелось бы, покажем альтернативный блок.
Для этого добавим ниже наших блоков:
1 2 3 4 5 6 |
$(window).on("load", function () { if ($(".ads").height() < 10) { $('.alternative').show(); $('.ads').hide(); } }); |
Плюсы:
Хорошее решение, которое покажет альтернативный блок даже если AdBlock выключен, но сторонней рекламы не нашлось для данной страницы или она просто не загрузилась.Минусы:
Подойдет только для альтернативной рекламы. Писать про AdBlock и тем более блокировать сайт в этом случае нельзя. Кроме этого сама реклама не должна задавать высоту блоку по умолчанию.Результат:
Все способы проверялись с блокировщиком AdBlock, если у вас установлено что-то другое, напишите, пожалуйста, результат в комментариях.
Добавить комментарий: