与AJAX的Adsense

tra*_*nte 13 ajax jquery ads adsense

我读到了这个,这个这个,但我认为我的情况有所不同.每次进行AJAX调用时,我都不需要刷新广告.

我有一个页面叫它"mypage.php".当页面打开时,我将Adsense广告加载到第一个div中.我的第二个空是空的.

在DOM完全加载后,我做了一个AJAX帖子.并将结果放入"lower_content"div中.这会破坏Adsense TOS吗?

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

  <div id="lower_content">
    empty in start
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

我的js文件:

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

注意:为什么我在页面打开时不加载第二个内容?因为AJAX在6-7秒内回复.当服务器负载很高时,甚至会在10-15秒内响应.不要让访问者等待空白页面,甚至从页面反弹.我在开始时向访客显示布局,并在AJAX呼叫的响应到来时加载内容.

编辑:将广告投放到空白页面是Adsense TOS.但是我加载表格数据时提到的页面是空的.使用AJAX加载完整表后,页面将加载内容.但广告是在加载html页面时放置的.

Man*_*aye 5

做了一些更多的研究......没有简单的解决方案来解决你的问题.

如果您的网站使用AJAX获取大部分内容,那么您可以查看实施Google Ajax-Crawling(aka Hash-Bang)规范.这将确保Google bot和Adsense bot抓取您的AJAX内容.这有助于相关广告和搜索结果. https://developers.google.com/webmasters/ajax-crawling/docs/specification

或者你必须等到Adsense for Ajax程序重新开始.https://developers.google.com/adsense-for-ajax/

更新:经过更多研究后更改了答案.


Lud*_*ord 5

默认的谷歌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>
Run Code Online (Sandbox Code Playgroud)

将代码分为3个部分,使其适用于加载ajax的内容.

在页面中的某个位置(例如,在<head>中)包含Google脚本一次.

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
Run Code Online (Sandbox Code Playgroud)

将Google代码放在您的(ajax)内容中,无论您想要横幅广告

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

通过ajax更改内容后触发此功能.(不要忘记在页面加载时触发此操作,以便在未通过ajax加载页面时显示广告.)

function displayGoogleAds(){
    $('ins').each(function(){
        (adsbygoogle = window.adsbygoogle || []).push({});
    });
}
Run Code Online (Sandbox Code Playgroud)

PS.我不确定谷歌是否允许这样做,因为你修改/更改了一些代码.但我现在正以这种方式使用它.