GoogleAnalyticsの曜日、時間別アクセス数をエクセルへ出力するコマンドとデータをインタラクティブなヒートマップで出力するコマンドです。
サイトのidとトークンファイルの取得と保存方法は「RでGoogle Analyticsの目次」から「RGoogleAnalyticsパッケージ基本的な利用方法」を確認してください。
また、使用ライブラリが整っていない場合やエラーが起きる場合は「解析の準備」の項目を確認してください。初心者でも実行できるようにまとめています。
解析コマンドなどのまとめはこちらから:RでGoogle Analyticsの目次
取得コマンドの紹介
注意!Rstudioからライブラリ”RGoogleAnalytics”と”plotly”を同時に実行するとエラーが起きます。エラー回避の方法として、まずは”RGoogleAnalytics”でデータをエクセルで出力後、”plotly”で図を作成することをお勧めします。
RGoogleAnalyticsでデータをエクセルに出力する
library("RGoogleAnalytics") library("XLConnect") library("tcltk") library("ggplot2") TableID <- "ga:データを取得するサイトのidを入力" #曜日の並び順はここで設定 WeekDayAnaData <- data.frame(c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")) #取得パラメータの設定 query.list <- Init(start.date = "2014-12-01", end.date = "2014-12-31", dimensions = c("ga:hour", "ga:dayOfWeekName"), metrics = "ga:users", max.results = 10000, table.id = TableID) #取得パラメーターを処理 query <- QueryBuilder(query.list) #データの取得 HourDayData <- GetReportData(query, oauth_token) #曜日の因子化 HourDayData[, 2] <- factor(HourDayData[, 2], levels = WeekDayAnaData[, 1]) #曜日を並び替え HourDayData <- HourDayData[order(HourDayData[, 2], decreasing = FALSE), ] #データの整形 HourDayData <- reshape(HourDayData, idvar = "hour", timevar = "dayOfWeekName", direction = "wide") #データ行名に日と月名を付与 colnames(HourDayData) <- c("Hour", as.character(WeekDayAnaData[, 1])) #データの書き出し、保存フォルダを選択して書き出し。 setwd(paste(as.character(tkchooseDirectory(title = "保存ディレクトリを選択"), sep = "", collapse =""))) writeWorksheetToFile(paste("アクセスデータ.xlsx", sep = ""), data = HourDayData, sheet = "アクセスデータ") ########
インタラクティブなヒートマップの作成
plotyライブラリの使用・設定方法は下記記事を参考ください。
Rでインタラクティブなグラフ:便利なPlotlyライブラリのご紹介
library("tcltk") library("XLConnect") library("plotly") ###データの読み込み##### MasterAnaData <- loadWorkbook(paste(as.character(tkgetOpenFile(title = "GoogleAnalyticsデータを選択", filetypes = '{"xlsxファイル" {".xlsx"}}', initialfile = "*.xlsx")), sep = "", collapse =" ")) AnaData <- readWorksheet(MasterAnaData, sheet = 1) ######## #plotlyへのアクセス設定。plotlyのサイトで取得したusernameとkeyを入力してください。 py <- plotly(username = "XXXXXXX", key = "XXXXXXX") #プロットデータの準備 data <- list( list( z = eval(parse(text = paste(paste("list(c(", paste(AnaData[1, 2:7], collapse = ","), "),", sep = ""), paste("list(", apply(AnaData[-1, 2:7], 1, paste, collapse = ","), ")", sep = "", collapse = ","), ")", sep = ""))), x = c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"), y = 0:23, colorscale = "Portland", reversescale = FALSE, type = "heatmap" ) ) #plotlyへデータを送信、上書き許可 r <- py$plotly(data, kwargs=list(filename = "HourDayData", fileopt = "overwrite")) #プロットをブラウザで表示 browseURL(r$url) ########
出力されるヒートマップ
なお、データは加工してあります。
解析コマンドなどのまとめはこちらから:RでGoogle Analyticsの目次
少しでも、あなたのウェブや実験の解析が楽になりますように!!