JavaScript 实现重载Google 广告,无需刷新页面

google adsense

Google 官方禁止自动更新或重载广告,然而在单页应用、网页游戏或部分特殊场景中,往往不涉及页面刷新,如果想在不同时机展现不同广告,就会十分棘手。

就笔者目前认知,有两种情况:

1、可以使用异步Google发布商代码的刷新功能来动态重新加载广告,而无需刷新整个页面的内容。

刷新功能仅在异步模式下才能发挥作用。调用refresh()可为请求获得的广告新建一个correlator ID。

详情:

https://support.google.com/dfp_sb/answer/3058726?hl=zh-Hans

2、手动使用js重载广告位,简单实用。

首先将Google的广告代码放在一个容器中:

<div id="ad-container">
 
	... google ads javascript here ...
 
</div>

然后在需要重载广告的地方,添加下面代码即可:

<script type="text/javascript">
//define ads element
var ads = document.getElementById("ad-container");
//ad parent node
var prn = ads.parentNode;
//lets clone ads block
var cln =  ads.cloneNode(true);
//remove the current ads block completely
prn.removeChild(ads);
//append a newly cloned one
prn.appendChild(cln);
</script>

原理浅显易懂:将目标广告元素节点从父节点移除并保存,然后重新插入副本。

思路来源:http://ajax911.com/reload-google-ads/

By Pury.