【问题标题】:Adsense with AJAXAdsense 与 AJAX
【发布时间】:2012-06-05 18:40:38
【问题描述】:

我读过thisthisthis,但我认为我的情况有所不同。 我不需要每次进行 AJAX 调用时都刷新广告。

我有一个页面叫它“mypage.php”。打开页面时,我将 Adsense 广告加载到第一个 div 中。我的第二个 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>

我的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页面时会放广告。

【问题讨论】:

    标签: jquery ajax adsense ads


    【解决方案1】:

    默认的 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 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({});
        });
    }
    

    附言。我不确定谷歌是否会允许这样做,因为您稍微修改/更改了代码。但我目前正在使用这种方式。

    【讨论】:

    • 非常感谢...我正在使用您当前的解决方案,但有时它会响应“错误请求”任何想法?
    • @UrielUVD 从
    • 我不使用“异步”,如我所见,在正确显示一些广告后请求被阻止。根据之前的回答,这种方式违反了 Google 的 TOS,目前 AdSense for Ajax 已停产……太糟糕了。
    【解决方案2】:

    不幸的是,https://developers.google.com/adsense-for-ajax/ 页面显示 Google 不再接受 AdSense for AJAX 的新申请

    【讨论】:

      【解决方案3】:

      做了更多的研究.. 没有简单的解决方案可以解决您的问题。

      如果您的网站对大部分内容使用 AJAX,那么您可以考虑实施 Google Ajax-Crawling(又名 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/

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

      【讨论】:

      • Hmm 有趣的一点.. 但是我在 document.ready 之后进行 AJAX 调用,因为有时响应 AJAX 请求时它会变成 10-15 秒。 (由于服务器负载等原因)所以,为了不让访问者等待甚至从页面跳出,我将页面的草图展示给访问者,并在 AJAX 响应后填充数据部分。
      • 经过更多研究后更改了答案。
      • AdSense for AJAX 已停产。
      猜你喜欢
      • 2012-01-06
      • 2012-12-08
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 2023-03-24
      相关资源
      最近更新 更多