Перейти к основному содержанию

Как работает блокировка рекламы

В семействе блокировщиков AdGuard есть много продуктов для разных платформ, и каждый из них обладает своими уникальными особенностями. Но объединяет их всех то, что они блокируют рекламу и трекеры. Эта статья описывает, как устроена блокировка рекламы изнутри.

комментарий

В этой статье мы не касаемся DNS-фильтрации. Это альтернативный способ блокировки рекламы со своими преимуществами и недостатками. Переходите по этой ссылке, чтобы узнать больше о DNS-фильтрации.

Общие принципы

В основе любого блокировщика лежат фильтры. Фильтры — это буквально списки правил, написанные в соответствии с определённым синтаксисом. Блокировщики понимают этот сложный синтаксис. Они интерпретируют правила фильтрации и на их основе совершают те или иные действия с веб-трафиком: блокируют элементы, изменяют вид веб-страниц и т. д.

Как работает блокировка рекламы

Фильтры

Чтобы понимать, как работает блокировка рекламы, вначале надо разобраться в основополагающих принципах работы фильтров.

Правила фильтрации, из которых состоят фильтры, не создаются сами собой. Они являются результатом кропотливой работы разработчиков фильтров, как профессионалов, так и волонтёров. Разработчики используют консоль браузеров и другие инструменты (такие, как «‎Журнал фильтрации»‎), чтобы определять, какое правило нужно для блокировки конкретной рекламы или трекера. Это очень упрощённое описание процесса: в особо трудных случаях могут потребоваться сразу несколько правил, множество итераций и использование сложного синтаксиса, чтобы заблокировать элемент.

Даже когда правило попадает в фильтр, оно не остаётся там навсегда. Реклама и способ её подачи могут поменяться, и правила фильтрации должны меняться вслед за ними. Иногда правила устаревают, появляется новая реклама или требуется новое правило фильтрации, чтобы заблокировать старую рекламу. Фильтры часто поддерживаются одним человеком, но даже команда не может постоянно контролировать весь интернет. Вот почему многие блокировщики рекламы имеют инструменты, помогающий пользователям легко сообщать о любых проблемах с фильтрами, с которыми они сталкиваются.

Схема обновления фильтра

Пользователи AdGuard могут отправлять такие отчёты при помощи специальной веб-утилиты. Благодаря жалобам пользователей разработчики могут сфокусироваться на исправлении и дополнении фильтров, а не на поиске пропущенной рекламы по всей сети.

Фильтры могут гораздо больше, чем просто блокировать рекламу. Существуют фильтры для блокировки трекеров, виджетов социальных сетей, раздражающих элементов вроде уведомлений о куки и т. д. Разные пользователи могут выбирать разные комбинации фильтров, чтобы подстроить фильтрацию под свои нужды. Существуют специальные сайты, такие как filterlists.com, где собраны огромные базы всевозможных фильтров.

Мы разрабатываем и поддерживаем свой собственный набор фильтров, которые можно использовать как внутри AdGuard, так и с другими блокировщиками.

Типы правил фильтрации

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

Базовые правила фильтрации

Чтобы вы увидели рекламу на веб-странице или в приложении, её сначала необходимо загрузить с сервера. Для этого браузер или приложение должны отправить веб-запрос. Самый простой способ предотвратить загрузку рекламы — заблокировать этот запрос, так что он никогда не попадёт на сервер, а значит, и реклама не загрузится.

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

Косметические правила

Каждая веб-страница имеет так называемый DOM (Document Object Model или «‎объектная модель документа»), по сути — HTML-документ, содержащий структуру страницы и всех её элементов. Реклама на странице тоже является элементом и, следовательно, отображается в DOM. Блокировщики могут убирать часть DOM, а правила фильтрации помогают им понять, какие именно куски DOM соответствуют рекламе и требуют удаления, а какие не стоит трогать.

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

Правила фильтрации HTML

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

Это весьма сложный тип правил, и он требует от блокировщика наличия определённых прав, поэтому поддерживается не на всех платформах. HTML-правила работают в приложениях AdGuard для Windows, Mac и Android, а также в браузерном расширении AdGuard для Firefox.

информация

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