Комментарии 25
Скажите, что в первом примере помешает заблокировать
div#bannerContainer
?Нет, вы не совсем поняли. Случайный id генерируется, но он тут не при чем. В строке
Более того, я попробовал код автора в jsfiddle — не знаю, что там должен был гениального сделать этот сниппет, но у меня в фуррифоксе всё заблокировалось, как и полагается. Выключил Adblock — видно баннер, включил — не видно. Не знаю, что там должно было быть.
document.getElementById(attach).appendChild(div);
происходит добавление div со случайным id ребенком к div#bannerContainer
. Блокируем div#bannerContainer
и проблем нет.Более того, я попробовал код автора в jsfiddle — не знаю, что там должен был гениального сделать этот сниппет, но у меня в фуррифоксе всё заблокировалось, как и полагается. Выключил Adblock — видно баннер, включил — не видно. Не знаю, что там должно было быть.
Если обозвать див по другому, то всё, пиши пропало. Адблок не найдёт его. И это вообще для примера.
Переименовал div в
0oc0RsZBiNW1gN3yYShXOQ
— удивительным образом AdBlock Plus всё равно его заблокировал. Я, конечно, допускаю, что произошло совпадение, и в базе ABP есть такой айдишник, но FZQl7VXyFnBw4hVpf9lL8A
и qYfDgVjfa0xL1a7lgwPVVA
тоже заблокировались. Но стоит отключить ABP и обновить страницу — и баннер тут как тут. Как так получается? :)А он не блокируется. Сам проверял.
Мне кажется, у вас по какой-то причине не работает AdBlock вообще. Вот, смотрите — этот кусок кода каждые 500 мс уничтожает старый баннер и добавляет новый, случайным образом показывая либо настоящую рекламу, которая находится в черном списке AdBlock, или же логотип настоящего хабрахабра. Все делается честно — реклама вставляется после загрузки страницы, со случайным id, с единственным родительским элементом — <body>, комар носа не подточит. По вашим словам, AdBlock должен был бы ее пропустить — но он блокирует баннер, пропуская при этом хабралого. Если заменить div на img, ничего не поменяется, на самом деле — блокируется сама картинка, а что именно ее грузит, когда, какой id у этого элемента — AdBlock не волнует на самом деле.
Так что проверьте, работает ли у вас AdBlock в принципе — что-то подсказывает мне, что нет.
Так что проверьте, работает ли у вас AdBlock в принципе — что-то подсказывает мне, что нет.
Если я хоть раз зайду на сайт, который «вешает» мой блокировщик рекламы, то больше я на него заходить никогда не буду.
На чем работают сайты? Сервера, движки, — это все конечное, а первостепенное — это деньги.
Деньги бывают:
Собственно и все. Без денег нечем платить за сервер, без денег нету любимого сайта. Если выручки с дотаций мало, то источником будет реклама.
Деньги бывают:
- с рекламы
- с дотаций
- из кошелька
Собственно и все. Без денег нечем платить за сервер, без денег нету любимого сайта. Если выручки с дотаций мало, то источником будет реклама.
Первостепенное у сайтов — посетители.
«Цветы жене, а детям мороженое», только и то и то надо купить, чтобы подарить.
Сайт предоставляет посетителям некую «услугу», за которую получает прибыль в виде доната или денег с рекламы или пользователи платят абонентку или пенни при регистрации.
Лояльный пользователь отключит блокировку рекламы на сайте, который пользователю интересен, если тот его попросит (например через оповещение).
Нелояльный или принципиальный — от такого пользователи нету толку, кроме как лишний плюс в счетчике.
Если ресурс живет на дотации — реклама не нужна.
Если ресурс НЕ живет на дотации — реклама необходима.
В противном случае будьте готовы тратить некий % от заработанных на работе денег на оплату серверов и персонала (если проект масштабный).
Сайт предоставляет посетителям некую «услугу», за которую получает прибыль в виде доната или денег с рекламы или пользователи платят абонентку или пенни при регистрации.
Лояльный пользователь отключит блокировку рекламы на сайте, который пользователю интересен, если тот его попросит (например через оповещение).
Нелояльный или принципиальный — от такого пользователи нету толку, кроме как лишний плюс в счетчике.
Если ресурс живет на дотации — реклама не нужна.
Если ресурс НЕ живет на дотации — реклама необходима.
В противном случае будьте готовы тратить некий % от заработанных на работе денег на оплату серверов и персонала (если проект масштабный).
Побуду антипопулистом…
Если сайты живут за счет рекламы, было бы справедливым просто не пускать юзеров с задедекченными блокерами или же предлагать внести сумму для возможности посещения сайта.
Всем хорошо — кто не хочет смотреть рекламу, не смотрит ее. Кто не хочет обслуживать бессмысленный траффик, не обслуживает :)
Возьмет на вооружение хабр, гугл и ютуб, и проблемы не будет.
Если сайты живут за счет рекламы, было бы справедливым просто не пускать юзеров с задедекченными блокерами или же предлагать внести сумму для возможности посещения сайта.
Всем хорошо — кто не хочет смотреть рекламу, не смотрит ее. Кто не хочет обслуживать бессмысленный траффик, не обслуживает :)
Возьмет на вооружение хабр, гугл и ютуб, и проблемы не будет.
Если юзеров не будут пускать, то они будут ходить на тот сайт, куда их пускают. Кому от этой стратегии хуже?)
Я не против рекламы. Но баннеры не должны быть анимированными, не должны быть озвученными, их не должно быть в поле зрения больше одного. Когда страница мигает баннерами как новогодняя елка, не остается другого выбора, кроме как резать рекламу всеми доступными способами. Даже на планшете пришлось поставить firefox и ходить в и-нет с помощью него — исключительно ради возможности использовать AdBlock.
> при помощи JavaScript
Ха. А noscript при помощи чего будем блокировать?
Ха. А noscript при помощи чего будем блокировать?
Неужели действительно человек решит купить товар, потому что ему насильно впихивают и суют под глаза рекламу, вешают его браузер или расширение и раздражают и бесят всяческими другими способами? Думаю, скорее он закроет этот сайт и никогда больше не откроет, а об рекламируемом продукте отложится впечатление «бесящее г*вно»
Автор, если отставить в сторону морально-этическую сторону вопроса запрета блокировки рекламы — скажите, пожалуйста, зачем вы пишете такой, прошу прощения за прямоту, говнокод? Например, конструкция:
Второе — что за
var var1 = $('foobar');
if (var1) {
var1.remove();
}
В условии нет ни малейшего смысла, jQuery всегда возвращает объект, который является truthy. Более того, в JavaScript в принципе нет возможности сделать пользовательский объект, который будет falsy. Поэтому нужно было писать просто $('foobar').remove();
Второе — что за
create = false;
? В чем прелесть не использовать return
? Более того, почему сообщения об ошибках вываливаются alert-ами, а не throw new Error('все печаль');
?Я бы подвесил такое на сайт конкурента. Себе — нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обход блокировки баннера AdBlock Plus и Adguard + Anti-Adblock