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-страницы.
Ответы
Ответ 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 это, так как вы немного изменили/изменили код. Но в настоящее время я использую его таким образом.
Ответ 3
К сожалению, страница https://developers.google.com/adsense-for-ajax/ говорит, что Google больше не принимает новые приложения для AdSense для AJAX