Как показывают комментарии к статьям, на Хабре есть аудитория, достаточно сильно любящая блокировщики рекламы. В этой статье я выскажу своё мнение, за что можно сильно их не любить.

В чём же претензии?


Заблокировать рекламу, никогда не затронув всё остальное, невозможно. Во многих случаях это возможно, но не делается по причине низкого качества блокировщика. Также зачастую функционал вообще реализован криво, что только усугубляет ситуацию. Но претензия не в этом. Понятное дело, что разработчики не боги, и не могут по волшебству всё исправить. Но ведь нужно предупредить пользователя о такой особенности?

Поясню: некоторые пользователи действительно понимают, что блокировщик может сломать сайт или часть его функционала, и когда что-то не так, машинально тянутся за кнопкой наверху, чтобы приостановить блокировщик. Это хорошо. Но некоторые пользователи даже подумать не могут, что это вина блокировщика. Они либо уйдут с такого сайта, либо останутся без нужной им услуги. Честный блокировщик должен при установке вывести большое яркое предупреждение о такой важной особенности, чтобы не было пользователей, которые об этом не знали. Отсутствие предупреждения — это утаивание информации и ввод в заблуждение, что говорит о том, что блокировщик не является честным. Конечно же нечестный блокировщик никому ничего не должен, но эта статья как раз и описывает, за что я не люблю блокировщики — за их нечестность.

Как создатель сайта я хочу, что сайт работал корректно даже у пользователей, которые решили блокировать рекламу. Но в реальности на регулярной основе что-то может ломаться, из-за чего я 1) несу потери от оттока пользователей, 2) несу репутационные потери. Чтобы это исправлять, я должен выполнять работу, которую перекладывают на меня нечестные блокировщики, либо смириться с потерями. При этом выполнение этой работы не приносит никакой пользы обществу: блокировщики в целом не являются добром и препятствуют развитию сайтов, т. е. я вынужден выполнять работу, не приносящую пользу обществу. Данная причина является второй причиной осуждения блокировщиков.

Хуже бывает тогда, когда исправление невозможно в принципе. Да, такое бывает (будет описано ниже). И это третья причина — даже если ты готов тратить на усилия на поддержку, зачастую исправить некорректную работу невозможно в принципе (да да, такое бывает!).

И четвёртая причина — недостаточно протестировать сайт один раз. Он может сломаться в любой момент без всякого предупреждения. А иногда тебе об этом даже не сообщит никто из пользователей (например, потому что сайт вообще не работает у него). Да, ты можешь поставить 10 блокировщиков и регулярно проверять сайт, но это не спасёт от 11-го блокировщика, это не спасёт от отсутствия предупреждения, и это не спасёт от того, что можно просто что-то не заметить.

При этом


Конечно же, ломаются не только сайты с рекламой, но и даже сайты, на которых рекламы нет вообще. Точка зрения «ну у него всё сломалось, наверное, потому что весь сайт был завален рекламой» в корне неверна. Среди моих проектов проблемы у сайтов с рекламой возникали чаще, но ненамного, чем у проектов без рекламы вообще.

Также нужно отметить, что некоторые блокировщики содержат отказ от ответственности, в котором написано, что они могут поломать функционал или сайты, но обычно этот отказ запрятан очень далеко и найти его непросто — это сильно отличается от идеи «вывести крупным текстом сразу после установки».

