Меню
RU

Как работает блокировка рекламы: о разработке фильтров, и чем ей грозит Manifest v3

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

И если бы нам нужно было описать принцип работы блокировщиков в трёх словах, мы бы сказали "интерпретирование правил фильтрации".

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

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

Вы возможно слышали о предстоящих изменениях в браузере Chrome, также известных как Manifest v3. У нас есть опасения, что эти изменения могут фактически уничтожить экосистему фильтров. На самом деле, эта статья адресована в первую очередь именно разработчикам Google Chrome. Мы верим, что текущие проблемы в реализации появились не из-за их желания навредить экосистеме, а просто от непонимания, как она устроена. Поэтому мы решили, что нам необходимо подробно описать, как сейчас построен процесс, и что не так с Manifest v3.

И, возможно, остальным читателям тоже будет интересно узнать, как это работает.

Как работают блокировщики

Как мы упомянули выше, блокировщики, по сути, интерпретируют различные правила фильтрации. Сначала блокировщик скачивает фильтры: это могут быть любые фильтры, скачанные из разных мест. А дальше блокировщик начнёт сверять контент страниц со всеми имеющимися правилами фильтрации.

Так работает блокировка

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

Фильтрация на сетевом уровне

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

"Косметическая" фильтрация

Каждая веб-страница имеет DOM ("document object model" — объектную модель документа), по сути документ HTML, который содержит структуру страницы и все её элементы. Рекламные баннеры на странице также являются элементами и отображаются в DOM. Блокировщики рекламы могут удалять части DOM, а правила фильтрации помогают им понять, какие части являются рекламными и должны быть удалены, а какие трогать не стоит.

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

Фильтры

Существуют сотни, если не тысячи фильтров: фильтры AdGuard, EasyList и другие. Чтобы они всегда были актуальны и ничего не ломали на сайтах, специалисты и энтузиасты ежедневно трудятся над их обновлениями.

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

  • EasyList — базовый для многих фильтр, который блокирует исключительно рекламу;
  • EasyPrivacy — ещё один популярный фильтр, который блокирует онлайн-трекеры (т.е. системы слежения);
  • Fanboy's SocialList — фильтр, который блокирует виджеты и кнопки соцсетей, все эти кнопки "мне нравится", "поделиться" и прочие;
  • AdGuard Annoyances — фильтр AdGuard, который блокирует раздражители, например, уведомления о "куках", онлайн-помощники и т.д;
  • Мириады региональных фильтров: EasyList Germany, RUAdlist, AdGuard Turkish filter и многие, многие другие.

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

И вот мы подошли к первой проблеме: в текущей реализации Google Chrome подразумевает, что будет постоянно включён один-единственный предустановленный фильтр (так называемые "статические" правила). Его можно будет изменить, используя т.н. "динамические" правила, но ограничение на их количество преступно маленькое: всего 5 000. Многие фильтры, приведённые выше, просто не влезают в это ограничение. Что уж говорить о случае, когда вы хотите включить сразу несколько.

Как устроена разработка фильтров

Как мы уже говорили, фильтры должны постоянно обновляться. Для этого есть две основные причины:

  1. Блокировка новых элементов (рекламы, трекеров и т.д.);
  2. Исправление того, что сломано (с таким большим количеством правил в какой-то момент что-то обязательно сломается).

Конечно, разработчики фильтров не могут сами следить за миллионами сайтов. Их работа сильно зависит от отклика пользователей. Просто представьте:

  • Репозиторий AdGuard Filters сейчас содержит более 40 000 закрытых задач. Каждую неделю появляется около 500 новых задач и примерно столько же выполняется.
  • EasyList и их разные региональные подписки получают фидбэк в основном на форуме, где насчитываются десятки тысяч постов.

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

Фильтры постоянно обновляются

Что приводит нас к следующей проблеме: Динамические правила в Chrome будут отличаться по приоритету от статических, что может вносить путаницу и мешать разработчикам фильтров.

Как люди узнают о новых фильтрах?

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

  • У пользователей есть возможность попробовать любой новый фильтр;
  • Разработчик может напрямую (без посредников) поделиться своим творением.

И снова возвращаемся к той же проблеме: Текущий лимит на количество динамических правил слишком мал для этой цели. Это медленно, но верно приведёт к кризису в сообществе разработки фильтров.

Что нас ждёт в будущем?

Если ничего не предпринять и все запланированные изменения Google Chrome будут претворены в реальность, нас всех ждут крайне неприятные последствия:

  1. Такими изменениями экосистеме фильтров будет нанесён огромный вред.
  2. Вместо многообразия фильтров и большого, активного сообщества мы получим буквально несколько разработчиков блокировщиков, которые в меру своих сил поддерживают несколько собственных списков фильтрации.
  3. Пользователи вместо гибкого подхода с возможностью настроить блокировку под свои предпочтения получат "монолитные" списки которые толком ничем не отличаются друг от друга.
  4. Сообщество переключится на другие средства для блокировки и будет работать над ними.

Мы в своё время много и жёстко высказывались о блокировке контента в Safari, и заслуженно. Но там хотя бы путём всевозможных "костылей" и прочих хитростей мы смогли сгладить эту ситуацию и прийти к удовлетворительному решению. В случае же с вариантом, предлагаемым Google, мы вообще не видим выхода из ситуации.

