40

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

所以我想要一种方法来刷新页面上的特定<div>内容。我找到了很多解决方案,但没有奏效。例如,使用 JQuery 的 html 函数:

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

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

我不想使用 iFrame。

我还有其他选择吗?我的豌豆脑袋想不出来了。:)

编辑:

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

一个典型的例子是雅虎邮箱——他们的新 AJAX 邮箱使用相同的方法,当用户点击一个链接时,就会显示一个新广告。

4

7 回答 7

49

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

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

AdSense 计划政策状态(强调我的):

无效点击次数和展示次数

Google 广告的点击必须来自真正的用户兴趣。严禁任何人为地在您的 Google 广告上产生点击或展示的方法。这些被禁止的方法包括但不限于重复手动点击或展示、使用机器人、自动点击和展示生成工具、产生点击或展示的第三方服务,例如付费点击、付费浏览、自动浏览、和点击交换程序,或任何欺骗性软件。

刷新广告违反了禁止产生印象的规则。话虽如此,我认为任何理性的人都会同意,在 AJAX 应用程序中刷新广告以响应用户行为(例如响应点击)并不违反规则精神

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

显然,谷歌的意思是禁止每五秒自动更换一次广告(创建一个广告“幻灯片”)。谷歌还意味着禁止让您的网站看起来比您实际拥有的访问次数更多,从而使您的网站看起来对广告商更具吸引力。我敢肯定,他们并不打算阻止您设计高性能的 AJAX 网站……但不幸的是,有时规则会产生意想不到的后果。

当然,正如您最初指出的那样,如果您将广告嵌入 iframe 并修改其位置,您仍然可以刷新广告。(以下是在 AJAX 应用程序中使用 iframe 刷新 AdSense 的方法。)

您在最初的问题中拒绝了 iframe,也许是因为您知道使用 iframe 会违反 Google 的政策……但如果您坚持违反规则,您还不如一路打破它们!;-)

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

于 2009-01-14T00:16:03.390 回答
28

新的 Google DFP“标签”专门允许“AJAX 广告刷新”

刷新

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

参数:

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

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

于 2012-08-23T01:58:39.410 回答
1

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

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

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

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

至于是否违反TOS... Gmail动态更改广告,所以它不会那么糟糕。只要内容也在变化,我认为没问题。

于 2010-05-07T01:52:10.067 回答
0

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

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

Google Ad Manager 帮助 - 无需刷新页面即可重新加载广告

于 2019-01-16T19:22:58.363 回答
-1

只需将广告包含在您通过 ajax 加载的页面中。通过 ajax 在每页的基础上从文件中加载广告不会有任何问题。

如果我加载包含一些内容和广告的 Read.inc 单击页面上的某些内容,它会将您带到包含内容和广告的 Make.inc。

那有什么问题?那是有机的。将广告作为内容的一部分加载。

这与单击链接相同。

我还没有真正尝试过,但它确实看起来合乎逻辑。

于 2009-12-04T13:35:09.030 回答
-2

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

于 2009-01-12T13:45:59.793 回答
-3

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

于 2009-01-12T13:53:24.787 回答