RGoogleAnalyticsの使い方についてメモ。
気がついたらOAuth2.0対応など様変わりしていた。
以下の記事が非常に参考になるので実際にデータを取得する際は下記を参考にするとよい->未来の俺。
http://abrahamcow.hatenablog.com/entry/2015/01/02/215112
install.packages("RGoogleAnalytics")
以前のメモを参照のこと。
上記手順で入手した「クライアントID」と「クライアントシークレット」を用いて認証する。 ちなみに筆者は.Rprofileに以下のように書いていることに注意。
options(RGA_KEY="XXXXXXXXXXXXXX",
RGA_SECRET="XXXXXXXXXXX")
library(RGoogleAnalytics)
## Loading required package: lubridate
## Loading required package: httr
oauth_token <- Auth(client.id = options()$RGA_KEY,
client.secret = options()$RGA_SECRET
)
入手したoauth_token
は以下のように保存しておくとよい。
save(oauth_token, file="oauth_token")
保存したoauth_token
のロードおよびまだ使えるかを確認するには以下のようにする。
load("oauth_token")
ValidateToken(oauth_token)
## Access Token is valid
プロフィールを確認してidを確認する。
GetProfiles()
はデータフレームで結果(idと対象サイト名)を返す。
筆者の場合、idは一つしかないのでGetProfiles(oauth_token)$id
としてこれを使い回す。
myid <- GetProfiles(oauth_token)$id
## Access Token is valid
ためしにこの1ヶ月のユーザー数、セッション数、ページビュー数を取得してみる。
まずクエリを作成する。
query.list <- Init(start.date = "2014-12-01",
end.date = "2015-01-23",
dimensions = "ga:date",
metrics = "ga:users,ga:sessions,ga:pageviews",
max.results = 10000,
table.id = sprintf("ga:%s", myid)
)
ga.query <- QueryBuilder(query.list)
クエリを実行する。
ga.df <- GetReportData(ga.query, oauth_token)
## Status of Query:
## The API returned 54 results
ga.df
## date users sessions pageviews
## 1 20141201 550 589 774
## 2 20141202 521 558 738
## 3 20141203 192 206 259
## 4 20141204 164 185 241
## 5 20141205 140 159 221
## 6 20141206 112 129 209
## 7 20141207 89 95 130
## 8 20141208 151 174 224
## 9 20141209 121 132 183
## 10 20141210 119 133 195
## 11 20141211 120 135 190
## 12 20141212 107 123 154
## 13 20141213 60 65 79
## 14 20141214 324 353 434
## 15 20141215 283 307 407
## 16 20141216 205 234 372
## 17 20141217 131 144 195
## 18 20141218 158 169 204
## 19 20141219 150 157 209
## 20 20141220 62 69 123
## 21 20141221 66 73 99
## 22 20141222 116 130 166
## 23 20141223 60 65 103
## 24 20141224 123 142 194
## 25 20141225 126 134 173
## 26 20141226 101 113 159
## 27 20141227 66 70 117
## 28 20141228 102 122 180
## 29 20141229 77 93 158
## 30 20141230 55 65 105
## 31 20141231 64 70 112
## 32 20150101 156 165 216
## 33 20150102 68 73 93
## 34 20150103 55 59 72
## 35 20150104 52 61 100
## 36 20150105 95 103 144
## 37 20150106 100 113 159
## 38 20150107 124 138 190
## 39 20150108 114 138 185
## 40 20150109 124 137 188
## 41 20150110 56 63 76
## 42 20150111 48 57 65
## 43 20150112 60 63 99
## 44 20150113 112 130 181
## 45 20150114 120 144 248
## 46 20150115 99 115 160
## 47 20150116 93 108 127
## 48 20150117 52 67 80
## 49 20150118 64 69 96
## 50 20150119 95 106 133
## 51 20150120 120 129 181
## 52 20150121 117 133 180
## 53 20150122 125 148 210
## 54 20150123 159 184 328
なお、クエリ分割も可能であり、日単位、ページネーションに対応している。
ga.df <- GetReportData(ga.query, oauth_token, split_daywise=TRUE)
ga.df <- GetReportData(ga.query, oauth_token, paginate_query=TRUE)
その他パラメータについては下記ブログが詳しいので参考にされたし。