廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

RGoogleAnalytics をいじっている

注意

下記情報は古くなってきたので、

RGoogleAnalytics の使い方(Version 0.1.1) - 廿TT

をご覧ください。

RGoogleAnalytics とは

R から APIGoogle アナリティクスのデータをひっぱってこれるパッケージ。

やったこと

依存パッケージを先にインストールしておく。

install.packages("RCurl")
install.packages("rjson")


Downloads - r-google-analytics - Google Analytics For The R Statistical Programming Language - Google Project Hosting からパッケージをダウンロードしてインストール。

追記:インストールについて(10/16)
CRAN にもアップされたみたいなので、

install.packages("RGoogleAnalytics")

でインストールできます。

github には最新版が上がっています。

# require(devtools)
devtools::install_github("Tatvic/RGoogleAnalytics")

Tatvic/RGoogleAnalytics · GitHub


次に、以下を R にコピペ。

# Loading the RGoogleAnalytics library
require("RGoogleAnalytics")

# 1. Authorize your account and paste the accesstoken 
query <- QueryBuilder()
access_token <- query$authorize()                                                
ga <- RGoogleAnalytics()
ga.profiles <- ga$GetProfileData(access_token)


f:id:abrahamcow:20140706030709p:plain
Accept をクリック。


f:id:abrahamcow:20140706031118p:plain
Exchange authorization code for tokens をクリック。


f:id:abrahamcow:20140706031514p:plain
赤い四角のところが access token。

f:id:abrahamcow:20140706031804p:plain
access token のところを R にコピペ。



R からクエリを叩く。

# 3. Build the query string, use the profile by setting its index value 
query$Init(start.date = "2014-01-01",
           end.date = "2014-06-30",
           dimensions = "ga:month,ga:channelGrouping",
           metrics = "ga:visits",
           sort = "ga:month",
           #max.results = 99,
           table.id = paste("ga:",ga.profiles$id[1],sep="",collapse=","),
           access_token=access_token)
dat1 <- ga$GetReportData(query)

こんな感じでデータが取れる。

> head(dat1)
  month channelGrouping visits
1    01         (Other)     25
2    01          Direct    983
3    01  Organic Search   1687
4    01        Referral   1303
5    01          Social   2252
6    02          Direct    200

month とかが文字列になってるのに注意。

> class(dat1$month)
[1] "character"

とりあえずプロットしてみた

library(ggplot2)

dat1$month <- as.numeric(dat1$month)

a <- ggplot(dat1,aes(x=month,y=visits))
a +geom_line(aes(colour=channelGrouping),size=1) +
  facet_wrap(~channelGrouping, nrow=5)+
  theme_bw()

f:id:abrahamcow:20140706032304p:plain
縦軸の "visits" はセッション数。