用R軟體抓取GA資料-網站大數據的第一步

用R軟體分析與抓取Google analytics資料

在過往的文章中,我們介紹了很多直接透過google analytics前台報表觀察數據的方法
而在上一篇的API客製圖表中,我們透過Analytics的API擷取資料產生圖表
當然大家知道透過API最主要的功用就是擷取資料
因此我們這篇就是要來介紹使用R這套工具做GA資料的擷取
小弟我本身因為一些原因也開始接觸R軟體, 雖然學習的速度相當緩慢
但是也可以感受到R本身在資料分析上的重要性與實用度
同樣的, 若是能夠運用Google analytics的資料進行分析, 對於網站分析或許能帶來更廣的面向。

認識R軟體

R language是一種運用在統計資料的程式語言
如果你知道SPSS, SAS等軟體的話, 那麼R也是屬於統計分析其中的一種
而若是你聽過R, 大概是因為大數據這個概念的興起
這套語言在企業作資料分析上相當實用,其豐富的套件與優異的資料圖像化能力更是倍受推崇

實際使用R軟體擷取Google analytics資料

其實使用R抓取GA資料相當簡單, 透過R的套件功能與analytics API就可以做到
這邊我們使用Lunametrics的文章 4 ways to export your google analytics data 一文的做法來進行

首先我們要先打開Analytics API, 到Google Developer Console 點選右上角的"選取一項專案",然後選建立專案, 把專案名稱填好
建立完成後,請點選畫面中間的"啟用與管理API"

接下來進入Google API的總覽畫面,請選擇右下角其他熱門API中的"Analytics API", 然後點選enable,將GA的API先開啟


接下來我們打開R軟體(R的下載這裏不再贅述,但R有R Studio和一般的R3.2.X版本, 這邊使用一般版的R作例子)
首先輸入以下指令:
#install devtools package for downloading packages from github
install.packages("devtools")
library(devtools)
#install curl for easier use
install.packages("curl")
library(curl)
#installing rga package from github
install_github("skardhamar/rga") library(rga)
以上指令主要是安裝devtool, curl與rga三個套件, 而之後每次開啟R都要執行library(rga)這個指令
GA資料抓取準備-在R安裝套件

接下來則是要進行帳戶授權, 請執行以下指令:
rga.open(instance = "ga")
會跳出授權畫面詢問你是否要授權, 點選允許後, 就會看到一串授權碼,請記下這串授權碼, 並轉貼回R軟體要求你打授權碼的地方, 到這裡就算是授權完成了

接下來我們就要來擷取資料了, 首先我們必須要先決定要抓取哪個GA帳戶和檢視的資料
我們可以到GA的後臺管理->資料檢視->檢視設定中找到資料檢視編號, 將它記下
並且在GA中先將這串號碼指定給一個變數, 這邊我將這個變數取作gaid:
gaid <- "1234567"
若無錯誤訊息, 則就可以抓取該資料檢視的GA資料了
我們可以先嘗試用ga$getdata(gaid) 這個指令來取得過去一周的流量資料:



當然我們的目的可不是只為了這短短七天的資料, 我們可以透過以下的語法來取得更進階的資料:
gaData <- ga$getData(id, start.date = as.Date("2015-09-01"), end.date=as.Date("2015-09-30"), metrics = "ga:sessions",                dimensions = "ga:date", filter = "ga:medium==organic",                  sort = "ga:date", start = 1)
我們一樣指定一個變數gaData來儲存GA的資料, 而資料的範圍就是ga$getData後面這一長串的東西
這些資料是可以變動範圍的, 大致說明如下:

gaid--就是剛才儲存的view編號
start.date--資料範圍起始日期, 把as Data後面的日期改掉即可
end,date--資料範圍截止日期, 把as Data後面的日期改掉即可
metrics--要截取的指標, 通常都是以ga:xxx為表示方法, 關於表示方法請參考Query Explorer
dimension--要截取的維度, 通常都是以ga:xxx為表示方法
filter--篩選器, 可選擇用任一維度當作篩選條件
sort--排序, 可用任一維度或指標當作排序條件
start--擷取資料是由第X筆開始擷取
max--最多要擷取多少資料

如果我們依照上面的語法, 就可以得到如下的資料:



你可以利用write.csv(gaData, "My Data Export.csv") 指令將資料匯出csv,
也可以利用這些資料直接在R裡面進行繪圖, 以下是使用ggplot套件的繪圖功能所繪出的資料圖:

R軟體分析GA資料還有相當多的應用與分析, 就待未來慢慢發掘吧!

張貼留言