Что же делать?

На самом деле, все эти проблемы можно решить, причём не слишком отклоняясь от общего направления, которое Google задал для Chrome. Что для этого требуется по нашему мнению:

  • Ввести понятие "списка фильтрации" для статических правил;
  • Значительно увеличить лимит на количество динамических правил;
  • Разобраться с приоритетами правил (у динамических он должен быть таким же, как у статических).

Честно говоря, нам, как разработчикам, было бы гораздо удобнее работать исключительно с динамическими правилами. Разделение на статические и динамические лишь создаёт проблемы и вносит ненужную путаницу.

Но в то же время, мы готовы к диалогу с разработчиками Google Chrome, чтобы найти компромисс, который удовлетворит всех, и прежде всего — пользователей Chrome.

PS:
Если вы считаете, что быть разработчиком фильтров — это ваше, то мы всегда рады любой помощи! Заглянув на эту страницу, вы узнаете, как можно помочь нам в разработке фильтров AdGuard, и что можно получить взамен за свои усилия

Понравился пост?
25 670 25670 отзывов
Отлично!

AdGuard для Windows

AdGuard для Windows — это не просто «ещё один блокировщик». Это многоцелевой инструмент, который блокирует рекламу и доступ к опасным сайтам, ускоряет загрузку страниц и защищает детей от взрослого контента.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
25 670 25670 отзывов
Отлично!

AdGuard для Mac

В отличие от других блокировщиков, AdGuard разработан с учётом специфики операционной системы macOS. Он не только блокирует рекламу в Safari и других браузерах, но и защищает вас от слежки, фишинга и мошенничества в сети.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
25 670 25670 отзывов
Отлично!

AdGuard для Android

AdGuard для Android — это идеальное решение для Android-устройств. В отличие от других блокировщиков, AdGuard не требует root-доступа и позволяет управлять трафиком любых приложений на вашем устройстве.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
25 670 25670 отзывов
Отлично!

AdGuard для iOS

Лучший блокировщик рекламы для iPhone и iPad. AdGuard устраняет рекламу в Safari, защищает ваши данные и ускоряет загрузку страниц. AdGuard для iOS использует новейшую технологию блокировки, которая обеспечивает непревзойденное качество фильтрации и позволяет применять множество различных фильтров одновременно
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
25 670 25670 отзывов
Отлично!

AdGuard Content Blocker

AdGuard Content Blocker устраняет все объявления в мобильных браузерах, которые поддерживают технологию блокировки контента — к примеру, Samsung Internet и Яндекс.Браузер. Он обладает меньшим количеством функций, чем AdGuard для Android, но при этом бесплатен, прост в установке и по-прежнему обеспечивает высокое качество блокировки рекламы.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
25 670 25670 отзывов
Отлично!

Браузерное расширение AdGuard

AdGuard — самое быстрое и легкое браузерное расширение для блокировки всех типов рекламы! Выбирайте AdGuard для быстрого и безопасного серфинга без рекламы.
25 670 25670 отзывов
Отлично!

Помощник AdGuard

Дополнительное браузерное расширение для десктопных приложений AdGuard. Даёт доступ к таким функциям в браузере, как блокировка отдельных элементов, занесение сайта в белый список или отправление отчёта.
25 670 25670 отзывов
Отлично!

AdGuard DNS

AdGuard DNS – это альтернативный способ заблокировать рекламу, защитить личные данные и оградить детей от взрослых материалов. Он прост в настройке и использовании и обеспечивает необходимый минимум защиты от рекламы, трекинга и фишинга, независимо от платформы.
25 670 25670 отзывов
Отлично!

AdGuard Home

AdGuard Home — мощный сетевой инструмент против рекламы и трекинга. С усилением роли интернета вещей становится все более и более важным управлять всей вашей сетью. После настройки AdGuard Home будет охватывать ВСЕ ваши домашние устройства и для этого вам не понадобится программное обеспечение на стороне клиента.
25 670 25670 отзывов
Отлично!

AdGuard Pro для iOS

AdGuard Pro предлагает гораздо больше чем просто блокировку рекламы в Safari, которая есть в обычной версии. С помощью специальных настроек DNS вы сможете блокировать больше рекламы, защитить ваши личные данные и оградить детей от взрослого контента.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
25 670 25670 отзывов
Отлично!

AdGuard для Safari

Расширения, блокирующие рекламу в Safari, переживают не лучшие времена с тех пор, как компания Apple вынудила всех использовать новый SDK. Познакомьтесь с нашим легко настраиваемым и молниеносным приложением!
25 670 25670 отзывов
Отлично!

AdGuard Temp Mail

Ваш временный почтовый ящик, чтобы на основную почту не приходил спам
25 670 25670 отзывов
Отлично!

AdGuard для Android TV

AdGuard для Android TV — единственное приложение, которое блокирует рекламу, защищает ваши данные и действует как фаервол для Smart TV. Получайте предупреждения о веб-угрозах, используйте безопасный DNS, а ваш трафик будет зашифрован. Смотрите любимые сериалы безопасно и без рекламы!
Загрузка AdGuard началась Стрелка указывает на файл: нажмите на него, и установка начнётся Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!
AdGuard есть и в мобильном варианте