Introduction

Google Analytics 是非常重要的網站分析工具之一。但是,大多的使用必須仰賴官方所提供的報表介面。身為一個資料分析者來說,沒摸到原始的資料總會覺得不踏實。所以今天我們就來分享一下,如何透過 R 語言及 API 將資料拉下來。

R 語言是一個用於統計及資料分析的程式語言,它可以輕鬆地用來連接 API 取得資料。透過幾行程式碼,就能夠使用來自於 Google Analytic 的資料進行你想要的分析。

那麼,就開始吧!

Step 1. Prepare

首先,要準備好這些東西:

  • 啟用 Google Analytic API ( Google Developers Console ),記得你的 client.idclient.secret
  • 打開 Google Analytic 介面取得 View ID ( Admin -> VIEW -> View Settings )
  • 確保 R 及 RStudio 都安裝完成。(Note. RStudio 是一款 R 語言的 IDE,開發 R 語言的時候比較方便)

Step 2. Download a Package for Accessing the API

除了 R 語言本身之外,我們也必須要安裝一個稱為 RGoogleAnalytics 的套件用來存取 Google Analytics API。 透過以下的指令就可以安裝這個套件:

1
2
3
4
require(devtools)
#install devtools package for downloading packages from github
devtools::install_github("Tatvic/RGoogleAnalytics")
#installing RGoogleAnalytics package from github

接著,我們必須告訴 RStudio 我們想要這個 RGoogleAnalytics 這個套件。每次開啟 RStudio 的時候,都要載入一次套件,但是下載只需要執行一次。

1
require(RGoogleAnalytics)

Step 3. Authenticate

接下來,必須向 Google 取得存取 API 的認證。 client.id, client.secret 就是前面申請 API 時候得到的。 可以存下來,這樣以後就不用每次都要一次。

1
2
3
4
5
6
7
8
token <- Auth(client.id, client.secret)
# Authorize the Google Analytics account
# This need not be executed in every session once the token object is created
# and saved
save(token,file="./token_file")
# Save the token object for future sessions
ValidateToken(token)
# In future sessions it can be loaded by running load("./token_file")

Step 4. Get that Data!

最後,像 GA 發送請求,告訴他我們想要哪些資料, table.id 是前面從介面中拿到的 VIEW ID。
其中比較需要注意的是 dimensions 及 metrics,他們是在 Google Analytic 中評量的一種值,以下簡單介紹:

維度(dimensions): 是「非數值性」的描述使用者特徵, 階段、行為動作。常用的維度例如: 使用者的區域, 國家, 所使用的瀏覽器等等.

指標(metrics): 是「數值性」的描述使用者特徵, 階段、行為動作。常用的指標例如: 訪客數(visitor), 瀏覽數(pageview), 轉換率(converstion), 跳出率(Bounce Rate,使用者進入網頁後無後續動作即離開網站)等等.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Build a list of all the Query Parameters
query.list <- Init(start.date = "2013-11-28",
end.date = "2013-12-04",
dimensions = "ga:date,ga:pagePath,ga:hour,ga:medium",
metrics = "ga:sessions,ga:pageviews",
max.results = 10000,
sort = "-ga:date",
table.id = "ga:33093633")

# Create the Query Builder object so that the query parameters are validated
ga.query <- QueryBuilder(query.list)

# Extract the data and store it in a data-frame
ga.data <- GetReportData(ga.query, token, split_daywise = T, delay = 5)

Result

大功告成!

Result

Reference

[1] Using Google Analytics with R
[2] Tatvic/RGoogleAnalytics
[3] 數位基礎知識 3.2: 定義主要的維度與指標


License


本著作由 Chang, Wei-Yaun (v123582) 製作,
創用CC 姓名標示-相同方式分享 3.0 Unported授權條款釋出。