如何用php 從Google Analytics api 抓資料?

Daniel WANG
Backend Record
Published in
4 min readJun 6, 2017

在閱讀這篇之前,假設讀者都已經知道GA的基礎知識,比如怎麼看GA報表,或已經知道dimensions 以及 metrics的差異等等,這樣才能正確的抓到自己想要的資料

首先,先include ‘gapi.class.php’ 這支程式,從這裡GitHub下載

<?phpinclude_once("/api/gapi.class.php");  $gaUsername = ‘[your ga name]’;   //你GA帳號的名稱$gaPassword = ‘[your ga password]’;  //你GA帳號的密碼$profileId = ‘123456’;

到這邊為止都是先處理好帳號問題,你要先匯入你自己的GA帳號,API才知道要抓誰的資料

這邊開始要設定想要抓取的 dimensions or metrics,若你不確定要怎麼抓,可以參考此官方英文文件

https://developers.google.com/analytics/devguides/reporting/core/dimsmets

$dimensions = array(‘eventLabel’); //可換成 eventCategory$metrics = array(‘totalEvents’,’uniqueEvents’); //查詢重複事件與不重複事件
$sort = “eventLabel” ; //根據哪個資料排序//如SQL的WHERE 下篩選判斷,想要抓什麼資料
$filter = “eventCategory== AD_Button”;
$fromDate = “3daysAgo”; //輸入一個日期區間$toDate = “2daysAgo”;

GA的日期搜尋方式如下顯示:

昨天 : “yesterday”

前天: “2daysAgo”

大前天 : “3daysAgo”

指定日期: ‘2017–06–06’

打好想要的資料,就可以開始 call ga的 api了

//開始call ga api$ga = new gapi($gaUsername, $gaPassword);$ga->requestReportData($profileId, $dimensions, $metrics, $sort, $filter, $fromDate, $toDate, 1, 10000);$gaResults = $ga->getResults();foreach($gaResults as $results){$GA_uniqueEvents= $results->getMetrics(); //拿 metrics$GA_eventLabel = $results->getDimensions(); //拿Dimension$newarray[‘GA_totalEvents’] = $GA_uniqueEvents[‘totalEvents’] ; //取總點擊$newarray[‘GA_uniqueEvents’] = $GA_uniqueEvents[‘uniqueEvents’]; //取不重複點擊$newarray[‘GA_eventLabel’] = $GA_eventLabel[‘eventLabel’] ;;} return $newarray;?>

之後你就可以利用$newarray去做發揮,想要存在DB或是顯示在前端都可以

注意事項: GA api是有 request上限的,因此不建議在短時間內大量 call這 api,你會被google寄封信說要你提升GA帳號成企業版本,那很貴的

因此好的做法是,每次call GA api有個時間間隔,並且盡量減少次數,最好是能存在DB裡,這樣想用幾次就用幾次,不用一直request

--

--