Сайт Вадима Аниканова

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

устроена, работает, блокировка рекламы

Как работает блокировщик рекламы? От чего зависит качество блокировки? Почему иногда он пропускает то, что должен заблокировать? Чем разные программы отличаются друг от друга?

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


Главное: адблокинг в двух словах

Самый простой и короткий ответ на вопрос будет звучать так: блокировщик не дает браузеру или приложению загружать нежелательные (рекламные) элементы их содержимого.

Чуть подробнее: блокировщик препятствует коммуникации между отображающей веб-страницу программой, например, браузером, и серверами, с которых загружаются рекламные элементы (баннеры, объявления, видео, поп-апы и так далее). Или другие элементы, которые он призван блокировать (например, счетчики статистики или кнопки соцсетей). Самые первые блокировщики имели в основе на другой принцип: они скрывали от глаз пользователя рекламные элементы, которые уже были загружены на страницу. Сейчас этот способ используется в некоторых программах как вспомогательный. А еще можно вспомнить браузерные расширения, которые скрывают с сайтов и соцсетей тексты на определенные тематики, ориентируясь по ключевому слову.

устроена, работает, блокировка рекламы

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


Фильтры и их создатели

Продукт этого ручного труда — фильтры, то есть, списки правил определения рекламы и отделения её от полезного контента. Автоматизировать распознавание рекламы сложно, помимо прочего, еще и потому, что даже у людей нет единого мнения насчет того, что является рекламой, а что нет. Например, вы заходите в интернет-магазин и видите в его шапке баннер "Акция! Купи сегодня два товара и получи третий бесплатно!" Магазин рекламирует самого себя и собственную акцию, есть ли смысл блокировать такое промо? Хочет ли аудитория видеть такие баннеры, или хочет скрыть их?

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

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

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

Самый популярный набор фильтров называется EasyList. Он не принадлежит какому-то конкретному блокировщику, но используется в большинстве популярных продуктов (в том числе в Adblock Plus, uBlock Origin, AdGuard).

В рамках EasyList и других фильтр-проектов существуют отдельные фильтры для разных языковых сегментов интернета и для разных типов элементов, которые пользователи хотят блокировать: "классическая" реклама (баннеры, поп-апы и т.д.), следящие элементы (счетчики, рекламные трекеры), кнопки социальных сетей на сайтах, контент, который не хочется показывать детям, и так далее. Таким образом, человек, который хочет убрать баннеры, но не имеет ничего против кнопок соцсетей, может не подключать все фильтры сразу.

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

устроена, работает, блокировка рекламы

Динамика обновления фильтров EasyList

устроена, работает, блокировка рекламы

Динамика обновления фильтров Adguard


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


Конвейер фильтрации: от пользователя до разработчика и обратно

Именно от того, насколько оперативно обновляются фильтров, зависит качество блокировщика. Заинтересованные в показе рекламы компании постоянно работают над обходом блокировки. Они меняют все уже попавшие в фильтры идентификаторы рекламных элементов или шифруют запросы страниц к серверам рекламы, чтобы блокировщик их не остановил. Эта деятельность требует столь же постоянных контрмер.

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

устроена, работает, блокировка рекламы

фрагмент правил из фильтра Adguard для русскоязычных сайтов. Посмотреть все фильтры Adguard можно в Базе знаний.

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

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

Известен случай, когда фильтр RuAdList портил отображение поисковых результатов Яндекса. Забавно, что реклама в "сломанной" выдаче продолжала быть видна. А фильтр этот входил в “комплектацию” известнейших блокировщиков AdBlock и AdBlock Plus в версиях для Рунета.

устроена, работает, блокировка рекламы

некорректно отображающаяся контекстная реклама Яндекса


И, конечно, излишнее количество фильтров, особенно неидеально совместимых друг с другом, будет “тормозить” интернет, а то и всю работу устройства.

Чтобы защитить своих пользователей от случайных и намеренных сбоев в работе фильтрации, Adguard размещает все файлы сторонних фильтров на своих серверах и раздает их оттуда.

Но фильтры — это только сырьё. Ошибочным будет впечатление, что разработчики блокировщиков паразитируют на труде их создателей.

Чем занимаются разработчики блокировщиков и чем отличаются их продукты

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

Подобные решения разработчики принимают не только на основе анализа статистики срабатывания фильтров, как в AdGuard, но и на основе собственной экспертизы, понимания устройства интернета и тенденций его развития.

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

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

  • распоряжение ресурсами устройства — оперативной памятью, дисковым пространством, зарядом аккумулятора, взаимодействием с другими программами;
  • взаимодействие с браузером, корректное отображение сайтов и приложений с убранной рекламой, чтобы на ее месте не было "дырок", не портился дизайн и верстка; отсутствие конфликтов с антивирусом
  • понятность и удобство интерфейса, сочетание гибкости настроек с неперегруженностью функциями
  • учёт особенностей разных платформ, на которых предстоит работать приложению (типов операционной системы и устройства)

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

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

Блокировщики мобильные, системные, браузерные: в чем разница?

На разных платформах блокировщики работают с учетом особенностей этих платформ и предоставляемых ими возможностей.


