我可以有条件地制作Google广告吗?

时间:2012-06-04 06:02:32

标签: javascript adsense

我有一种" freemium"在我的网站上建模,这样如果用户订阅了,他们就不会看到我在页面上看到的Google Adsense广告。

所以我想根据我的Javasript代码中的条件if()语句来显示或不显示Adsense广告。

然而,来自Google的代码被设计为直接插入到HTML中,更重要的是,他们正在做一些棘手的事情,包括在注释区域设置一些变量,我无法获得我的头。

这就是代码的样子:

<script type="text/javascript"><!--
google_ad_client = "xx-xxx-00000000000000000000";
/* karamoh */
google_ad_slot = "0000000000";
google_ad_width = 320;
google_ad_height = 50;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

是否可以以这种方式转换它,以便我可以在其周围包含if()语句?

(我想我可以把它全部放在document.write()函数中,但这看起来很不雅。当然有一种方法可以更直接地利用Javascript吗?)

3 个答案:

答案 0 :(得分:2)

最干净的方法是检查服务器端,如果您的客户端是否是高级版,并且根本不要在发送给客户端的页面中插入标签。

如果您由于某种原因无法访问它,并且不介意对show_ads.js提出额外请求,那么设置一个非敏感的google_ad_client似乎会让Adsense服务回复400而不是绘制任何广告都是如此,因此您可以使用此广告代替第一行广告代码:

if(premiumClient)
    google_ad_client = "some-nonsense-value"
else
    google_ad_client = "your-correct-value"
end

同样测试表明,如果你输出<script>标签document.write,它会阻止执行,就像它在文档中的实际情况一样,所以你自己建议的,或者下面的代码可能会有点干扰:

<script type="text/javascript"><!--
google_ad_client = "xx-xxx-00000000000000000000";
/* karamoh */
google_ad_slot = "0000000000";
google_ad_width = 320;
google_ad_height = 50;
//-->
if(!premiumUser)
    document.write('<scr'+'ipt type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"><'+'/script>')
</script>

我记不清它是否确实在任何地方确实会阻止其余的执行,因此,由于show_ads.js中的另一个document.write,它现在可能会在某些浏览器中失败或突然开始失败将来。

答案 1 :(得分:1)

如何处理以下内容:

if(userIsNotSubscribed)
    document.getElementById("advertisementDiv").innerHTML = advertisement;
    // Where advertisement = The Code given to you by Google

答案 2 :(得分:0)

如果可能,请使用PHP或ASP从服务器执行此操作。