Когда блокировщик работает некорректно?


  1. Когда вместо того, чтобы использовать конкретные правила для конкретного сайта, используются общие правила для всех сайтов. Вряд ли контейнер с рекламой будет называться «this-is-container-for-ads», а значит правила без проблем могут затронуть даже сайты, на которых рекламы нет вообще. Разработчики могут не всегда добавлять конкретные названия в правила, например, известны случаи, когда приложения полностью становились неработоспособными просто из-за того, что какой-то критический запрос содержал рандомное значение, начинающееся с «ad98b…». Вот на это «ad» вначале и среагировал блокировщик.
  2. Когда добавляется правило для конкретного сайта, но делается это на скорую руку. Зачастую, разработчики блокировщика даже не проводят минимальное тестирование после добавления правила.
  3. Когда сам блокировщик работает некорректно. Например, существуют блокировщики с возможностью заблокировать рекламу мышкой, но вместо рекламы они блокируют весь iframe да так, что он даже не начинает грузиться. Обойти такую блокировку уже невозможно в принципе, по крайней мере, если iframe не твой (а чаще всего он не твой). Для пользователя это выглядит как белый экран. 99.99% пользователей, увидя белый экран, подумает, что сайт не грузится, и только 0.01% проверит его с другого браузера, и увидит, что с другого браузера всё норм, а значит не так что-то с браузером.
  4. Когда существует функция блокировки мышкой. Если правила создаёт администратор блокировщика, он может провести тестирование правила. Но пользователи очень мало понимают в технологиях (а точнее не понимают ничего), поэтому даже если сайт после этого полностью перестал работать, даже в этом случае не все догадаются, что это вина некорректно созданного ими виртуального правила. Что уж говорить о том, если сайт потерял только часть своего функционала и по-началу это незаметно. Администратор сайта уже не может провести тестирование, ведь каждый пользователь может вырезать элементы по-разному, и не получится поставить 40 блокировщиков, чтобы проверить работу. Можно попытаться обеспечить работу при вырезании любого элемента (с прогрессивной потерей функциональности), но не всегда это возможно, либо требует значительных затрат. При этом решение проблемы на самом деле очень простое: когда пользователь выделяет элемент мышкой, он должен видеть предупреждение, что это может сломать сайт, а после выполнения действия в меню дополнения он должен иметь возможность быстрой отмены добавленных таким образом правил. Но выводят ли текущие блокировщики предупреждения? Если не выводят, то почему?

Что можно сделать?


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

Как разработчик сайта Вы можете вывести предупреждение в духе «Работоспособность функционала не гарантируется при включенных блокировщиках рекламы и в браузерах до IE 11, Chrome 4.0, FF 4.0». Конечно, это не всегда возможно (по причине того, что сайт уже вообще не работает у пользователя, либо просто некуда вывести такое предупреждение). Также часть пользователь могут это не так понять, ведь пользователи уверены, что это авторы сайтов пытаются всеми силами отстоять свою рекламу, а не что сами блокировщики могут работать некорректно — получается, снова репутационные потери, даже если проблемы ещё не начались.

Можно вести официальный блог или форум — если с сайтом будет что-то не так, пользователи будут знать, куда обратиться. В противном случае Вы можете даже никогда не узнать о проблемах.

Другие причины осуждения блокировщиков


Также есть и другие причины осуждения блокировщиков:

  1. Блокировщик после блокировки не уведомляет владельцев сайта, чтобы те сам проверил работоспособность, даже если контакты явно указаны внизу страницы. Ваш сайт может сломаться в любой момент, и нет времени это исправить, не говоря уже о том, чтобы заранее подготовиться и не допустить этого.
  2. Тяжело обратиться в поддержку блокировщика: если это честный блокировщик, то связь для разработчиков сайтов должна быть на самом видном месте, а если нечестный, то это ещё одна причина осуждения. Я не говорю, что обратиться нельзя вообще, но нужно понимать, что блокировщиков не один, а много, и изучить, получается, нужно каждый. Честный блокировщик должен максимально упростить задачу.
  3. Некоторые пользователи даже думают, что разработчики сайта пытаются бороться с блокировщиками, и поэтому не работает, и назло уходят с сайта. Это самое обидное. Если бы блокировщик предупредил, что это из-за него сайт может работать некорректно, такого бы не было.

Могут ли блокировщики исправить ситуацию? Конечно могут, ведь всего лишь достаточно нескольких предупреждений, чтобы пользователь понимал, что это не сайт делает подлянки или просто глючит, а блокировщик несовершенен, и чтобы пофиксить ситуацию, нужно отключить блокировщик на этой странице (если пользователя это устраивает). Делают ли это блокировщики сейчас? Нет.

Почему уведомление пользователя после установки так важно?


Один из множества реальных случаев: приходит пользователь к нам, жалуется на белый экран. Мы видим по скрину, что у него стоит блокировщик, и говорим, что он работает некорректно. Пользователь понимает, что если выключить блокировщик, то всё станет работать, но уверен, что это мы специально сделали так, чтобы раз он блокирует рекламу, то чтобы у него не работало. Или же мы боролись с рекламой, боролись, и теперь блокировщик вообще заблокировал нас, короче мы сами виноваты, а вместо того, чтобы исправить или вообще снять всю рекламу, говорим отключить ему блокировщик.

