我有一种" 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吗?)
答案 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从服务器执行此操作。