Home > Technology, WordPress > 给广告一个关闭的按钮

给广告一个关闭的按钮

很多的站点不管流量,点击是多是少,站长们总是喜欢放些放广告,虽然大多数都挣不到钱,但挣一分是一分.所以从这个方面讲,放置一定量的广告无可厚非.另一角度从用户体验来讲总是多少的要受到影响.比如造成页面的混乱,加载速度的延长等.

我是个比较喜欢整洁的人.对页面比较乱的网页有一种烦躁感.比如很花哨的QQ空间等.因此我几乎不去,虽然现在QQ空间对Firefox的支持已经做得很好了.但是页面的混乱还是让我无法忍受.同样对于广告满天飞的下载站,连找个链接都困难的情况来说,我更是郁闷.所以以下文字可能对喜欢整洁和关注用户体验的朋友有用.

以下实例针对Wordpress.

实现的原理是写入Cookie非常简单.这个由javascript脚本来完成.然后由php判断Cookie.(我认为这种方式比较好)

首先,我们来创建个写Cookie的js.代码如下:

(function(){
function SetCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+"="+escape(value)+
		((expiredays==null)?"":";expires="+exdate.toGMTString());
}
window['PHC'] = {};
window['PHC']['SetCookie'] = SetCookie;
})();

这里我用到了mg12介绍的JavaScript的命名空间.具体的介绍请移步查看.

然后我们在广告代码的相应位置插入一个关闭的按钮,这些简单的html代码我就不细说了.

由于我的主题载入了jQuery框架.因此一下代码是基于jQuery的.当然你也可以用其他的办法.只是需要多敲点代码.
好了以下是我的代码.请参照相应的DOM结构查看.(每个人的情况都不同.不可通用.只能这样了)

$('.singleggad .close').click(function(){
	$('.singleggad').slideUp();
	PHC.SetCookie('philna_singlepage_ad','no',2);
	setTimeout(function(){
		alert('This advertisement will no longer display in two days!')},1000);
});

以上代码的效果是,点击关闭.广告被隐藏.同时写入Cookie,名称为philna_singlepage_ad,值为:no,有效期为2天,然后延时1秒钟后弹出警告告知之访客.这样一个Cookie便写入了.

然后我们要利用刚刚写入的Cookie来判断是否显示广告.我推荐使用php的方法.代码如下:

<?php if(!$_COOKIE['philna_singlepage_ad']=='no'):?>
<!--这个放你的广告代码-->
<?php endif;?>

这样处理有个好处,如果判断为不显示广告,那么整个广告代码都不会显示出来.当然就不会再去下载广告代码,浪费用户等待时间.网上有部分介绍,依然是通过js判断Cookie并隐藏广告.这个方法很糟糕,至少要等DOM下载完了你的js才能工作.这就意味着浪费的用户等待时间,并且效果还不好.会出现广告出现,又很快消失的情况.

  1. Zoll Mar 26th, 2009 @ 15:02 | #1

    呵呵 果真是惟妙惟肖啊~呵呵 也是基于Blocks改的么?

    这个关闭按钮的确很人性化~不过为什么要加个期限呢~ :!:

  2. mg12 Mar 26th, 2009 @ 15:02 | #2

    我以前也做过类似的事情, 但我觉得页面应该出现广告, 无论你是否赚钱.
    这样做还有一个好处. 有些访客会经常光顾, 但他们很少点广告 (点多了也没用, 阿里妈妈除外), 所以这些人选择关闭了广告可以提高广告的但价.
    我认为两天太短了些.

  3. yinheli Mar 26th, 2009 @ 15:07 | #3

    @Zoll
    基于iNove和hybrid,还有我上次弄的那个主题.

    @mg12
    哦,天哪,大师难得光临呀,两天确实短了些.哈,我改长点去. :razz:

  4. Leeiio Mar 26th, 2009 @ 15:28 | #4

    我的博客也是这样的,有个广告关闭的按钮。

    @mg12 但是这个只是让他隐藏掉显示,并不是真正的关闭诶,所以不会提高广告单价的。

  5. yinheli Mar 26th, 2009 @ 15:32 | #5

    @Leeiio
    想访客展示的少了应该可以提高单价吧…这个由php的预处理不会展示了 :idea:

  6. Leeiio Mar 26th, 2009 @ 15:45 | #6

    @yinheli
    话说我才看到php那一段代码,看来眼神不太好! :evil:

  7. Leeiio Mar 26th, 2009 @ 15:45 | #7

    IE6下有bug,必须刷新页面才会消失~

  8. 吖Bee Mar 26th, 2009 @ 19:40 | #8

    哈哈~怎么让它在显示呢?

  9. yinheli Mar 26th, 2009 @ 20:01 | #9

    @吖Bee
    没有必要了吧.有人故意要看那个无聊的广告?清掉Cookie就行了.你Google一下看看.

  10. lostindream Mar 26th, 2009 @ 20:42 | #10

    新主题很赞

  11. xiaorsz Mar 26th, 2009 @ 21:01 | #11

    很强大哈!!又换皮了?
    差点任不出了!蛮不错的!!

  12. xiaorsz Mar 26th, 2009 @ 21:02 | #12

    特别是上面那图片,很有你的风格!!

  13. 会律博客 Mar 26th, 2009 @ 21:20 | #13

    厉害的说,是换新屁了,不说还真是不认识了,看头像认人!

  14. yinheli Mar 26th, 2009 @ 21:56 | #14

    @lostindream
    哈..还有些小bug.

    @xiaorsz
    继续盗版.

    @会律博客
    :mad: 字呀…

  15. Alan Mar 27th, 2009 @ 00:19 | #15

    这个很有必要,毕竟广告挺烦人,哈哈

  16. Showfom Mar 27th, 2009 @ 08:26 | #16

    偶要这个主题……

  17. yinheli Mar 27th, 2009 @ 10:12 | #17

    @Showfom
    I’m sorry I still working on this.

  18. 老王 Mar 27th, 2009 @ 14:35 | #18

    yinheli现在theme是越做越漂亮了!很喜欢祥云花纹。 :roll:

  19. Zoll Mar 27th, 2009 @ 14:50 | #19

    看到首页 老徐 下面的那个 title 。。很感动。。
    谢谢。。 :cry:

  20. yinheli Mar 27th, 2009 @ 15:58 | #20

    @老王
    呵呵,网上找的.

    @Zoll
    出去了也要常上网,保持联络啊.祝顺利.~ :eek:

  21. 小三 Apr 4th, 2009 @ 16:01 | #21

    可以详细说说上面的每段代码各方在什么文件、什么地方里面吗??
    谢谢~我对代理不太懂!!

  22. Lorz Apr 16th, 2009 @ 21:17 | #22

    @Leeiio 可以把广告的JS代码,放到你的 JS 里面控制输出啊。这样就不会发生加载情况。这个方法更适合用了缓存插件的

Submitting Comment, Give me a second...

Leave a comment

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">
Trackbacks & Pingbacks ( 1 )
  1. Aug 5th, 2010 @ 09:52 | #1
    Pingback: 为广告添加关闭按钮 – Yin