INT 21h

Домашняя страница самого страшного прерывания

Обнаружение и противодействие блокираторам рекламы

№ 2850 В разделе "Программирование" от May 18th, 2011,

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

Итак, есть всего 3 эффективных метода борьбы на данный момент: простой, сложный и просто маргинальный. Простой заключается в проверке загрузилась ли картинка с баннером. Концепция второго – внедрение рекламы прямо в код страницы, а если это графика, то использовать base64 прямо в теге img (что кстати не проканает с флешем. а может и проканает, но я просто не знаю как сделать). От такого может спасти только порево с кучей плагинов перезаписывающих DOM дерево страницы. Обычный юзер такие даже ставить не будет, не то что разбираться. Третий способ намного сложнее и заключается в генерации случайного имени файла и директории в которой он лежит и хранение рекламы прямо у себя на сервере (или нгинксом делать вид, что она на сервере). Я пока еще придумываю его реализацию (ждите в ближайшее время продолжение статьи). ВКонтакте применил сместь второго и третьего способа и теперь у него все хорошо.

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

Итак, начнем с первого способа, работающего прямо сейчас с моим блогом.

Известно, что AdBlock рекламу не просто блокирует, а вырезает ее из страницы. Допустим, на странице есть баннер с именем banner.gif. Понятно дело, что у Adblock это первый кандидат для блокировки по имени. У меня нет баннеров с таким именем и я вообще не храню рекламу на сервере, поэтому я применяю болванку размером 1×1 пиксел.

<img src="/wp-content/themes/wp-theme-rubashka/banner.gif"
 height="1" width="1" id="test" class="test">

Тег img имеет класс test, который естественно исчезнет из DOM страницы, когда AdBlock её обработает. Делаем простой скрипт проверки наличия этого класса и вуаля!

<script type="text/javascript">
var test=document.getElementById("test");
if (test.className != "test") {
    document.getElementById("cont").innerHTML="Вы используете
 блокировщик AdBlock. Отключите его пожалуйста
 или добавьте сайт в исключения.";
}
</script>

Сам контент находится в элементе с ID “cont”. Как вы видите в коде, его содержание (собственно контент страницы) перезаписывается вашим текстом. Можно конечно этого не делать, а просто выводить сообщение, что юзер очень редиска.

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

9 комментариев »

9 комментариев »

Comment by Boten | May 18, 2011 @ 21:17:18

очень интересно. ждемс :)

Comment by odekolon | May 20, 2011 @ 19:37:13

самый верный способ встраивать червя через какую-нить дыру в браузере)
Вобще вроде за такие извраты гугол может и зобанить (у себя) у них есть какита правила которые которые запрещают шаги в стороны не говоря уже о прыжках

Comment by 21h | May 20, 2011 @ 23:34:22

ну гугол то врятли забанит за то, что обеспечиваю показ объяв :) другое дело если я прямо заставляю тыкать на них

Comment by Никита | January 2, 2012 @ 02:23:05

А на другие блокировщики действует к примеру на Adguard

Comment by 21h | January 2, 2012 @ 03:01:43

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

Comment by solid | December 3, 2012 @ 14:46:25

уже не работает :(
chromium + adblock
проверил, ничего он не вырезает, количество строк в html-страничке – одинаковое что с вкл, что с выкл adblock’ом :)

Comment by 21h | December 3, 2012 @ 16:31:39

за прошедшие 1.5 года мой блог изменился. вот и не вырезает. а количество строк не должно меняться. просто высота и ширина блоков делается 0.

Comment by Zyi | September 14, 2015 @ 17:23:09

отключаем js читаем страничку

Comment by 21h | September 16, 2015 @ 01:48:58

И сразу половина сайта не рабочая. Супер решение.

Форма отправки комментария

CAPTCHA
*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • Игорь: Все настроил, еще раз просмотрел видео и методом научного тыка все настроил и сохранил, все работает и обе...
  • 21h: Здравствуйте, Игорь! Я не знаю :) Думаю аналогично согласно инструкции к вашей радиостанции.
  • Игорь: Добрый день, просмотрел Ваше видео все доступно и ясно для 8 ми канальных радеек, но мне нада настроить 69...
  • Гоги: Есть инструкция к Моторолкам – она подходит к серии Motorola TLKR T4… Т8. В конце сетка частот и...
  • 21h: торчок давно уже не обновлял, как только закрыл сайт где он работал. да, это морда для opentracker. без...
  • Buter: Какова дальнейшая жизнь торчка? Он кстати веб-интерфейсом для OpenTracker выступает? Без OpenTracker работать...
  • 21h: понятия не имею. гуглите инструкцию к вашей радейке и сверяйтесь с ней.
  • Денис: хочу их подружить с uv5r
  • Денис: t-388 walkie talkie на эти шпаргалочек нет,или как приминить ваши к их настройке?
  • John: Стекла для электроник – техночас.ру