Adblock
detector

Adsense и его блокировка

access_time2022-03-09 mode_comment0

В связи с тем, что провайдеры РФ начали блокировать основной домен запуска адсенса, у пользователей встал такой вопрос: «а как сделать так, чтобы тем кому провайдер не блокирует адсенс показывался соответственно адсенс, а остальным крутился рся и/или другая реклама?»

Решение

Чтобы решить эту задачу, достаточно выполнить простые, действия, давайте по порядку :)

Часть первая

Вставить этот код в секцию «header и footer«.

<script>
var $=jQuery,fpm_class="sense";const Timeout=s=>{let e=new AbortController;return setTimeout(()=>e.abort(),1e3*s),e};!async function(){try{await fetch(new Request("https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",{signal:Timeout(1).signal})).catch(s=>fpm_class="rtb")}catch(s){fpm_class="rtb"}finally{$(".fpm_"+fpm_class).removeClass("fpm_hidden")}}();
</script>
<style>.fpm_hidden{display:none!important}</style>

Хочу заметить, что если в плагине для блоков включен отложенный вывод, то для кода выше тоже потребуется отложенный вывод:

Adsense и его блокировка

У меня на сайте включен отложенный вывод, поэтому, как видно на скриншоте, отложенный вывод включен и для кода.

check

Смысл работы скрипта определить через js, загружается скрипт адсенса или нет.

Часть вторая

Нужно будет заменить все коды адсенса на такую конструкцию:

<div class="fpm_sense fpm_hidden">
Тут ваш код адсенса
</div>
<div class="fpm_rtb fpm_hidden">
Тут ваш код РСЯ или чего-то другого
</div>

Достаточно нехитрая конструкция :)

В случае с РСЯ конструкция будет выглядеть примерно так:

Adsense и его блокировка

Для тех, кто использует таблицы всё аналогично:

<table>
    <tbody>
        <tr>
            <td>Тут ваш код адсенса #1</td>
            <td>Тут ваш код адсенса #2</td>
        </tr>
    </tbody>
</table>

<!-- переделать в это: -->

<table>
    <tbody>
        <tr>
            <td class="fpm_sense fpm_hidden">Тут ваш код адсенса #1</td>
            <td class="fpm_rtb fpm_hidden">Тут ваш код РСЯ #1</td>
            <td class="fpm_sense fpm_hidden">Тут ваш код адсенса #2</td>
            <td class="fpm_rtb fpm_hidden">Тут ваш код РСЯ #2</td>
        </tr>
    </tbody>
</table>

Решение не тестировалось мной на реальном коде adsense и РСЯ, поэтому обязательно проверьте сами. И конечно оставляйте комментарии тут или в группе в телеграм, я буду дополнять статью по мере тестов.