Браузерные расширения

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

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

устроена, работает, блокировка рекламы

расширения-блокировщики в магазине браузера Chrome


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

Например, Google Chrome и популярный в России Яндекс.Браузер принадлежат компаниям, для которых реклама в интернете является основным источником дохода. Они не препятствуют существованию расширений-блокировщиков, но влияют на их работу.

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

У свежей версии Content Blocking API десктопной и мобильной версий браузера Safari есть ограничение в 50000 правил для фильтрации. Это довольно жёсткое ограничение, и пока кроме AdGuard никто из блокировщиков не смог сделать программу на базе нового API. Все традиционно популярные блокировщики используют старое, у которого много функциональных ограничений, оно медленнее работает, не позволяет контролировать некоторые типы запросов, отправляемых страницами. AdGuard вписывается в ограничение по правилам, отбирая их на основе статистики использования и оптимизируя размер фильтров.

В браузерах Chrome и Firefox расширения не имеют возможности контролировать запросы к рекламным сервисам, осуществляемые по протоколу WebRTC. То есть, часть запросов страниц на загрузку рекламы выполняется, и реклама блокируется не вся. До недавнего времени аналогичная проблема была с запросами по протоколу WebSocket. Известный порносайт Pornhub обходил блокировщики рекламы именно открывая альтернативный websocket-канал для показа баннеров, если видел у посетителя адблокер.

Когда Google запустил экспериментальный протокол QUIC для работы собственных сервисов в браузерах на основе Google Chromium, пользователи начали сообщать о появлении рекламы: блокировщики не могут контролировать запросы через этот протокол. Проблема существует до сих пор.

Расширения-блокировщики для мобильных браузеров — это отдельная история, но не очень захватывающая. Chrome разработки таких расширений не позволяет. Firefox позволяет. Про Яндекс.Браузер мы уже говорили, API блокировки контента предоставляет еще браузер Samsung Internet. Adblock Plus запустила собственное приложение-браузер с блокировкой рекламы, но он сделан на основе Firefox.


Мобильные приложения

Блокировка рекламы в приложениях возможна только на сетевом уровне. Это значит, что блокировщику нужно создать собственное приложение, которое будет фильтром для интернет-трафика, идущего ко всем остальным приложениям. Оно удаляет рекламу из этого потока данных, и уже "очищенная" информация отображается в приложениях.

Без ложной скромности можно назвать Adguard лучшим (и единственным крупным) продуктом в нише блокировщиков рекламы на Android-устройствах. Сравнимо по известности приложение AdAway, но оно использует принципиально иную техническую стратегию блокировки.

устроена, работает, блокировка рекламы

AdAway редактирует файл hosts на устройстве. В этом файле записаны соответствия между url-адресами ресурсов и именами серверов, на которых эти ресурсы находятся. Если отредактировать соответствия между доменами и серверами для рекламных сервисов, запросы к этим доменам не смогут выполняться, и реклама не будет показываться.

устроена, работает, блокировка рекламы

Пример файла hosts на android-смартфоне


Этот способ хорош простотой реализации, но имеет существенные недостатки, о них мы подробно писали в блоге. Вкратце — он не позволяет заблокировать всё, что надо, и блокирует что не надо. Например, если вы не хотите видеть объявления рекламной сети Facebook (а к этой сети подключены сотни приложений), вы не сможете пользоваться и самим Facebook.

Adguard же пропускает через себя и фильтрует весь сетевой трафик. Еще у него есть режим DNS-блокировщика, в котором он работает аналогично AdAway. При всех недостатках это сверхэкономный режим работы, не задействующий ресурсы устройства.

Программы для ПК и ноутбуков

Выше мы писали об ограничениях, которым подвержены браузерные расширения для блокировки рекламы. Если установить блокировщик как компьютерную программу, эти ограничения будут неактуальны. Программа осуществляет системную блокировку (system-wide ad blocking), фильтруя весь идущий на компьютер трафик. Результат аналогичен мобильному блокировщику, хотя механизм реализации немного иной. Такая программа, конечно, гораздо сложнее в разработке, чем браузерные расширения.


DNS-фильтрация

DNS — это "система доменных имён", domain names system. Поэтому антирекламная фильтрация DNS работает аналогично редактированию файла hosts, описанному выше, с теми же недостатками и ограничениями. Adguard использует этот подход еще и в приложении под iOS, так как эта система дает меньше возможностей работы с трафиком. Подробнее с возможностями Adguard DNS можно познакомиться в Базе знаний.

Зато этот способ уникален своей кросс-платформенностью. Он обеспечит антирекламу для всех устройств, подключенных к интернету, в том числе к “интернету вещей”. Для Smart-TV, холодильников и любых других устройств “умного дома” можно организовать не только антирекламу, но и фильтрацию исходящего трафика, то есть, ограничить маркетинговую слежку.

Об особенностях фильтрации рекламы именно Adguard вы можете почитать в базе знаний.

Источник

Тэги: как, них, от, отличаются, часто, вопросы, выбрать, рекламы, подобные, друг, друга, работает, пользователей

Copyright © 2013. All Rights Reserved.

Yandex-metrika