Как заставить Adsense загружаться, когда готовится ie согласие дано? - PullRequest
0 голосов
/ 14 января 2020

Веб-сайт настроен на получение согласия повара ie, но когда посетитель впервые нажимает кнопку принятия файлов cookie, код AdSense не загружается, пока не обновится вся страница.

Есть ли способ загрузки рекламы после нажатия кнопки подтверждения повара ie вместо необходимости переоценивать sh всей страницы?

Использование этого повара ie согласие jquery плагин: IHaveCookies

Это часть кода, который я использую, который позволяет AdSense загружать:

    $(document).ready(function() {
    $('body').ihavecookies(options);

if ($.fn.ihavecookies.preference('ads') === true) {
    var src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
    var newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.setAttribute("async", "true");
    newScript.setAttribute("src", src);
    document.body.appendChild(newScript);
}

Приведенный выше код работает, но он не позволяет показывать объявления до тех пор, пока страница не обновится sh. Можно ли добавить атрибут «refre sh» к приведенному выше коду, чтобы объявления загружались на « ihavecookies.preference ('ads') === true) " без refre sh ?

Веб-сайт, на котором я это реализовал, можно просмотреть Здесь

fyi .... в настоящее время нет объявлений для посетителей из ЕС или Калифорнии (но это отдельная проблема, которую не нужно решать с помощью этой топи c)

1 Ответ

0 голосов
/ 13 апреля 2020

Не имеет прямого отношения к используемому вами плагину, но мой ответ, надеюсь, приведет вас в правильном направлении. Во-первых, есть две страницы справки AdSense, которые могут оказаться полезными:

Настройки персонализации рекламы в тегах объявлений издателя Google: https://support.google.com/adsense/answer/7670312

Примеры кода объявлений для персонализации рекламы настройки: https://support.google.com/adsense/answer/9042142

Я использую свое пользовательское решение согласия ie с AdSense (я использую Auto Ads с не персонализированным вариантом), и вот что я делаю:

1. Я поместил следующий код между тегами <head> на страницах, где будут отображаться объявления:

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script>(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=1;</script>

Это загружает файл AdSense JS, но приостанавливает загрузку рекламы, следовательно, не помещает файлы cookie.

2. В моем файле JS, где я контролирую отображение / скрытие баннера согласия, я помещаю следующий код для этих действий: а) пользователь дает согласие, нажимая OK; б) загрузка новой страницы, если согласие было дано ранее:

(adsbygoogle=window.adsbygoogle||[]).requestNonPersonalizedAds=1; (adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0; (adsbygoogle=window.adsbygoogle||[]).push({google_ad_client:'ca-pub-YOUR-ADSENSE-ID',enable_page_level_ads:true});

Если вы используете персонализированную рекламу, вы можно удалить первую строку.

Объявления не загружаются в других случаях (например, пользователь ничего не делает, пользователь нажимает кнопку REJECT, загрузку новой страницы, где пользователь ранее отклонил). Я ставлю повара ie, чтобы отслеживать отклонение, чтобы баннер согласия не отображался при каждой загрузке страницы.

...