Rでウェブ解析:Google Analyticsでインタラクティブなヒートマップを作成するコード


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)

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

スポンサードリンク

おすすめコンテンツ


スポンサードリンク