[inmediahk] 2010-12-06 頁面瀏覽資料統計(二)

續上一篇

啊, 說好的 "GA 最熱門 block" 要跳票了, 這星期... 太忙了, Freelance 纏身

先將部份的代碼分享上來, 讓大家研究一下

首先建立一個 url, 這個url 會跟據參數返回 GA 的結果

<?php
function ga_api_menu() {
 
$items = array();

 
$items['ga_api/ahah'] = array(
   
'title' => 'AHAH',
   
'page callback' => 'ga_api_ahah_callback',
   
'access callback' => TRUE,
  );
 
  return
$items;
}
?>

以下是查詢 GA 的代碼, 使用 ga:pi class, 只提取 pageview

<?php
 
function ga_api_ahah_callback() {
 
//使用一個新注冊, 唯讀的帳戶作提交要求
 
$ga = new gapi('username','password');
 
//讀取參數
 
$path = $_GET['d'];
 
//留一個機會使用緩存
  //$results = cache_get('ga_api_'.$path);
 
 
if (empty($results)) {
   
$filter = 'pagepath=='.$path;
   
$start_date = date('Y-m',strtotime('-1 Year')).'-01';
   
$end_date = date('Y-m-d');
    try{
     
$ga->requestReportData(8930156,array('pageTitle','month','year'),array('pageviews'),array('year','month'),$filter,$start_date,$end_date);
    } catch(
Exception $e) {
      print
drupal_json(array('status' => TRUE, 'data' => $e->getMessage()));
      exit();
    }
   
$results = $ga->getResults();
   
//cache_set('ga_api_'.$path, $results,'cache',date('U',strtotime("+1 day")));
 
}
 
//kprint_r($results);
 
$output = '';
 
//輸出 json
 
foreach($results as $id => $result)
  {
   
$output .= '<div>';
   
//$datetime = DateTime::createFromFormat('m',$result->getMonth());
   
$output .= $result->getYear().'-'.$result->getMonth() . ': ';
   
$output .= 'PV'.$result->getPageviews();
   
$output .= ' ('.mb_substr ($result->getPagetitle(),0,7).'...)';
   
$output .= '</div>';
  }
 
  print
drupal_json(array('status' => TRUE, 'data' => $output));
  exit();
}
?>

 

以上的代碼都先使用 GA 的 console 試試存取, 再變成使用 class 的代碼, 而 GA export 的文件和例子都很全面, 中英文都一樣完整, 值得一讚

Google