很多年前我们Drupal网站采用了Bartik主题作为电脑版、Mobile主题作为手机版,两个版本采用不同的网址可以互相跳转切换,后来进行了改版,把电脑版、手机版合二为一做成了响应式版本,使用的主题是Responsive Bartik。投放广告则采用了Google AdSense的响应式广告代码。
最近因为国内浏览器、运营商对AdSense屏蔽太狠,所以部分国内站改用了百度联盟的广告,并试用了反广告屏蔽代码,效果还不错。但百度联盟一直都没有响应式格式广告代码可用,只能分为手机、电脑两种版本来创建广告单元、获取代码。
在MediaWiki平台,因为手机版、电脑版是分开的皮肤,所以使用百度联盟广告没有特别问题,但Drupal响应式版本就不好办了,我们开始就采用手机版广告代码当作响应式广告代码来用,在手机端当然没有问题,在PC端效果还是差强人意,视觉和点击率都不算太好。
上周就准备尝试通过PHP来判断当前是手机版还是电脑版,搜索了一些资料,Drupal有现成的第三方模块,也可以用很简单的PHP程序对User Agent进行判断从而确定终端形式。
今天安装了Mobile Detect这个模块,注意这个模块是基于Mobile_Detect.php库的,这个库不包含在模块内,可以自己去GitHub repository下载,安装在sites/all/libraries/Mobile_Detect目录下,这个模块和库安装以后,可以从网站状态报告(admin/reports/status)里面查看Mobile_Detect库是否安装成功,库文件路径应该是这样:sites/all/libraries/Mobile_Detect/Mobile_Detect.php。
安装成功后可以在各种模板文件、模块文件等地方调用下面的语句:
$detect = mobile_detect_get_object(); $is_mobile = $detect->isMobile(); $is_tablet = $detect->isTablet();
然后再根据$is_mobile的值来决定投放哪种广告代码:
$ad_mobile = 'ad mobile code'; $ad_pc = 'ad pc code'; if ($is_mobile) { $ad = $ad_mobile; } else { $ad = $ad_pc; } print $ad;
从今天实施的效果来看,是达到了识别手机版、电脑版并且投放相应广告代码的目的。
如果与地域判断的PHP代码(我们以前做了一个is_china的模块来判断浏览者IP是否来自中国)相结合,还可以针对不同的地域投放不同的广告代码。
这在一定程度上起到了一个类似广告管理系统的效果,Google Ad Manager、百度广告管理平台我们以前都用过,都太复杂了一些,也有一些限制和不方便、不兼容多种广告的地方,而用PHP来判断终端、来源甚至语言等来分别投放不同广告也是一个可行的简易办法。
评论1
感谢大佬的分享。
感谢大佬的分享。