刷新其中包含Google广告的Div

时间:2009-01-12 13:27:29

标签: javascript ajax html refresh google-adwords

我有<div>持有Google广告。我的网站主要是AJAX,不需要浏览器刷新。这意味着我的广告也不会刷新,这不是理想的,用户整天都在盯着一个广告。

所以我想要一种刷新页面上特定<div>的方法。我发现了许多解决方案,但它们没有用。例如,使用JQuery的html函数:

$("#ads").html("google ad script here");

这设法刷新了整个页面,不知道如何。我也可以向包含Google广告的HTML页面发出AJAX请求,但我猜它会产生与上述尝试相同的效果。

我不想使用iFrame。

我还有其他选择吗?我的豌豆大脑再也想不到了。 :)

编辑:

这是允许的,因为我只会在用户点击链接时启动刷新。

一个主要的例子是雅虎邮箱 - 他们的新AJAX邮箱使用相同的方法,当用户点击链接然后显示新广告。

7 个答案:

答案 0 :(得分:49)

正如其他两个答案所述,不允许自动刷新您的AdSense广告。我了解您只是打算刷新广告以响应用户操作,但仍然是不允许的,即使它应该是!

请记住,您要更新广告的原因是您可以展示新广告。显示广告称为“印象”。使用代码刷新广告时,您会自动生成广告展示次数。

AdSense Program Policies州(强调我的):

  

点击次数和展示次数无效

     

Google广告点击必须源于用户的真正兴趣。 严禁以人为方式在您的Google广告上产生点击次数或展示次数的任何方法。这些被禁止的方法包括但不限于重复的手动点击或展示,使用漫游器,自动点击和展示生成工具,第三可以产生点击次数或展示次数的派对服务,例如付费点击,付费冲浪,自动冲浪,点击交换程序或任何欺骗性软件。

刷新广告违反了针对生成展示次数的规则。话虽如此,我认为任何理智的人都会同意在AJAX应用中回应广告以响应用户行为(例如,响应点击)并不违反精神< / em>的规则。

例如,想象一下重写整个应用程序以停止使用AJAX。对于您的用户而言,这显然是一种更糟糕的体验(速度较慢,每次点击时页面都会闪烁,页面无法在后台动态更新),但从技术上讲,这并不违反AdSense计划政策。

显然,Google 意味着禁止每五秒钟自动更换一次广告(制作广告的“幻灯片”)。谷歌还意味着禁止通过增加访问量来使您的网站对广告客户更具吸引力。我确信他们没有打算来阻止你设计一个高性能的AJAX网站......但不幸的是,有时规则会产生意想不到的后果。

当然,正如您最初指出的那样,如果您将广告嵌入iframe并修改其位置,您仍然可以刷新广告。 (Here's how to use iframes in an AJAX application to refresh AdSense。)

您在初始问题中拒绝了iframe,可能是因为您知道使用iframe会违反Google的政策......但如果您坚持违反规则,您可能会一直打破它们! ; - )

最终,我认为您会发现以这种方式产生展示次数并不值得冒险:您只需“刷新”广告,然后才会发现Google只是向您展示与以前完全相同的广告。

答案 1 :(得分:25)

新的Google DFP广告管理系统“代码”允许专门为“AJAX广告提供广告”

  

刷新

     

pubService.refresh(槽)   使用新广告刷新页面上指定的插槽数组。

     

参数:

     

数组插槽 - 要刷新的可选插槽阵列。如果未提供,则会刷新所有广告位。   例如:

     

var slot1 = googletag.defineUnit(“/ 1234567 / leaderboard”,[728,90],“div-1”)。addService(googletag.pubads());

     

var slot2 = googletag.defineUnit(“/ 1234567 / skyscraper”,[160,600],“div-2”)。addService(googletag.pubads());

     

//刷新调用为每个广告位提取新广告

     

googletag.pubads()。refresh([slot1,slot2]);   http://support.google.com/dfp_sb/bin/answer.py?hl=en&answer=2372721&expand=pubservice_details#refresh

答案 2 :(得分:1)

我知道我迟到了一年半,但是......广告的问题可能是他们正在使用document.write(广告服务器因此而臭名昭着,但我不知道AdSense是否使用它。)

如果是这种情况,我有一个可以提供帮助的图书馆:writeCapture.js。例如:

$('#ads').writeCapture().html('<script src="whatever-your-adsense-code-is"> </script>');

那是使用jQuery,但也有一个独立版本。

至于是否违反TOS ...... Gmail动态更改广告,因此不会那么糟糕。只要内容也在变化,我认为没关系。

答案 3 :(得分:0)

您可以使用以下代码刷新Google广告位。将其放在要刷新广告的JS函数中。它应该刷新页面上的所有广告。

if ( undefined !== googletag ) {
  googletag.pubads().refresh();
}

Google Ad Manager Help - Reload ads without a page refresh

答案 4 :(得分:-1)

只需在您通过ajax加载的网页中加入广告即可。在每页的基础上通过ajax从文件加载广告没有任何问题。

如果我加载了包含一些内容和广告的Read.inc 点击页面上的内容即可转到Make.inc,其内容为广告。

那有什么不对?这是有机的。将广告作为内容的一部分加载一次。

与点击链接相同。

我还没有尝试过这个,但它看起来似乎合乎逻辑。

答案 5 :(得分:-2)

不允许(根据AdSense条款)在网页生命周期内尝试重新加载广告。此外,它几乎不可能(感谢平台架构)。

答案 6 :(得分:-3)

不允许。但我认为你可以使用iframe。我看到了很好的教程。 我尝试通过ajax来回复我对Adsense TOS的更改