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

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

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

комментарий

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

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

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

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

Фильтры

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

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

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

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

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

Фильтры могут гораздо больше, чем просто блокировать рекламу. There are filters that block tracking, social media widgets, and annoyances, such as cookie notices. Разные пользователи могут выбирать разные комбинации фильтров, чтобы подстроить фильтрацию под свои нужды. Существуют специальные сайты, такие как filterlists.com, где собраны огромные базы всевозможных фильтров.

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

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

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

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

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

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

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

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

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

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

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

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

информация

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

Types of request handling in AdGuard

AdGuard handles requests according to filters, user rules and settings enabled by the user. As a result, a request can be blocked, modified, allowed or, when nothing is done to it, just processed.

Detailed information on how each request of yours has been handled by AdGuard can be found in the Filtering log (AdGuard for Windows, AdGuard for Mac, AdGuard Browser Extension) or Recent activity (AdGuard for iOS, AdGuard for Android).

Regarding AdGuard filters, you can also check our filter policy, which describes in detail what and why each of our filters blocks.

Examples of blocked requests

AdGuard DNS filter blocks requests to ad domains, such as ad.doubleclick.net.

AdGuard Tracking Protection filter blocks tracking requests, such as youtube.com/youtubei/log_event?.

Examples of allowed requests

AdGuard Base filter allows non-ad requests, such as www.google.com/complete/search?q=.

Filter unblocking search ads and self-promotion allows requests to search ad-related domains, such as www.google.com/aclk?.

Requests to websites that are added by the user to Allowlist are allowed.

Examples of modified requests

Tracking protection feature with protection level set to High enables AdGuard URL Tracking filter which modifies requests by removing tracking parameters from them:

https://www.rentio.jp/products/ax-n1b?click_from=top_newitemshttps://www.rentio.jp/products/ax-n1b

https://www.baseballchannel.jp/npb/183688/?ref=isehttps://www.baseballchannel.jp/npb/183688/

https://www.gog.com/game/spec_ops_the_line?pp=2863d7ae605104eeef364e3f164d3404e20f680c&gad_source=1https://www.gog.com/game/spec_ops_the_line

Please note that modified events you see in the Filtering log or Recent activity refer not only to the cases when a request is modified, but also when:

  • something on the page is changed (usually by cosmetic rules)
  • the response is modified