RでGoogle Analyticsからデータを取得して年、月、OS、ページ別の「pageViewsからentrances」を引いた値をインタラクティブなヒートマップで表示するコードを紹介します。なお、表示データは架空の内容です。
クライアントIDやクライアントシークレット、Dimensions & Metricsは下記の目次より確認ください。また、各パッケージの使用方法はサイト内の過去記事を参照ください。
・初心者でもできる!RでGoogle Analytics解析の目次
https://www.karada-good.net/rgoogleanalyticsindex/
パッケージバージョンは記事紹介時に最新のものを使用しています。R version 3.2.0でコマンドを確認しています。
出力
モバイルの方はこちらからご覧いただくと見やすいです。
別ウィンドウで開く
パッケージのインストール
下記コマンドを実行してください。
#必要なパッケージのインストール
#RGoogleAnalyticsパッケージを利用の場合
install.packages("RGoogleAnalytics")
#RGAパッケージを利用の場合
install.packages("RGA")
#他の必要パッケージのインストール
install.packages(c("WriteXLS", "reshape", "d3heatmap"))
実行コマンドの紹介
詳細はコメントを確認してください。
#パッケージの読み込み
library("RGoogleAnalytics")
library("WriteXLS")
library("tcltk")
library("reshape")
library("d3heatmap")
###GoogleAnalyticsへのアクセス設定#####
#クライアントIDを設定
client.id <- "クライアントID"
#クライアントシークレットを設定
client.secret <- "クライアントシークレット"
#クライアントIDおよびシークレットのトークンを取得
oauth_token <- Auth(client.id, client.secret)
#プロファイルの表示
GetProfiles(oauth_token)
#データを取得するプロファイルidを設定
TableID <- "ga:プロファイルid"
###取得年,月を設定#####
year <- 2015 #取得したい年を設定
month <- 6 #取得したい月を設定
########
###取得年,月のベクトルを作成#####
StartDate <- as.Date(paste(year, "-", formatC(month, width = 2, flag="0"), "-01", sep = ""))
EndDate <- as.Date(format(as.Date(format(as.Date(paste(year, "-", formatC(month[length(month)],
width = 2, flag="0"), "-01", sep = "")),
"%Y%m01"),"%Y%m%d") + 31, "%Y%m01"), "%Y%m%d") - 1
########
###年,月,OS,ページのパスに対して一番最初にアクセスした回数,総ページ閲覧数,訪問者数を取得#####
Dimensions <- c("ga:year", "ga:month", "ga:operatingSystem", "ga:landingPagePath")
Metrics <- c("ga:entrances" ,"ga:pageviews", "ga:users")
#取得パラメータの設定
query.list <- Init(start.date = as.character(StartDate),
end.date = as.character(EndDate),
dimensions = Dimensions,
metrics = Metrics,
max.results = 10000,
table.id = TableID)
#取得パラメーターを処理
query <- QueryBuilder(query.list)
#データの取得
AccessData <- GetReportData(query, oauth_token)
#以下から"RGA"パッケージで取得データの利用が可能
#データの取得コマンドは最下部を参照
#pageViewsからentrancesを引く
AccessData <- cbind(AccessData, AccessData[, 6]-AccessData[, 5])
#データの並び替え
SubMasterData <- AccessData[order(AccessData[, 5], decreasing = TRUE),]
#描写データの選択
#pageViews-entrancesを選択
DrowData <- SubMasterData[, c(3, 4, 8)]
#データの整形
heatmapData <- reshape(DrowData, idvar = colnames(DrowData[2]),
timevar = colnames(DrowData[1]), direction = "wide")
#行名の設定
row.names(heatmapData) <- heatmapData[, 1]
#ランディングパス列を削除
heatmapData <- as.matrix(heatmapData[, -1])
#列名にOS名を設定
colnames(heatmapData) <- t(as.data.frame(strsplit(colnames(heatmapData), "\\.")))[,2]
#ヒートマップの描写
d3heatmap(heatmapData, dendrogram = "none", cexRow = 0.7, main = "test", scale = "col",
colors = colorRampPalette(c("#01DF74", "lightgray", "red"))(30))
#データの書き出し、保存フォルダを選択して書き出し。
setwd(paste(as.character(tkchooseDirectory(title = "保存ディレクトリを選択"), sep = "", collapse ="")))
SaveData <- as.data.frame(cbind(PagePath = row.names(heatmapData), heatmapData))
WriteXLS("SaveData", paste(year, "年", head(month, 1), "-", tail(month, 1), "使用環境とページ遷移のデータ.xlsx", sep = ""))
########
####以下、RGAパッケージでのデータ取得#####
#パッケージの読み込み
library("RGA")
#リクエストの許可を申請
#googleアカウントにログインした状況で実行:authorizeコマンド
authorize()
#データの取得
AccessData <- get_ga(profile.id = TableID, start.date = as.character(StartDate), end.date = as.character(EndDate),
metrics = Metrics, dimensions = Dimensions)
少しでも、あなたのウェブや実験の解析が楽になりますように!!