如何利用PHP取得Google Analytics Reporting API資料
文章推薦指數: 80 %
到Google Developer Console申請一個帳號,並建立一個專案。
STEP 2. 啟用API,Analytics API與Google Analytics Reporting API. STEP 3.
Anita'sSite
Home
在進入ReportingAPI前,先來搞清楚他到底是甚麼東西?
文長可略.....
在我研究如何取出我想要的GAdata時,我先找到的頁面是這個
裡面介紹了如何設定GA,還有不同用途的API等,後來當我搞清楚我要用的是CoreReportingAPI後,當然是開始研究它要怎麼用,目前官方第一推薦是
ReportingAPIv4,所以我就非常努力看文件,看了半天,我還是看不懂到底該如何用它,加上google系統與功能龐大又多元,點來點去常常是迷路收場...後來我又想去網路上搜尋網友的介紹與範例,看能不能有所突破,不過找著找著覺得,奇怪,怎麼有個東西跟他很像,但是卻不一樣哩?那東西就是
ReportingAPIv3!!!
其實它就是ReportingAPI的上一個版本,目前網路上大部分文章都是v3的版本,那v3跟v4的差別在哪呢?
1.據官方說法,v4比v3多了更多功能,至於多了哪些,其實我也不是很清楚噗.....,不過有興趣還是可以去它們的Overview看一下
2.HTTP的方法與回應的內容結構也改了很多,v3的版本可直接利用HTTPGet,就可以取得資料,v4則需要利用POST,Content-Type帶application/json才能取得資料,如果你想從v3升級成v4,可以參考此官方文件。
看到這裡,還在用v3的朋友是否會擔心,
哪天舊版API會不會被遺棄?目前還不用太擔心,google還是有在維護v3版本,只不過,之後有任何的新功能,都只會在v4版本開發。
所以廢話這麼多,今天要說的當然是ReportingAPIv4的版本,改天有空時,再來補一下v3版本。
呼...終於要進入主題了.....
在開始動手前,首先,我們必須要先處google理權限的問題。
當你寫googleAPI時,一定都會遇到這個問題,在你向APIget資料時,我們常常會看到跟下圖類似的狀況。
這就是代表你沒有access的權限去取得API資料,此時你就需要透過OAuth2.0去取得權限。
要如何取得
access權限呢?
Google官方文件提供很多語言與方法,包含Java、Python等,文件敘述非常詳盡,還附有SampleCode,簡直太方便了。
但我今天只用PHP來做介紹。
官網上,提供了ServiceApplications與WebServerApplications兩種方式,
這篇介紹的是利用ServiceApplications的方式存取得資料。
STEP1申請
GoogleDeveloperConsole
到GoogleDeveloperConsole申請一個帳號,並建立一個專案。
STEP2
啟用API,AnalyticsAPI與GoogleAnalyticsReportingAPI
STEP3
建立服務帳號憑證
至憑證頁面,建立一個服務帳號金鑰
選取服務帳號,沒有服務帳號就建一個,金鑰類型選擇JSON
建立完成後,它會直接幫你下載JSON憑據的檔案,請存在你的專案路徑下,待會認證時會到它。
如果一時失手,沒存到。
你可以回到憑證頁面,點選管理帳戶
點選查看用戶,就可以重新下載憑證了。
STEP4
新增服務E-Mail帳號權限
點選管理帳戶,複製服務帳號ID
至GA管理員頁面,點選使用者管理,將剛剛複製的服務帳號ID,貼在框框的欄位裡,並賦予權限。
STEP5
安裝GoogleAPIsClientPHPLibrary
利用Composer安裝GoogleAPIsClientPHPLibrary。
建立或是打開一個專案資料夾(專案需要在伺服器連線路徑下),在這個路徑下開terminal並輸入。
composerrequiregoogle/apiclient:^2.0
STEP6
建立測試資料夾與檔案
1.建立一個HelloAnalytics.php檔案,將以下程式碼貼進檔案裡。
2.將service-account-credentials.json換成剛剛下載的JSON金鑰檔案。
3.置換成你的VIEW_ID,若你不知道你的VIEW_ID可以去AccountExplorer取得。
php//LoadtheGoogleAPIPHPClientLibrary.require_once__DIR__.'/vendor/autoload.php';$analytics=initializeAnalytics();$response=getReport($analytics);printResults($response);/***InitializesanAnalyticsReportingAPIV4serviceobject.**@returnAnauthorizedAnalyticsReportingAPIV4serviceobject.*/functioninitializeAnalytics(){//Usethedevelopersconsoleanddownloadyourserviceaccount//credentialsinJSONformat.Placetheminthisdirectoryor//changethekeyfilelocationifnecessary.$KEY_FILE_LOCATION=__DIR__.'/service-account-credentials.json';//Createandconfigureanewclientobject.$client=newGoogle_Client();$client->setApplicationName("HelloAnalyticsReporting");$client->setAuthConfig($KEY_FILE_LOCATION);$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);$analytics=newGoogle_Service_AnalyticsReporting($client);return$analytics;}/***QueriestheAnalyticsReportingAPIV4.**@paramserviceAnauthorizedAnalyticsReportingAPIV4serviceobject.*@returnTheAnalyticsReportingAPIV4response.*/functiongetReport($analytics){//ReplacewithyourviewID,forexampleXXXX.$VIEW_ID="";//CreatetheDateRangeobject.$dateRange=newGoogle_Service_AnalyticsReporting_DateRange();$dateRange->setStartDate("7daysAgo");$dateRange->setEndDate("today");//CreatetheMetricsobject.$sessions=newGoogle_Service_AnalyticsReporting_Metric();$sessions->setExpression("ga:sessions");$sessions->setAlias("sessions");//CreatetheReportRequestobject.$request=newGoogle_Service_AnalyticsReporting_ReportRequest();$request->setViewId($VIEW_ID);$request->setDateRanges($dateRange);$request->setMetrics(array($sessions));$body=newGoogle_Service_AnalyticsReporting_GetReportsRequest();$body->setReportRequests(array($request));return$analytics->reports->batchGet($body);}/***ParsesandprintstheAnalyticsReportingAPIV4response.**@paramAnAnalyticsReportingAPIV4response.*/functionprintResults($reports){for($reportIndex=0;$reportIndex
參考資料
http://todomato.blogspot.tw/2016/01/google-google-analytics-api-1-step-by.html
http://white5168.blogspot.tw/2016/09/google-oauth-20.html#.WSfPatI2uHt
https://developers.google.com/analytics/devguides/reporting/core/v4/
https://developers.google.com/analytics/devguides/reporting/core/dimsmets#cats=page_tracking
GoogleAnalytics,GoogleAnalyticsApi
©2022Anita'sSite.
ThemeinspiredbyFabthemes|PoweredbyPostach.io
AnitaChou
跑步....爬山....打藍球....最近+打羽球...
咖啡是我精神糧食....寫code就靠它了....
LatestPosts
AWSEC2coturn安裝
AlexaskillkitsconnecttoAWSEC2withnodejs
NodejsserversideHttppost範例
Qt檔案與資料夾處理
QVector,QList,QStringList,QSet,QMapcontainers介紹
TagCloud
#alexa
#aws-ec2
#google-analytics
#google-analytics-api
#microsoft-visual-studio
#nodejs
#qt
#qt5
#webrtc
延伸文章資訊
- 1Overview | Analytics Reporting API v4 - Google Developers
- 2Google Analytics API V4 does not work with GA4 account
You are using the Google Analytics Reporting api that will only work with universal analytics acc...
- 3Google Analytics | Public Workspace | Postman API Network
POST. Google Analytics Request ; x-api-key. DmmrOoppTRaBBGBxsZoPEP1g4HIoRm7BKkwe7u70 ; Content-Ty...
- 4Overview | Analytics Reporting API v4 - Google Developers
The Google Analytics Reporting API v4 provides programmatic methods to access report data in Goog...
- 5[教學] Google Analytics API申請,並將流量分析與單篇瀏覽數
[教學] Google Analytics API申請,並將流量分析與單篇瀏覽數,顯示到WordPress中 ; 外掛名稱:Show Google Analytics widget ; 外掛下載...