RGoogleAnalyticsの使い方についてメモ。

気がついたらOAuth2.0対応など様変わりしていた。

以下の記事が非常に参考になるので実際にデータを取得する際は下記を参考にするとよい->未来の俺。

http://abrahamcow.hatenablog.com/entry/2015/01/02/215112

まずはインストール

install.packages("RGoogleAnalytics")

OAuth2.0の認証(Google Analytics API)

以前のメモを参照のこと。

http://rpubs.com/dichika/RGA

認証する

上記手順で入手した「クライアント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)

その他パラメータについては下記ブログが詳しいので参考にされたし。

http://abrahamcow.hatenablog.com/entry/2015/01/02/215112