[料理佳餚] C# 用Google Analytics Reporting API 來抓取特定 ...
文章推薦指數: 80 %
Google Analytics(簡稱GA)是Google 推出的流量分析服務,既免費又強大,做商業網站的我們多少要會一點,通常我們查看流量分析的數據大都是.
GoogleAnalytics(簡稱GA)是Google推出的流量分析服務,既免費又強大,做商業網站的我們多少要會一點,通常我們查看流量分析的數據大都是到GA的網站,如果我們反過來把GA當成是資料來源,那麼我們怎麼從GA來取得流量的數據?
我們就從「抓取特定URL的PageView」的這樣一個簡單的範例來切入,來看看我們要怎麼使用GoogleAnalyticsReportingAPI取得我們放在GA的流量數據。
建立專案
先前往https://console.developers.google.com建立專案(或是用既有的專案也可以)
啟用API和服務
將這個專案要使用到的GoogleAPI新增進來,瀏覽到「資訊主頁」,點擊「啟用API和服務」。
在上方搜尋框輸入「analytics」,找到「GoogleAnalyticsReportingAPI」,點擊進去之後把它啟用。
建立服務帳戶金鑰
接著建立認證用的憑證,我選擇用服務帳戶來跟Google做認證,瀏覽到「憑證」,點擊「建立憑證」->「服務帳戶金鑰」。
點選「新增服務帳戶」,輸入「服務帳戶名稱」,角色可以不用選,「金鑰類型」選擇JSON,「服務帳戶ID」先抄下來,稍後會用到,沒有抄到沒關係,在待會兒下載的JSON檔案裡面也有。
點擊「建立」會下載一個JSON檔案,請妥善保存,遺失了就要重新產生金鑰。
新增GA使用者
前往GA的網站,瀏覽到「管理」畫面,然後我們可以看到有三個區塊可以做使用者管理,我們要將剛剛抄下來的服務帳戶ID新增到其中一個去,這三個區塊代表著三種不同的存取範圍,要新增到哪一個區塊去,就看我們自己的需求。
依據最少權限原則,我選擇存取範圍最小的資料檢視區塊,進入畫面之後點擊右上角的新增按鈕,選擇「新增使用者」。
在「電子郵件地址」輸入剛剛抄下來的服務帳戶ID,勾選「權限」之後,點擊右上角的新增按鈕。
撰寫程式
終於要來寫程式了,先到NuGet安裝Google.Apis.AnalyticsReporting.v4,然後將剛剛下載的JSON檔案複製到專案中,把「複製到輸出目錄」的屬性設成「有更新時才複製」。
建立憑證物件
呼叫GoogleCredential.FromFile()方法,建立憑證物件。
vargoogleCredential=GoogleCredential.FromFile("xxx.json").CreateScoped(AnalyticsReportingService.Scope.Analytics);
建立AnalyticsReportingService物件
其中ApplicationName是用來方便我們識別用的,隨意輸入即可。
varanalyticsReporting=newAnalyticsReportingService(
newBaseClientService.Initializer
{
HttpClientInitializer=googleCredential,
ApplicationName="GALab"
});
建立Dimension物件
Dimension相當於我們從GA網站上看到的「維度」,我這邊指定我的維度為 ga:pagePath。
vardimension=newDimension{Name="ga:pagePath"};
過濾維度(選擇性)
如果想要對維度做過濾,需要建立DimensionFilterClause及DimensionFilter,DimensionFilter的Expressions預設是用正則表達式去比對。
vardimension=newDimension{Name="ga:pagePath"};
vardimensionFilter=newDimensionFilter
{
DimensionName="ga:pagePath",
Expressions=newList
varmetric=newMetric{Expression="ga:pageviews"};
額外說明一下,Metric的Expression是可以做四則運算的,比如說我指定ga:pageviews/ga:sessions就可以回傳ga:pageviews除以ga:sessions的結果,另外,維度與指標相關的代碼可以在Dimensions&MetricsExplorer查得到。
建立DateRange物件
顧名思義,就是指定數據的時間區間。
varjanuary=newDateRange{StartDate="2019-01-01",EndDate="2019-01-31"};
指定ViewId
ViewId在GA網站的管理介面中找得到,我們從資料檢視區塊選定我們想要資料檢視,點擊「資料檢視設定」。
畫面展開之後,就可以看到「資料檢視ID」,它就是ViewId,把它複製下來。
最後把上述的Dimension、DimensionFilterClause、DimensionFilter、Metric、DateRange、ViewId兜成一個ReportRequest,丟給AnalyticsReportingService.Reports.BatchGet()方法之後,呼叫Execute(),就可以得到我們要的結果了。
varreportRequest=newReportRequest
{
ViewId="...",
Metrics=newList
延伸文章資訊
- 1Google 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...
- 2Analytics (分析) API
管理API:Analytics (分析) 管理API 可讓您以Google 資料API 資訊提供格式快速存取Analytics (分析) 帳戶和檢視資料。透過管理API,您可以快速取得與某個使用...
- 3Analytics Data API Overview - Google Developers
- 4How to extract custom data from the Google Analytics API | Computerworld
- 5google-analytics-api Tutorial - Getting started with...
The Google Analytics Embed API is a JavaScript library that allows you to easily create and embed...