很多年前我們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
感謝大佬的分享。
感謝大佬的分享。