По факту из-за безалаберности блокировщика мы оказались оклеветаны. Это очень неприятно. При этом исправить проблему невозможно — белый экран нельзя исправить технически.

«Я никогда не встречал поломанные сайты, это редкость»


Поломка сайтов — это никакая не редкость. Дело в том, что применять утверждение «Я почти никогда не встречаю поломанные сайты» абсолютно некорректно. Допустим, Вы обнаружили 1 поломанный сайт из 500. Но что это на самом деле значит?

  1. Во первых, велика вероятность, что Вы вообще зашли первый раз на сайт или пользовались им непродолжительное время. Например, Вы пользуетесь сайтом месяц, но ведь сайт мог существовать, к примеру, 5 или даже 10 лет. За это время сайт мог поломаться даже не 1 раз, а раз 10. Но для Вас будет казаться, что сайт не сломан.

    Чтобы определить коэффициент, давайте возьмём время поломки 1 раз за 3 года, длительность поломки 1 месяц, время работы сайта 5 лет, и время Вашего пользования сайтом тоже 1 месяц. Тогда вероятность того, что за первый месяц работы сайт ни разу НЕ будет сломан — 0.972 (а сломан — 0.028). За 3 года не сломан — 0.363, а сломан — 0.637. Обратите внимание: да, за 3 года в среднем сайт сломается 1 раз, но при этом вероятность поломки не 100%, а только 64% — это потому что сайт может сломаться как 0 раз, так и сразу более 1 раза. За 5 лет работы сайта вероятность, что не сломан — 0.184, а сломан — 0.816.

    Но Вы пользуетесь сайтом месяц, и для Вас вероятность поломки 0.028. Это в 29.358974 раза меньше. Получается, когда Вы видите 1 сломанный сайт, суммарное количество посещённых Вами сломанных сайтов примерно в 29 раз больше, потому что вряд ли Вы заходили на них каждый день с самого основания сайта.
  2. Далее, Вы вряд ли можете использовать абсолютно весь функционал сайта, и если Вы не видите поломку, это не значит, что её нет. Тут зависит от размера сайта — бывают крупные сайты, в которых Вы можете не использовать и 10% функционала, а бывают мелкие, в которых если поломка есть, будет замечена с большой вероятностью. Я не буду на этом пункте сильно увеличивать коэффициент, но возьмём примерно 2–3 раза (возьмём 2 раза). Вероятность заметить поломку уменьшается в 2 раза — получается, если Вы видите 1 сломанный сайт из 500, нужно считать это как минимум за 58.717948 сайтов из 500.
  3. Следующий пункт — не факт, что Вы вообще подумаете на блокировщик, ведь некорректную работу может вызывать не только он, но и проблемы с сервером, ошибки и прочее. Особенно велика вероятность при первом открытии — Вы можете просто закрыть сайт и забыть. Многие поломки могут не выглядеть как поломки от блокировщика. Я возьму на этом пункте коэффициент 2. Получается, если Вы видите 1 сломанный сайт из 500, нужно считать это как минимум за 117.435896 сайтов из 500.
  4. Ну и последний пункт — существует не один блокировщик, а множество. Сайт может быть поломан только с одним блокировщиком из 20, и скорее всего именно у Вас он всё-равно будет работать нормально. Я возьму на этом пункте коэффициент 5. Получается, если Вы видите 1 сломанный сайт из 500, нужно считать это за 587.17948 сайтов из 500.

    Цифра вышла больше 100% — это значит, что мы либо сделали неправильное предположение в самом начале (к примеру, мы, возможно, можем видеть максимум не 1 сайт из 500, а только 1 из 2000), либо какой-то из пунктов выше не относится к Вам — ведь мы при подсчёте никак не оценивали, какова вероятность, что в каком-то конкретном пункте мы по каким-то причинам не можем его применить.


Как итог: даже если Вам попадается 1 сайт за много лет, реальное количество сломанных посещённых Вами сайтов может быть даже больше половины. Нельзя оценивать количество сломанных сайтов по суждению «раз я 20 лет не замечал этого, значит такого не бывает».

Другое короткое объяснение


Большинство пользователей ожидают от блокировщика рекламы, что он будет блокировать рекламу. А на самом деле всё не так. Вот об этом и надо предупредить пользователя. Такой обман многим неприятен.