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) [/code]


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

スポンサードリンク

関連コンテンツ


スポンサードリンク