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)

Для установки скрипта выполните следующие шаги:

  1. Установите расширение Tampermonkey для вашего браузера (Chrome, Firefox, Edge, Safari, Яндекс Браузер).
  2. Откройте панель управления Tampermonkey (кликните на иконку расширения в панели браузера и выберите «Создать новый скрипт» / «Create a new script»).
  3. Очистите редактор, полностью удалив стандартный шаблон кода, который появится на экране.
  4. Скопируйте исходный код скрипта из файла ya-promo-serp.user.js в этом репозитории.
  5. Вставьте скопированный код в пустой редактор Tampermonkey.
  6. Сохраните скрипт, нажав сочетание клавиш Ctrl + S (Windows/Linux) или Cmd + S (macOS), либо выберите в меню вкладку Файл -> Сохранить.
  7. Обновите страницу Яндекса, чтобы скрипт начал свою работу.

🛠 Как это работает (Архитектура)

Скрипт использует несколько ключевых алгоритмов для обработки DOM-дерева:

  • findAdLabels(): Ищет элементы на странице по известным рекламным атрибутам (aria-label, data-testid), CSS-классам (.PromoOffer, .direct-label и др.) и глубокому анализу текстовых узлов («реклама», «промо», «яндекс директ»).
  • findCardAncestor(): Поднимается вверх по DOM-дереву от найденной метки, чтобы точно определить границы всей родительской карточки объявления.
  • processDOM(): Применяет стили подсветки к меткам и добавляет data-атрибуты для управления видимостью всего блока.
  • injectUI(): Встраивает кнопку «УБРАТЬ ПРОМО» / «ПОКАЗАТЬ ПРОМО» рядом с вкладкой «Все» (или в аналогичное меню) в интерфейсе Яндекса.

❓ Возможные проблемы и их решение

  • Реклама не подсвечивается: Яндекс регулярно проводит A/B тесты и меняет верстку. Откройте проблемы (Issue) и приложите URL страницы, где скрипт не сработал.
  • Кнопка управления не появилась: Убедитесь, что расширение Tampermonkey включено, сам скрипт активирован в панели расширения, а вы находитесь в одном из поддерживаемых разделов Яндекса.

Описание
Скрипт, который явно помечает блоки рекламы в блоках «Поиск» и «Квартиры» в Яндексе. Есть возможность скрыть рекламные позиции.
Конвейеры
0 успешных
0 с ошибкой
Разработчики