Подтвердить что ты не робот

Adsense с AJAX

Я прочитал этот, этот и этот, но я думаю, что моя ситуация другая. Мне не нужно обновлять объявления каждый раз, когда я делаю вызов AJAX.

У меня есть страница, назовите ее "mypage.php". Я загружаю рекламу Adsense в первый div, когда страница открывается. Мой второй div пуст.

После полной загрузки DOM я создаю сообщение AJAX. И поместите результат в div "lower_content". Разве это нарушает Adsense TOS?

<body>
  <div id="adSense_content>
    <script> adsense script </script>
  </div>

  <div id="lower_content">
    empty in start
  </div>
</body>

Мой файл js:

$(document).ready(function() {
  $.ajax({
    type: "POST",
    url: "/getit",
    success: function(data) {
            $("#lower_content").html(data);
        }
  });
}

Примечание. Почему я не загружаю второй контент при открытии страницы? Потому что ответ AJAX отвечает за 6-7 секунд. Когда загрузка сервера высока, ответ приходит даже через 10-15 секунд. Чтобы не заставлять посетителя ждать с пустой страницей или даже отскакивать от страницы. Я показываю макет посетителю в начале и загружаю контент, когда пришел ответ на вызов AJAX.

edit: Размещение объявления на пустой странице снова означает Adsense TOS. Но страница, о которой я упоминал, является пустой при загрузке данных таблицы. После загрузки полной таблицы с помощью AJAX страница загружается содержимым. Но объявление добавляется при загрузке html-страницы.

4b9b3361

Ответ 1

Сделал еще несколько исследований.. нет легкого решения вашей проблемы.

Если ваш сайт использует AJAX для большей части контента, вы можете ознакомиться с реализацией спецификаций Google Ajax-Crawling (aka Hash-Bang). Это гарантирует, что бот Google и бонус Adsense сканируют ваш контент AJAX. Это поможет как релевантным объявлениям, так и результатам поиска. https://developers.google.com/webmasters/ajax-crawling/docs/specification

Или вам нужно подождать, пока программа Adsense для Ajax начнется снова. https://developers.google.com/adsense-for-ajax/

Обновление: Измененный ответ после дополнительных исследований.

Ответ 2

По умолчанию код Google AdSense выглядит примерно так:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- banner-name -->
<ins class="adsbygoogle"
     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-12345678901234950"
     data-ad-slot="987654321"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

Выделите код на 3 части, чтобы он работал с загруженным содержимым ajax.

Включите google script где-нибудь на вашей странице (например, в вашей <head> ) только один раз.

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

Поместите код google в свой (ajax) контент везде, где вы хотите, чтобы баннер (ы)

<ins class="adsbygoogle"
     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-12345678901234950"
     data-ad-slot="987654321"></ins>

Запустите эту функцию после изменения вашего контента с помощью ajax. (не забудьте также запустить это на загрузке страницы, чтобы показывать рекламу, когда страницы не загружаются через ajax.)

function displayGoogleAds(){
    $('ins').each(function(){
        (adsbygoogle = window.adsbygoogle || []).push({});
    });
}

Ps. Я не уверен, разрешит ли Google это, так как вы немного изменили/изменили код. Но в настоящее время я использую его таким образом.