Открываете сайт, а поверх статьи всплывает баннер, автоплеер с роликом перебивает звук, а кнопка «Скачать» оказывается рекламной заглушкой — именно в таких случаях пользователи ищут скрипт блокировки рекламы. Это небольшой JavaScript-код, который выполняется прямо на странице и удаляет или скрывает рекламные элементы до того, как они успеют отрисоваться.
В отличие от полноценных расширений вроде uBlock Origin или AdGuard, скрипт работает только на тех сайтах, для которых он написан, и запускается через менеджер пользовательских скриптов — например, Tampermonkey или Violentmonkey. Такой подход даёт гибкость: можно вырезать конкретный баннер, обойти антиадблок-заглушку или убрать навязчивый попап, с которым не справляются стандартные фильтры.
Как скрипт блокировки рекламы работает на странице
Любая веб-страница — это DOM-дерево: иерархия элементов, которые браузер строит из HTML-кода. Рекламные блоки — такие же элементы дерева, обычно с характерными классами вроде banner, ad-wrapper или идентификаторами рекламных сетей. Скрипт находит эти узлы по селекторам и либо удаляет их, либо применяет стиль display: none.
Второй механизм — перехват сетевых запросов. Некоторые скрипты блокируют обращения к доменам рекламных сетей ещё до загрузки баннера, что ускоряет открытие страницы и экономит трафик. Третий подход — подавление всплывающих окон через переопределение функций window.open и обработчиков кликов, которыми пользуются агрессивные рекламные сети.
Важно понимать ограничение: скрипт видит только то, что уже пришло в браузер. Если реклама встроена в видеопоток на уровне сервера (как вставки внутри роликов на некоторых стриминговых платформах), вырезать её клиентским скриптом невозможно — тут помогают только DNS-фильтрация или специализированные решения.
Чем скрипт отличается от расширения-блокировщика
Выбор между скриптом и расширением зависит от задачи. Расширение с готовыми фильтрами закрывает массовую рекламу на тысячах сайтов сразу и не требует настройки. Пользовательский скрипт — инструмент точечный: его пишут или скачивают под конкретный сайт, где обычный блокировщик бессилен или, наоборот, ломает вёрстку.
| Критерий | Скрипт (userscript) | Расширение-блокировщик |
|---|---|---|
| Область действия | Один или несколько заданных сайтов | Все сайты сразу |
| Установка | Через менеджер скриптов | Из магазина расширений |
| Гибкость настройки | Полная, можно править код | Ограничена интерфейсом |
| Обновление фильтров | Вручную или из репозитория | Автоматически |
| Риск конфликтов | Низкий, точечное действие | Возможны ложные срабатывания |
На практике эти инструменты сочетаются: расширение отсекает массовую рекламу, а скрипт добивает то, что проскочило, — например, плавающие плееры и заглушки «отключите AdBlock».
Установка скрипта через Tampermonkey
Самый распространённый способ запускать пользовательские скрипты — менеджер Tampermonkey, доступный для Chrome, Firefox, Edge и других браузеров. Порядок действий одинаков для большинства случаев.
- 🧩 Установите Tampermonkey из официального магазина расширений вашего браузера — проверяйте, что издатель совпадает с официальным разработчиком.
- 📄 Найдите нужный скрипт на профильной площадке, например Greasyfork или OpenUserJS, и откройте его страницу.
- ⬇️ Нажмите кнопку установки — Tampermonkey перехватит её и покажет код скрипта перед добавлением.
- 🔍 Просмотрите директивы
@matchи@includeв шапке скрипта: там перечислены сайты, на которых он будет работать. - ✅ Подтвердите установку и обновите целевую страницу — реклама должна исчезнуть.
Если скрипт не сработал, откройте панель Tampermonkey по иконке в панели браузера и проверьте, что скрипт активен именно на этой вкладке. Иногда помогает принудительное обновление страницы с очисткой кэша через Ctrl+F5.
☑️ Проверка перед установкой скрипта
Написание собственного скрипта: базовый пример
Простейший скрипт для скрытия рекламного блока можно написать самостоятельно, даже без глубокого знания JavaScript. Сначала определите селектор рекламного элемента: кликните по баннеру правой кнопкой, выберите «Просмотреть код» и найдите у него устойчивый класс или id.
// ==UserScript==
// @name Удаление баннера
// @match https://example.com/*
// @grant none
// ==/UserScript==
const ad = document.querySelector('.top-banner');
if (ad) ad.remove();
Для рекламы, которая подгружается динамически (после прокрутки или по таймеру), одноразового удаления недостаточно. Используйте MutationObserver — он следит за изменениями DOM и вырезает новые рекламные узлы сразу после их появления. Это стандартный приём для сайтов с «бесконечной» лентой.
Риски и безопасность пользовательских скриптов
Скрипт выполняется с правами страницы, на которой запущен. Это значит, что вредоносный код теоретически может читать содержимое страницы, перехватывать вводимые данные и отправлять их на сторонний сервер. Репутация площадки снижает риск, но не устраняет его полностью.
⚠️ Внимание: никогда не устанавливайте скрипты из случайных сообщений на форумах, из комментариев или по ссылкам из мессенджеров. Блокировщик рекламы с высокими привилегиями — удобная маскировка для скриптов, ворующих cookies и данные банковских форм.
Перед установкой откройте код и проверьте несколько признаков: есть ли обращения к незнакомым доменам через fetch или XMLHttpRequest, используется ли eval на обфусцированных строках, запрашивает ли скрипт избыточные разрешения через директиву @grant. Чистый блокировщик обычно ограничивается работой с DOM и не выходит в сеть.
- 🔎 Читайте отзывы и смотрите количество установок на странице скрипта.
- 🛡️ Предпочитайте скрипты с открытым, читаемым кодом без обфускации.
- 🔄 Регулярно удаляйте скрипты, которыми больше не пользуетесь.
Антиадблок-заглушки и борьба с ними
Многие сайты определяют наличие блокировщика и показывают заглушку с требованием отключить его, а иногда полностью скрывают контент. Механизм детекта обычно простой: сайт подгружает тестовый «приманочный» элемент с рекламным именем класса и проверяет, остался ли он видимым.
Против таких проверок существуют скрипты-антиантиадблоки, которые подменяют результат проверки или удаляют саму заглушку. Однако постоянная «гонка вооружений» означает, что скрипт, работавший вчера, может перестать действовать после обновления сайта — придётся ждать обновления скрипта или править селекторы вручную.
⚠️ Внимание: некоторые сайты ограничивают доступ к контенту на уровне сервера, а не скриптом-проверкой. В этом случае обойти ограничение клиентским скриптом нельзя, и попытки обхода могут нарушать условия использования площадки.
Почему скрипт перестал работать после обновления сайта
Сайты периодически меняют вёрстку: переименовывают классы, перестраивают структуру блоков, внедряют новые рекламные сети. Скрипт, привязанный к старым селекторам, просто перестаёт находить целевые элементы. Решение — открыть инструменты разработчика, найти актуальные селекторы рекламных блоков и обновить их в коде скрипта, либо дождаться обновления от автора.
Альтернативы: когда скрипт не нужен
Пользовательский скрипт — не единственный и не всегда оптимальный путь. Для блокировки рекламы на всех устройствах в домашней сети удобнее DNS-фильтрация: сервисы вроде AdGuard DNS или локальный Pi-hole отсекают запросы к рекламным доменам ещё на сетевом уровне, без установки чего-либо в браузер.
На смартфонах, где браузерные расширения ограничены, применяют браузеры со встроенной блокировкой или локальные VPN-приложения фильтрации. Каждый метод имеет границы: DNS-фильтрация не уберёт рекламу, отдаваемую с того же домена, что и контент, а VPN-приложения создают дополнительную нагрузку на батарею.
Частые вопросы о скриптах блокировки рекламы
Законно ли использовать скрипты блокировки рекламы?
В большинстве юрисдикций блокировка рекламы на собственном устройстве не запрещена — вы вправе контролировать, что отображает ваш браузер. Однако обход платных ограничений и технических мер защиты контента может нарушать условия использования конкретного сайта. Ознакомьтесь с правилами площадки, если сомневаетесь.
Почему скрипт работает на одном сайте, но не на другом?
Скрипт привязан к конкретным адресам через директивы @match и к конкретным селекторам элементов. На другом сайте вёрстка иная, поэтому скрипт либо вовсе не запускается, либо не находит рекламные блоки. Для каждого сайта нужен свой скрипт или универсальный блокировщик с фильтрами.
Замедляет ли скрипт загрузку страниц?
Грамотно написанный скрипт практически не влияет на скорость — операции с DOM занимают миллисекунды. Замедление возможно при неудачной реализации: например, если скрипт опрашивает страницу в коротком цикле setInterval или навешивает тяжёлые наблюдатели на всё дерево документа.
Можно ли использовать скрипты на Android?
Да, но выбор браузеров ограничен. Tampermonkey существует как отдельное приложение со встроенным браузером, а некоторые мобильные браузеры (например, Firefox для Android) поддерживают расширения. Проверяйте совместимость конкретной связки браузера и менеджера скриптов перед установкой.
Что делать, если после установки скрипта сайт перестал работать?
Отключите скрипт в панели менеджера и обновите страницу. Если функциональность восстановилась, скрипт удаляет нужные сайту элементы — например, плеер или форму комментариев с похожим классом. Сузьте селекторы в коде или добавьте сайт в исключения через директиву @exclude.