3 месяца назад
История
README.md
Yandex Promo SERP
Скрипт для браузера, который делает скрытые рекламные блоки в Яндексе заметными и позволяет их полностью отключить в один клик.
- Версия: 6.14.0
- Автор: xxrxtnxxov
- Лицензия: MIT
🌟 Основные возможности
- Яркая индикация: Подсвечивает сливающиеся с фоном метки «Реклама» и «Промо» красным фоном и белым полужирным шрифтом.
- Полная блокировка: Добавляет аккуратную кнопку в навигационную панель Яндекса для мгновенного скрытия всех рекламных карточек.
- Сохранение состояния: Запоминает ваш выбор (показывать или скрывать рекламу) между сессиями браузера.
- Высокая производительность: Использует
requestAnimationFrame(debounce) иMutationObserverдля работы без “тормозов” при динамической подгрузке результатов поиска. - Изолированный интерфейс: Кнопка управления работает через Shadow DOM, что предотвращает конфликты со стилями Яндекса.
🌐 Поддерживаемые сервисы
Скрипт активируется и работает на следующих страницах:
- Поиск:
yandex.ru/search* - Недвижимость:
yandex.ru/realty* - Финансы:
yandex.ru/finance*
⚙️ Установка (Ручной способ через Tampermonkey)
Для установки скрипта выполните следующие шаги:
- Установите расширение Tampermonkey для вашего браузера (Chrome, Firefox, Edge, Safari, Яндекс Браузер).
- Откройте панель управления Tampermonkey (кликните на иконку расширения в панели браузера и выберите «Создать новый скрипт» / «Create a new script»).
- Очистите редактор, полностью удалив стандартный шаблон кода, который появится на экране.
- Скопируйте исходный код скрипта из файла
ya-promo-serp.user.jsв этом репозитории. - Вставьте скопированный код в пустой редактор Tampermonkey.
- Сохраните скрипт, нажав сочетание клавиш
Ctrl + S(Windows/Linux) илиCmd + S(macOS), либо выберите в меню вкладкуФайл -> Сохранить. - Обновите страницу Яндекса, чтобы скрипт начал свою работу.
🛠 Как это работает (Архитектура)
Скрипт использует несколько ключевых алгоритмов для обработки DOM-дерева:
findAdLabels(): Ищет элементы на странице по известным рекламным атрибутам (aria-label,data-testid), CSS-классам (.PromoOffer,.direct-labelи др.) и глубокому анализу текстовых узлов («реклама», «промо», «яндекс директ»).findCardAncestor(): Поднимается вверх по DOM-дереву от найденной метки, чтобы точно определить границы всей родительской карточки объявления.processDOM(): Применяет стили подсветки к меткам и добавляет data-атрибуты для управления видимостью всего блока.injectUI(): Встраивает кнопку «УБРАТЬ ПРОМО» / «ПОКАЗАТЬ ПРОМО» рядом с вкладкой «Все» (или в аналогичное меню) в интерфейсе Яндекса.
❓ Возможные проблемы и их решение
- Реклама не подсвечивается: Яндекс регулярно проводит A/B тесты и меняет верстку. Откройте проблемы (Issue) и приложите URL страницы, где скрипт не сработал.
- Кнопка управления не появилась: Убедитесь, что расширение Tampermonkey включено, сам скрипт активирован в панели расширения, а вы находитесь в одном из поддерживаемых разделов Яндекса.
Описание
Скрипт, который явно помечает блоки рекламы в блоках «Поиск» и «Квартиры» в Яндексе. Есть возможность скрыть рекламные позиции.
Конвейеры
0
успешных
0
с ошибкой