Пользовательский скрипт блокировки рекламы, установленный через Tampermonkey, перестаёт работать чаще всего по одной из трёх причин: сайт обновил вёрстку и селекторы в скрипте устарели, расширение-менеджер отключил выполнение userscript на конкретном домене, либо сам скрипт конфликтует с полноценным блокировщиком вроде uBlock Origin. Проверка начинается с панели Tampermonkey: откройте иконку расширения на проблемной странице и убедитесь, что скрипт вообще активирован для этого домена — в списке активных скриптов он должен отображаться с зелёным индикатором.
Под запросом «tampermonkey adblock script» обычно скрываются две разные задачи. Первая — найти готовый userscript, который вырезает рекламные блоки, всплывающие окна и антиадблок-заглушки на конкретных сайтах. Вторая — написать собственный скрипт, который удаляет рекламные элементы через JavaScript и CSS. В этой статье разберём оба сценария: где брать проверенные скрипты, как их установить, как написать простой блокировщик самостоятельно и почему userscript не заменяет полноценный блокировщик на уровне сети.
Как работает блокировка рекламы через Tampermonkey
Принципиальное отличие userscript от расширения-блокировщика — уровень перехвата. Расширения вроде uBlock Origin или AdGuard блокируют сетевые запросы к рекламным серверам ещё до загрузки контента. Скрипт Tampermonkey работает иначе: он выполняется после загрузки страницы и манипулирует уже готовым DOM-деревом — скрывает или удаляет рекламные элементы, отключает попапы, обходит проверки на наличие адблока.
Из этого следуют и ограничения. Рекламный баннер, удалённый скриптом, уже успел загрузиться и потратить трафик. Видеореклама в плеерах, встроенная в поток на уровне сервера, скриптом обычно не вырезается. Зато userscript незаменим там, где сетевой блокировщик бессилен: для обхода окон «отключите AdBlock», для удаления спонсорских блоков, свёрстанных как обычный контент, для автоматического закрытия всплывающих подписок.
Каждый скрипт начинается с блока метаданных ==UserScript==, где директивы @match или @include определяют, на каких сайтах он сработает. Если домен не прописан в этих директивах, Tampermonkey просто не запустит код — это первая вещь, которую стоит проверять при «неработающем» скрипте.
Где искать готовые adblock-скрипты
Основные площадки для поиска пользовательских скриптов — Greasyfork и OpenUserJS. На Greasyfork действует модерация и запрет на вредоносный код, поэтому начинать поиск лучше именно там. Введите в поиске название сайта и слово «adblock» или «anti-adblock» — для популярных видеохостингов и новостных порталов такие скрипты существуют почти всегда.
Перед установкой оцените скрипт по нескольким признакам. Это займёт минуту, но отсеет большинство проблемных вариантов:
- 📅 Дата обновления — скрипт, не обновлявшийся больше года, с высокой вероятностью не работает на текущей вёрстке сайта;
- 👥 Число установок и оценки — массовые скрипты с отзывами надёжнее безымянных;
- 🔍 Читаемость кода — откройте вкладку с исходником: обфусцированный код без объяснений — повод отказаться;
- 🌐 Директивы @match — скрипт, запрашивающий доступ ко всем сайтам (
:///*), хотя рекламу блокирует на одном, выглядит подозрительно; - 💬 Раздел отзывов — жалобы на кражу данных или редиректы видны именно там.
⚠️ Внимание: userscript выполняется с полным доступом к содержимому страницы, включая вводимые пароли и данные карт. Устанавливайте скрипты только из источников с открытым исходным кодом и отзывами — вредоносный скрипт способен перехватывать всё, что вы делаете на сайте.
Установка и настройка скрипта в Tampermonkey
Установка занимает несколько кликов. На странице скрипта на Greasyfork нажмите кнопку установки — Tampermonkey перехватит запрос и покажет экран с исходным кодом и метаданными. Здесь можно ещё раз посмотреть директивы @match и список разрешений @grant, после чего подтвердить установку. Скрипт активируется сразу, перезапуск браузера не требуется.
Дальше — проверка на целевом сайте. Откройте страницу с рекламой и кликните по иконке Tampermonkey в панели браузера: в выпадающем меню видно, какие скрипты сработали на текущей странице. Если скрипт в списке есть, но реклама осталась, откройте консоль разработчика клавишей F12 и посмотрите вкладку Console — ошибки выполнения скрипта выводятся туда.
☑️ Проверка работы adblock-скрипта
Полезная настройка — порядок выполнения. В панели управления Tampermonkey (Dashboard) скрипты можно перетаскивать, меняя очередь запуска. Если два скрипта модифицируют одни и те же элементы страницы, порядок иногда решает, какой из них сработает корректно.
Написание собственного скрипта для удаления рекламы
Если готового решения нет, простой скрипт пишется за десять минут. В меню Tampermonkey выберите «Создать новый скрипт» — откроется редактор с шаблоном. Минимальный каркас для удаления рекламного блока по CSS-селектору выглядит так:
// ==UserScript==
// @name Hide Ad Block
// @match ://example.com/
// @grant none
// @run-at document-idle
// ==/UserScript==
const adNode = document.querySelector('.ad-banner');
if (adNode) adNode.remove();
Чтобы узнать селектор рекламного элемента, кликните по баннеру правой кнопкой мыши и выберите «Просмотреть код» — в инспекторе подсветится нужный узел с его классами. Копируйте наиболее устойчивый класс или атрибут: слишком специфичные селекторы вроде div > div:nth-child(3) ломаются при любом изменении вёрстки.
Сложнее с рекламой, которая подгружается динамически — после отрисовки страницы. Здесь помогает MutationObserver: он отслеживает изменения DOM и удаляет рекламные узлы в момент их появления. Именно так работает большинство «живучих» adblock-скриптов для соцсетей и лент новостей.
Пример скрипта с MutationObserver
const observer = new MutationObserver(() => { document.querySelectorAll('.ad-slot, [data-ad]').forEach(el => el.remove()); }); observer.observe(document.body, { childList: true, subtree: true }); — такой код следит за всеми изменениями страницы и вырезает рекламные блоки при каждом их появлении.
Сравнение: userscript против расширения-блокировщика
Выбор инструмента зависит от задачи. Таблица ниже показывает, где каждый подход сильнее:
| Критерий | Tampermonkey-скрипт | Расширение (uBlock Origin) |
|---|---|---|
| Блокировка сетевых запросов | Нет, работает с готовым DOM | Да, до загрузки рекламы |
| Экономия трафика | Не даёт | Даёт |
| Обход anti-adblock окон | Да, основное применение | Частично, через фильтры |
| Точечная настройка под сайт | Полная, любой код | Ограничена синтаксисом фильтров |
| Риск при ошибке | Зависит от кода скрипта | Минимальный |
Практический вывод: оптимальная схема — это комбинация сетевого блокировщика для рекламы и точечных userscript для anti-adblock заглушек и спонсорских блоков. Скрипт не заменяет блокировщик, а закрывает те случаи, где фильтры бессильны.
⚠️ Внимание: одновременная работа нескольких скриптов, удаляющих элементы на одном сайте, может сломать вёрстку — пропадёт часть полезного контента. Если страница отображается некорректно, временно отключите скрипты по одному, чтобы найти виновника.
Типичные проблемы и их решение
Самая частая жалоба — «скрипт работал и перестал». Причина почти всегда в обновлении сайта: изменились классы элементов, и селекторы в коде больше ничего не находят. Лечение — обновить скрипт до свежей версии через панель Tampermonkey (кнопка проверки обновлений есть в настройках каждого скрипта) или поправить селекторы вручную, если это ваш собственный код.
Вторая ситуация — сайт детектирует блокировку и показывает заглушку. Здесь есть несколько подходов, и универсального среди них нет:
- 🛡️ Anti-adblock killer скрипты — ищите актуальные версии на Greasyfork, старые проекты вроде AAK давно заброшены;
- 🎛️ Отключение JavaScript на домене — радикально, ломает интерактивность, но работает на простых сайтах;
- 🧹 Удаление элемента заглушки — часто достаточно убрать overlay и снять блокировку прокрутки у
body; - 🔄 Режим чтения браузера — встроенная альтернатива без всяких скриптов.
⚠️ Внимание: обход anti-adblock защиты может нарушать условия использования сайта. Для ресурсов, которыми пользуетесь регулярно, взвесьте вариант с подпиской или внесением домена в белый список блокировщика — это поддерживает авторов контента.
Третья проблема — конфликт Tampermonkey с режимом работы браузера. В браузерах на базе Chromium после перехода на Manifest V3 для выполнения пользовательских скриптов может требоваться включение режима разработчика на странице управления расширениями. Если все скрипты разом перестали запускаться после обновления браузера, проверьте этот параметр в первую очередь — точные требования зависят от версии браузера и расширения.
Безопасность при использовании userscript
Каждый установленный скрипт — это код, который выполняется от вашего имени на страницах браузера. Минимальный набор мер предосторожности: ограничивайте область действия скриптов конкретными доменами через @match, периодически просматривайте список установленных скриптов и удаляйте неиспользуемые, не устанавливайте скрипты из случайных сообщений на форумах без проверки кода.
Особое внимание — к директивам @grant и @connect. Если скрипт для «блокировки рекламы» запрашивает GM_xmlhttpRequest с доступом ко всех доменам, он теоретически может отправлять данные со страниц на сторонний сервер. Легитимному adblock-скрипту такие разрешения обычно не нужны.
Часто задаваемые вопросы
Может ли Tampermonkey-скрипт полностью заменить AdBlock или uBlock Origin?
Нет. Скрипт работает с уже загруженной страницей и не блокирует сетевые запросы, поэтому реклама всё равно скачивается и расходует трафик. Оптимально использовать скрипты как дополнение к сетевому блокировщику — для anti-adblock заглушек и спонсорских блоков.
Почему скрипт не запускается на нужном сайте?
Проверьте три вещи: включён ли скрипт в панели Tampermonkey, совпадает ли адрес сайта с директивами @match в заголовке скрипта и нет ли ошибок в консоли разработчика (F12). Также после обновления браузера на базе Chromium может потребоваться включить режим разработчика для расширений.
Безопасно ли устанавливать скрипты с Greasyfork?
На площадке действует модерация, но полной гарантии она не даёт. Перед установкой откройте исходный код скрипта: он должен быть читаемым, без обфускации, с минимальными разрешениями и узким списком доменов в @match. Отзывы и дата последнего обновления тоже помогают оценить надёжность.
Скрипт перестал скрывать рекламу после обновления сайта. Что делать?
Сначала проверьте наличие новой версии скрипта через функцию обновления в Tampermonkey. Если обновления нет и скрипт ваш собственный — откройте инспектор кода (F12), найдите актуальные классы рекламных элементов и поправьте селекторы в коде.
Работают ли adblock-скрипты в мобильных браузерах?
Да, но не везде. Tampermonkey имеет версию для Android и работает в браузерах с поддержкой расширений — например, в Firefox для Android или специализированных обозревателях. В мобильном Chrome расширения не поддерживаются, поэтому и скрипты там запустить нельзя.