啊, 說好的 "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 的文件和例子都很全面, 中英文都一樣完整, 值得一讚