RでGoogleAnalytics:曜日、時間別アクセス数の取得


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の目次

少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク