Как стать автором
Обновить

Эффективное использование встроенного в Opera блокировщика рекламы

Время на прочтение5 мин
Количество просмотров30K
Доброго времени суток, уважаемые Хабровчане!

Многие уже давно это знают, а многие — еще нет. Речь идет о том, как в браузере Opera, что называется — from-the-box, грамотно настроить блокировку рекламы, а также отключить «следящие» за пользователем скрипты google ad-sense и yandex direct.


Disclaimer: так как на хабре и «google ad-sense», и «yandex direct» присутствуют, а данная статья учит как отключить их — выкладывать ее тут, в некотором роде, аморально. Поэтому, чтобы исправить эту этическую оплошность, призываю сделать следующее — вызвать на хабра-страничке в Опере контекстное меню, зайти в «настройки для сайта» и снять галку с пункта «блокировать нежелательное содержимое». Ведь на любимом сайте нет ничего нежелательного, согласны? :)

Суть:
Итак, в опере есть встроенная «баннерорезалка», а точнее — блокировщик нежелательного содержимого. На базовом уровне он работает так — пользователь мышкой указывает неугодный ему баннер, после чего этот баннер блокируется. Если на страничке присутствуют несколько баннеров, грузящихся с одного сайта, Опера может сама определить общий источник и заблокирует его целиком. В этом режиме этот инструмент довольно убог, часто блокирует один единственный графический файл, и после перезагрузки страницы баннер остается, показывая уже другое изображение.

Чтобы увеличить эффективность работы ad-блокера, пользователь должен нажать «блокировать содержимое», после чего появившуюся вверху кнопку «настройки». Таким образом он получает доступ к списку правил. Главная возможность, которую дает встроенный фильтр — использовать маски. Например, строчка xz.ru/ads* заблокирует все элементы с адресов, начинающихся с указанной строки. Это позволяет, взяв за основу один заблокированный баннер, на его основе создать правило, отсекающее целиком сервер с рекламой.

Собственно, цель написания данной статьи — указать на способ, который позволит выжать из встроенного адблокера все 100% эффективности. Дело в том, что нередко URL, откуда сайт грузит рекламу, создается в результате работы «рекламных» js-скриптов, и прямым текстом его нельзя найти даже в исходном коде страницы. Но чтобы добавить правило для фильтра, пользователь должен как-то определить этот адрес! Думаю, тут многие и останавливаются, как остановился в свое время я. Но однажды положение дел захотелось изменить — при виде горы левых адресов, которые Опера показывает в статусной строке во время их загрузки. Это напрягало в первую очередь потому, что при использовании GPRS-интернета львиная доля времени уходит на создание каждого TCP-соединения, а при подгрузке рекламы такие соединения открываются подчас десятками!

Беглый просмотр исходного кода страницы ничего не дал. Тогда я сказал себе «Надо!» и (только не смейтесь, уважаемые знатоки! Я в этом полный профан!) поставил Opera Dragonfly. Методом тыка, подчас малоэффективного, я научился находить левые источники и блокировать их по маске. Но вам, уважаемые хабрапользователи, такие извраты ни к чему.

На боковой панели Оперы есть кнопочка с изображением «+». Нажимаете ее, и в появившемся списке выбираете пункт «Сведения». Теперь у вас на боковой панели есть вкладка, на которой отображается подробная информация об открытой странице, в т.ч. обо всех загруженных на нее объектах и их адресах, рассортированых по типу. На основании этих данных, даже при беглом осмотре, легко составить правила для блокировки. Это и есть мой главный военный секрет.

Подробности:
В контекстном меню пункт «Блокировать содержимое...» относится только к тому сайту, на котором оно вызвано. Это значит, что в списке будут отображаться только и только те правила, по которым именно на данном сайте что-то отфильтровано.

Чтобы посмотреть и отредактировать полный список правил, надо зайти в меню «Инструменты» — «Дополнительно» — «Блокируемое содержимое...».

Иногда (а иногда — и очень часто) правила почему-то не добавляются. То есть, при ручном редактировании и последующем нажатии кнопки «сохранить», изменения не сохраняются. В этом случае несложно вручную отредактировать файл с правилами. Его расположение можно узнать, зайдя в «about:config» и набрав в поиске urlfilter. У меня файл находится в «C:\Documents and Settings\Admin\Application Data\Opera\Opera 10.50 Beta\urlfilter.ini». Структура у него очень проста.

Для примера, вот что у меня находится ниже строчки [exclude]:
*google-analytics*
*pagead*
*googlesyndication*
*googleads*
*an.yandex*
*rs.mail.ru*
*banner*


Это, конечно, не все, и приведено просто для примера. Этот список блокирует как скрипты, собирающие информацию для таргетированной рекламы от яндекса и гугля, так и саму таргетированную рекламу. Помимо этого, блокируется большинство рекламы с домена mail.ru, а так же объекты, у которых в URL входит слово banner.

Помимо символа «звездочки», можно использовать знак «?» для задания маски — он означает любой один символ. То есть, *r?.mail.ru* отфильтрует как rs.mail.ru/img/blabla.gif, так и r1.mail.ru/zxzxz/xz.jpg.

Послесловие:
Q: Почему именно этот способ блокировать рекламу? Почему не ad-muncher'ы и не ad-block'и?
A: Потому что он:
  • доступен «из коробки», не требует скачивания/установки доп. Софта, просто Оперы — достаточно.
  • прост и понятен для большинства грамотных пользователей
  • обладает максимальной производительностью (фильтр вкомпилен в Оперу)

Q: Какие еще способы посоветует автор, чтобы с минимальными трудозатратами улучшить работу в интернете через Opera?
A: Помимо указанного выше, автор использует один-единственный скрипт: block-external-scripts.js. Он блокирует загрузку скриптов с других доменов (основной источник js-рекламы), обрабатывает самые популярные исключения, и позволяет легко «догрузить» ошибочно заблокированные скрипты — достаточно передвинуть мышь в правый нижний угол открытой страницы и нажать на выехавшую надпись «Заблокировано N скриптов». Это действие отключает block-external-scripts.js для сайта, на котором произведено. Взять можно тут: ruzanow.ru/userjs/block-external-scripts.js
Для установки необходимо создать папку под него, например, в каталоге Оперы, скопировать туда сам скрипт, после чего указать папку в «Инструменты» — «Настройки» — «Дополнительно» — «Содержимое» — «Настроить javascript» — «Папка пользовательских файлов JavaScript» и перезагрузить браузер.

update: при необходимости заставить открывать какой-то сайт, который блокируется более широкой маской в urlfilter.ini, необходимо добавить правило для этого сайта в секции [include], удалив оттуда «звездочку», и выставить prioritize excludelist=0. Файл urlfilter.ini должен иметь примерно такой вид:
[prefs]
prioritize excludelist=0

[include]
*example.com*


update: после получения первой партии комментариев решил уточнить.

В задачи статьи не входило:
  • рассказать про все возможные способы блокировки рекламы
  • рассказать про блокировку всей рекламы
  • рассказать о вырезании рекламы с сохранением «красивой» разметки страницы

В задачи статьи входило:
  • рассказать про указанный способ тем, кто еще не в курсе (да-да, такие есть, я сам был таким около месяца назад, хотя пользовался Оперой более 3х лет)
  • показать, как выжать максимум из имеющихся встроенных возможностей Оперы
  • дать максимальный контроль над процессом (в противовес «все уже сделали за нас, скачай и пользуйся»)

Чистого и безопасного серфинга Вам!
Теги:
Хабы:
Всего голосов 123: ↑96 и ↓27+69
Комментарии97

Публикации

Истории

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань