Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /

№ 2850 В разделе
Programming
от 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”. Как вы видите в коде, его содержание (собственно контент страницы) перезаписывается вашим текстом. Можно конечно этого не делать, а просто выводить сообщение, что юзер очень редиска.
Ждите продолжения со вторым и третьим способом. Также мы обсудим блокировку изображений по их размерам.
Fortune cookie: Here's to the girl in little red shoes, She drinks my liquor, she drinks my booze, She has no cherry, but that's no sin, She has the box the cherry came in.
очень интересно. ждемс 🙂
самый верный способ встраивать червя через какую-нить дыру в браузере)
Вобще вроде за такие извраты гугол может и зобанить (у себя) у них есть какита правила которые которые запрещают шаги в стороны не говоря уже о прыжках
ну гугол то врятли забанит за то, что обеспечиваю показ объяв 🙂 другое дело если я прямо заставляю тыкать на них
А на другие блокировщики действует к примеру на Adguard
даже не слышал о таком. не думаю, что колво его пользователей даже сравнимо с колвом пользователей адблока. следовательно им можно пренебречь как слишком малая аудитория. в любом случае если яваскриптом проверять загружена ли картинка, то можно добиться искоренения таких блокираторов.
уже не работает 🙁
chromium + adblock
проверил, ничего он не вырезает, количество строк в html-страничке – одинаковое что с вкл, что с выкл adblock’ом 🙂
за прошедшие 1.5 года мой блог изменился. вот и не вырезает. а количество строк не должно меняться. просто высота и ширина блоков делается 0.
отключаем js читаем страничку
И сразу половина сайта не рабочая. Супер решение.