Rでウェブ解析:Google Analyticsからデータを取得「RGA」パッケージの紹介
Google Analyticsからデータを取得する「RGA」パッケージの新しいバージョンが登場したので、記事の内容を更新です。Google Analyticsからデータを取得するパッケージはいろいろありますが、使用方法が簡単な「RGA」パッケージはウェブ解析に必須だと思います。
RGAパッケージはデータを取得するコマンドだけでなく、DimensionとMetricsの一覧を取得するコマンドやShinyでインタラクティブ確認するコマンドも収録されています。
DimensionとMetricsの一覧をcsvに保存するコマンドを紹介します。ぜひ、活用ください。リアルタイムのアクセス状況を取得する「get_realtime」コマンドはかなり使い道があると思います。
RからSearch Consoleを操作できる「searchConsoleR」パッケージがあります。ぜひ、合わせて利用してください。
・Rでウェブ解析:Google Search Consoleを操作!「searchConsoleR」パッケージ https://www.karada-good.net/analyticsr/r-215/
パッケージバージョン0.4.2。実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.3で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール
install.packages("RGA")
実行コマンドの紹介
詳細はコメントまたはパッケージヘルプを確認してください。
Google Analyticsからデータを取得するのに必要な設定は下記の目次より確認ください。 ・初心者でもできる!RでGoogle Analytics解析の目次 https://www.karada-good.net/rgoogleanalyticsindex/
#パッケージの読み込み
library("RGA")
#使用可能なDimensionとMetricsを取得
GaDimMet <- list_dimsmets()
#CSVでデータを保存
library("tcltk")
setwd(paste(as.character(tkchooseDirectory(title = "保存場所を選択"), sep = "", collapse ="")))
write.csv(GaDimMet, "GA_DimensionとMetrics.csv")
###以下,Google Analyticsからデータを取得する方法#####
#リクエストの許可を申請
#googleアカウントにログインした状況で実行:authorizeコマンド
#変数を用意することで複数アカウントの制御が可能です
authorize()
#Google Analyticsに登録しているプロファイルを取得:list_profilesコマンド
#データを読み込みidの確認です
list_profiles()
#下記情報は数値を改変していますのでidなどは利用できません
id account.id webproperty.id name currency timezone
1 35464948 65284930 UA-36356274-1 からだにいいものみんな JPY Asia/Tokyo
website.url type created updated e.commerce.tracking
1 https://www.karada-good.net/ WEB 2014-04-20 05:46:28 2015-05-20 22:46:08 FALSE
permissions
1 COLLABORATE,EDIT,MANAGE_USERS,READ_AND_ANALYZE
#データの取得:get_gaコマンド
#profileIdオプションにはlist_profilesコマンドで取得したidを使用します
#入力形式は"ga:取得したid"です
#実行日の前日から1週間のユーザー数,セッション数,ページビュー数を取得
#start.date,end.dateオプションはYYYY-MM-DD(例:2015-09-01)やtoday,yesterday,XdaysAgoで指定が可能です
get_ga(profileId = "ga:35464948", start.date = "7daysAgo", end.date = "yesterday",
metrics = "ga:users, ga:sessions, ga:pageviews", dimensions = NULL)
Obtained data.frame with 1 rows and 3 columns.
users sessions pageviews
1 88357 99352 123647
#セッション数とページビュー数の取得
get_ga(profileId = "ga:35464948", start.date = "7daysAgo", end.date = "yesterday",
metrics = "ga:sessions,ga:pageviews")
Obtained data.frame with 1 rows and 2 columns.
sessions pageviews
1 99352 123647
#新規ユーザーと再訪問者数の取得
get_ga(profileId = "ga:35464948", start.date = "7daysAgo", end.date = "yesterday",
dimensions = "ga:userType", metrics = "ga:sessions")
Obtained data.frame with 2 rows and 2 columns.
user.type sessions
1 New Visitor 11727
2 Returning Visitor 9939
#使用ブラウザとOSに関する情報の取得
get_ga(profileId = "ga:35464948", start.date = "7daysAgo", end.date = "yesterday",
dimensions = "ga:operatingSystem, ga:operatingSystemVersion, ga:browser, ga:browserVersion",
metrics = "ga:sessions")
operating.system operating.system.version browser browser.version sessions
1 (not set) (not set) Chrome 27.0.1453 65430
2 (not set) (not set) Opera 507 4353
#キーワードの取得
#検索数で降順:sortオプション;先頭に-(マイナス)で降順
get_ga(profileId = "ga:35464948", start.date = "7daysAgo", end.date = "yesterday",
dimensions = "ga:keyword", metrics = "ga:sessions", filters = "ga:medium == organic",
sort = "-ga:sessions")
keyword sessions
1 (not provided) 1534
2 シャーロット 9話 444
3 シャーロット op 文字 318
4 bravely you ジャケット 301
#ページビュー数が多いコンテンツを取得
get_ga(profileId = "ga:35464948", start.date = "7daysAgo", end.date = "yesterday",
dimensions = "ga:pagePath",
metrics = "ga:pageviews, ga:uniquePageviews, ga:timeOnPage, ga:bounces, ga:entrances, ga:exits",
sort = "-ga:pageviews")
Obtained data.frame with 364 rows and 7 columns.
page.path pageviews unique.pageviews time.on.page bounces entrances exits
1 /analyticsr/r-218/ 2329 1307 6608 271 1291 600
2 /analyticsr/r-156/ 2319 1223 7790 111 1208 564
#訪問数の多いランディングページを取得
get_ga(profileId = "ga:35464948", start.date = "7daysAgo", end.date = "yesterday",
dimensions = "ga:landingPagePath",
metrics = "ga:entrances,ga:bounces",
sort = "-ga:entrances")
Obtained data.frame with 247 rows and 3 columns.
landing.page.path entrances bounces
1 /analyticsr/r-218/ 1291 600
2 /analyticsr/r-156/ 1208 564
#リアルタイムの情報を取得:get_realtimeコマンド
#リアルタイムAPIの説明はこちらから
#https://developers.google.com/analytics/devguides/reporting/realtime/dimsmets/
while (TRUE) {
cat("\014")
print(get_realtime(profileId = IDSet, metrics = "rt:activeUsers",
dimensions = c("rt:referralPath", "rt:browser", "rt:userType", "rt:pageTitle")))
Sys.sleep(3)
}
###参考:トークンファイルを利用する場合client.id,client.secretオプションを使用します#####
#client.id,client.secretの取得は紹介記事を参考ください
#クライアントIDを設定
client.id <- "クライアントID"
#クライアントシークレットを設定
client.secret <- "クライアントシークレット"
#トークンファイルの保存
library("tcltk")
setwd(paste(as.character(tkchooseDirectory(title = "保存場所を選択"), sep = "", collapse ="")))
authorize(client.id = client.id, client.secret = client.secret,
cache = "RGA.token")
#トークンファイルの利用
library("tcltk")
options(rga.cache = paste0(as.character(tkgetOpenFile(title = "RGA.tokenファイルを選択",
filetypes = '{"RGA.tokenファイル" {".token"}}',
initialfile = c("*.token")))))
authorize(client.id = client.id, client.secret = client.secret)
########
DimensionとMetricsの出力内容
shinyでDimensionとMetricsを確認
下記コマンドを実行することでインタラクティブにDimensionとMetricsを確認することができます。
shiny_dimsmets()
少しでも、あなたのウェブや実験の解析が楽になりますように!!

