Как работает AdOff: технология скрытой блокировки рекламы
Большинство блокировщиков рекламы используют единственный грубый инструмент: список URL для блокировки. Это работает до тех пор, пока сайт не поймёт, что его используют — и тогда начинается гонка вооружений. AdOff был создан иначе, с нуля, используя три независимых уровня защиты, которые работают совместно и обеспечивают по-настоящему незаметный, безупречный браузинг.
На этой странице подробно описана работа каждого уровня — с достаточным количеством технических деталей для любопытных, но написана так, что разобраться сможет каждый. Независимо от того, являетесь ли вы разработчиком, желающим понять архитектуру, или обычным пользователем, которому интересно, почему AdOff продолжает работать там, где другие блокировщики сдаются, — вы попали по адресу.
Уровень 1 — Сетевая блокировка
Активен на всех тарифахПервый и наиболее эффективный уровень работает на сетевом уровне, останавливая HTTP-запросы, связанные с рекламой, ещё до того, как они будут загружены браузером. Данные не загружаются, скрипты не выполняются, пиксели отслеживания не загружаются. Ресурс просто никогда не запрашивается.
🔧 Chrome API: declarativeNetRequest
AdOff использует API Chrome declarativeNetRequest — тот же современный API, который применяется
в корпоративных инструментах безопасности. В отличие от устаревшего API webRequest,
declarativeNetRequest обрабатывается непосредственно движком браузера без каких-либо накладных расходов на JavaScript.
Правила компилируются один раз при установке и сопоставляются практически без нагрузки на процессор для каждого
последующего запроса.
107+ правил точечной блокировки
AdOff поставляется с 107 тщательно отобранными сетевыми правилами, направленными против инфраструктуры доставки рекламы, используемой наиболее распространёнными рекламными сетями. Вместо того чтобы поддерживать огромный список отдельных доменов, требующий постоянного обновления, правила AdOff нацелены на структурные паттерны доставки рекламы:
- Домены рекламных серверов — хосты, обслуживающие баннерную рекламу, видеоролики и спонсорский контент
- Конечные точки отслеживания и аналитики — пиксели, маяки и сборщики событий, профилирующие ваше поведение
- Инфраструктура ретаргетинга — межсайтовые трекеры, преследующие вас с сайта на сайт
- URL-адреса программируемых рекламных бирж — конечные точки аукционов рекламных показов в реальном времени
- Пути CDN, используемые исключительно для рекламы — паттерны доставки контента, характерные для рекламных пакетов
Почему блокировка на сетевом уровне важна
Когда реклама блокируется на сетевом уровне, страница загружается быстрее. Речь идёт не просто об удалении видимого баннера — это означает, что браузеру никогда не придётся открывать TCP-соединения с рекламными серверами, выполнять DNS-запросы для доменов отслеживания и запускать сторонний JavaScript, на котором основана работа рекламы.
Исследования новостных сайтов с большим количеством рекламы постоянно показывают, что блокировка на сетевом уровне сокращает время загрузки страниц на 30–60%. Каждый заблокированный рекламный запрос — это соединение, которое не нужно открывать, скрипт, который не нужно разбирать, и пакет данных, который не потребляет ваш трафик.
⚡ Преимущество по производительности
Поскольку правила declarativeNetRequest обрабатываются движком браузера на C++ — а не JavaScript — AdOff добавляет нулевую нагрузку на процессор при обычном браузинге. Сопоставление происходит до того, как сетевой стек даже начинает запрос. JavaScript на каждой странице не выполняется, а расширение практически не использует память в простое.
Уровень 2 — Косметическая фильтрация
Активен на всех тарифахНе вся реклама поступает через сетевые запросы, которые можно заблокировать заранее. Часть рекламы отображается непосредственно в HTML страницы, загружается с того же домена, что и контент, или внедряется через JavaScript первой стороны. Для таких случаев AdOff использует косметическую фильтрацию — технику скрытия рекламных элементов из DOM с помощью CSS, не нарушая окружающую вёрстку.
CSS-инъекция в изолированном окружении
Контентный скрипт AdOff работает в ISOLATED world Chrome — изолированной среде выполнения, полностью отделённой от JavaScript самой страницы. Это означает, что расширение может наблюдать и изменять DOM, оставаясь незаметным для скриптов страницы, у которых нет доступа к области видимости изолированного окружения.
Косметический фильтр внедряет CSS-таблицу стилей, применяющую правила display: none и
visibility: hidden к известным селекторам рекламных контейнеров. Эти селекторы тщательно
поддерживаются для охвата стандартных имён классов, идентификаторов и структурных паттернов рекламных слотов
на тысячах сайтов.
🎨 Без смещения вёрстки — без пустых мест
Распространённая проблема примитивных блокировщиков рекламы заключается в том, что удаление элемента из DOM
вызывает прыжки или перекомпоновку окружающего контента. CSS-правила AdOff используют display: none
с приоритетом !important и применяются до первой отрисовки браузера там, где это возможно,
предотвращая любые видимые смещения вёрстки. Место, которое заняла бы реклама, просто не появляется.
Сканирование DOM и динамическая инъекция
Современные сайты крайне динамичны — они загружают контент после разбора исходного HTML, внедряют рекламные слоты через JavaScript и непрерывно обновляют DOM. Контентный скрипт AdOff отслеживает DOM на предмет вновь вставленных элементов, соответствующих рекламным паттернам, и немедленно применяет правила скрытия — как правило, в пределах одного кадра анимации. Вы не увидите мигания рекламы перед её исчезновением.
Нейтрализация видеорекламы (Pro)
Большинство видеоплееров на стриминговых платформах используют стандартный рекламный SDK для управления преролами, мидроллами и построллами. AdOff заменяет этот SDK нейтральным стабом, который немедленно сообщает плееру «нет рекламы для показа» — видео запускается напрямую без каких-либо прерываний.
Это работает через два взаимодополняющих механизма:
- Перенаправление на уровне сети — запросы на загрузку рекламного SDK перехватываются и перенаправляются к локальному файлу стаба, входящему в состав расширения
- Инъекция на уровне страницы — стаб внедряется до выполнения каких-либо скриптов сайта, поэтому даже плееры, которые включают рекламный SDK внутри себя, первыми обнаруживают нейтральную версию
Стаб реализует полную поверхность API оригинального SDK, но никогда не отдаёт рекламу. Когда плеер
вызывает start(), стаб немедленно отправляет сигнал «реклама завершена» — плеер возобновляет
видео так, как если бы рекламная пауза завершилась естественным образом. Это универсально: работает на
любом сайте в мире, использующем данный SDK, без необходимости вести ручной список сайтов.
На крупных видеоплатформах специальный обработчик ускоряет воспроизведение рекламы в 16 раз и автоматически нажимает кнопку пропуска с человекоподобной задержкой.
Уровень 3 — Скрытое антиобнаружение (Pro)
Pro и пробный периодИменно здесь AdOff наиболее значительно отличается от обычных блокировщиков рекламы. Многие сайты теперь запускают активные скрипты защиты от блокировщиков — код, единственная цель которого состоит в том, чтобы обнаружить, используете ли вы блокировщик, и если да — прервать ваш опыт стеной, предупреждением или ухудшенным контентом.
Скрытый уровень AdOff, работающий в MAIN world Chrome, действует на том же уровне, что и JavaScript самой страницы. Он точечно нейтрализует обнаружение антиблокировщика до того, как оно успевает запуститься. Вот как работает каждая техника:
🪤 Подмена приманки
Скрипты защиты от блокировщиков обычно работают, внедряя небольшой элемент-«приманку» — узел DOM, стилизованный под рекламный контейнер — и затем проверяя, равны ли его размеры нулю или был ли он удалён блокировщиком. Модуль подмены приманки AdOff сохраняет эти элементы в DOM, сообщает правдоподобные размеры при запросе их геометрии и гарантирует, что скрипт обнаружения получит сигнал «всё в порядке», который ожидает.
📦 Подмена переменных
Рекламные сети внедряют глобальные JavaScript-переменные и свойства в объект window, сигнализируя
о своём присутствии. Скрипты защиты от блокировщиков проверяют наличие этих переменных, чтобы убедиться, что
реклама загружена. Модуль подмены переменных AdOff восстанавливает ожидаемое глобальное пространство имён —
создавая лёгкие объекты-заглушки, проходящие проверки наличия — чтобы страница считала, что рекламные скрипты
успешно выполнились, хотя никакой реальной рекламы доставлено не было.
🔌 Перехват Fetch / XHR
Некоторые системы обнаружения вообще не используют DOM — они делают прямой вызов fetch() или
XMLHttpRequest к известной рекламной конечной точке и измеряют время ответа или код статуса.
Если запрос заблокирован, он мгновенно завершается ошибкой, выдавая присутствие блокировщика. AdOff
оборачивает как window.fetch, так и XMLHttpRequest прокси-обработчиками, которые
обнаруживают запросы к известным рекламным доменам и возвращают синтетические ответы, имитирующие успешную
загрузку рекламы.
🛡️ Нейтрализатор скриптов
Известные скрипты защиты от блокировщиков определяются по их URL-паттернам и сигнатурам содержимого. Когда браузер пытается загрузить один из таких скриптов, скрытый уровень перехватывает выполнение и заменяет логику скрипта инертной заглушкой, удовлетворяющей любые обратные вызовы завершения без выполнения какой-либо работы по обнаружению. Код страницы получает разрешённое промисс или пустой обратный вызов, и путь обнаружения никогда не достигается.
👁️ MutationObserver — Защита в реальном времени
Сайты могут внедрять новые скрипты обнаружения в любое время после начальной загрузки страницы — запускаемые
действиями пользователя, глубиной прокрутки или таймерами. MutationObserver AdOff непрерывно наблюдает
за добавлением новых элементов <script> в документ. Когда один из них соответствует
известной сигнатуре антиблокировщика, скрытый уровень нейтрализует его до выполнения первой инструкции.
Это гарантирует защиту даже от отложенных или лениво загружаемых систем обнаружения.
Как три уровня работают вместе
Каждый уровень независим — если один обойдён или неприменим, остальные продолжают работать. Но их настоящая сила — в том, как они дополняют друг друга:
- Сетевая блокировка устраняет большинство рекламных пакетов до их появления в браузере, сокращая поверхность атаки для скриптов обнаружения, которые могут обнаружить только то, что было заблокировано.
- Косметическая фильтрация обрабатывает рекламу первой стороны и любые остатки, проскользнувшие через сетевой уровень, сохраняя визуальный опыт чистым и не оставляя следов в DOM.
- Скрытое антиобнаружение оборачивает два других уровня в плащ невидимости, убеждая страницу в том, что никакого блокировщика нет — и антирекламный пейволл никогда не срабатывает.
Результат — опыт браузинга, который не просто свободен от рекламы, а такой, при котором сайты никогда не узнают, что вы используете блокировщик рекламы. Никаких предупреждений, никаких пейволлов, никаких ухудшений контента, никаких оверлеев «пожалуйста, отключите блокировщик рекламы».
Конфиденциальность как принцип
AdOff обрабатывает всё локально в вашем браузере. Нет удалённых серверов, анализирующих вашу историю браузинга, никакая телеметрия не отправляется домой, и ни один список посещённых URL никогда не покидает ваше устройство. Расширение запрашивает только разрешения, которые ему действительно нужны:
- declarativeNetRequest — для применения правил сетевой блокировки
- storage — для локального сохранения ваших настроек и счётчика рекламы
- tabs — для отображения счётчика значка для каждого сайта
- scripting — для внедрения косметических фильтров и скрытых скриптов
Никакого сквозного разрешения «читать все ваши данные на всех сайтах». Никакого SDK аналитики внутри расширения. То, что происходит в вашем браузере, остаётся в вашем браузере.
Начало работы за 3 шага
-
Установите AdOff из Chrome Web Store или скачайте
.zipнапрямую с adoff.app/install. Chrome запросит подтверждение разрешений — ознакомьтесь и примите. - Закрепите расширение, нажав значок пазла на панели инструментов Chrome, найдя AdOff в выпадающем списке и кликнув значок булавки. Щит AdOff постоянно отображается на панели инструментов.
- Просматривайте интернет как обычно. Все три уровня автоматически активируются на каждой посещаемой странице. Нажмите на значок AdOff в любое время, чтобы узнать, сколько рекламы и запросов заблокировано, или приостановить защиту на конкретном сайте.
Для стандартного использования никакая настройка не требуется. Опытные пользователи могут изучить страницу настроек для управления белым списком, настройки поведения блокировки для каждого сайта или активации скрытых функций Pro в течение бесплатного 15-дневного пробного периода.
Готовы почувствовать разницу?
Попробуйте все три уровня защиты бесплатно в течение 15 дней. Банковская карта не требуется.
Установить AdOff бесплатно →