Блокировщик рекламы Яндекса

Блокирует надоедливую рекламу Яндекса, включая рекламу в поисковике

// ==UserScript==
// @name         Блокировщик рекламы Яндекса
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Блокирует надоедливую рекламу Яндекса, включая рекламу в поисковике
// @author       ezTripper (Fanfizi)
// @match        *://yandex.ru/*
// @match        *://*.yandex.ru/*
// @match        *://yandex.com/*
// @match        *://*.yandex.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Функция для блокировки рекламы
    function blockYandexAds() {
        // Блокируем рекламные баннеры с классом AdvRsyaCrossPage
        const ads = document.querySelectorAll('.AdvRsyaCrossPage, .Root[data-state*="rsya_guarantee"], .AdvRsya-Slot, .DirectInlineContainer[id^="rsya-"]');
        ads.forEach(ad => {
            ad.style.display = 'none';
            console.log('Рекламный баннер Яндекса заблокирован');
        });

        // Также можно удалить родительский элемент, если реклама не исчезает
        const adContainers = document.querySelectorAll('.JustifierRowLayout-Incut, [id^="advRsyaReact_"]');
        adContainers.forEach(container => {
            if (container.querySelector('.AdvRsyaCrossPage, .AdvRsya-Slot, .DirectInlineContainer[id^="rsya-"]')) {
                container.remove();
                console.log('Контейнер с рекламой Яндекса удален');
            }
        });

        // Блокируем конкретный блок рекламы в поисковике
        const searchAds = document.querySelectorAll('#advRsyaReact_rsya-guarantee-PSDp0k8');
        searchAds.forEach(ad => {
            ad.remove();
            console.log('Реклама в поисковике Яндекса заблокирована');
        });
    }

    // Запускаем функцию сразу после загрузки страницы
    blockYandexAds();

    // Также запускаем при изменениях в DOM (на случай динамической загрузки рекламы)
    const observer = new MutationObserver(blockYandexAds);
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
})();