当前位置

Drupal响应式网站PHP判断手机版、电脑版投放相应广告

James Qi 在 2018年9月12日 - 23:42 提交

  很多年前我们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来判断终端、来源甚至语言等来分别投放不同广告也是一个可行的简易办法。

 

评论

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。