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

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

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました