Rでコマンド:ブログの記事アクセスランキングをグーグルドライブに保存する例


グーグルスプレッドシートを操作する「googlesheets」とGoogly Analyticsのデータを取得する「RGA」パッケージを利用して、直近1週間の記事アクセス数を前週と比較したランキングをグーグルドライブに保存する例です。

以下のようなスプレッドシートがグーグルドライブに保存できます。
https://docs.google.com/spreadsheets/d/1x-5Ia_ugrk_JvKbJS1Av_xWWUm45W_cx-2Xe43KRNHk/edit?usp=sharing

スプレッドシートのアドオンを利用してGoogly Analyticsのデータを取得する方法もあるようですが、図式化やデータのハンドリングを考えるとRの利用をオススメします。

・「googlesheets」パッケージの紹介
 https://www.karada-good.net/analyticsr/r-136/

・「RGA」パッケージの紹介
 https://www.karada-good.net/analyticsr/r-141/

参考です

・Google Trendsのデータを取得「gtrendsR」パッケージ
 https://www.karada-good.net/analyticsr/r-392/

実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.2で確認しています。


実行コマンド

詳細はコメント、コマンドのヘルプを確認してください。

#パッケージのインストール
#install.packages("googlesheets")
#install.packages("RGA")

#パッケージの読み込み
library("googlesheets")
library("RGA")

#グーグルドライブへのログイン:gs_authコマンド
#実行するとグーグルへのログインとgooglesheetsによる
#許可のリクエスト画面がブラウザに表示されます。
gs_auth(new_user = TRUE)

#googleアカウントにログインした状況で事項:authorizeコマンド
#変数を用意することで複数アカウントの制御が可能です
authorize()

#get_gaに設定するprofile.idを取得:list_profilesコマンド
#idとnameを取得
list_profiles()[, c(1, 5)]

#実行日の前日を含めた3週間前までの日を取得
Weeks <- seq(Sys.Date() - 1, len = 3, by = "-1 weeks") GetDataWeeks <- data.frame(EndData = c(Weeks[1], Weeks[2]), StartData = c(Weeks[2] + 1, Weeks[3] + 1)) #ページビュー数が多いコンテンツ順に取得 PVContent <- list(NULL, NULL) for(i in seq(nrow(GetDataWeeks))){ PVContent[[i]] <- get_ga(profileId = paste0("ga:", list_profilesコマンドで取得したid), start.date = GetDataWeeks[i, 2], end.date = GetDataWeeks[i, 1], dimensions = "ga:pageTitle, ga:pagePath", metrics = "ga:pageviews, ga:uniquePageviews, ga:bounces, ga:entrances, ga:exits", sort = "-ga:pageviews") } #ランキングを取得 #今週の結果 NewRanking <- data.frame(Tittle = PVContent[[1]]$page.title, Ranking = seq(length(PVContent[[1]]$page.title))) #先週の結果 OldRanking <- NULL for(i in seq(PVContent[[1]]$page.title)){ OldRanking <- c(OldRanking, ifelse(length(which(PVContent[[2]]$page.title == PVContent[[1]]$page.title[i])) == 0, "NA", which(PVContent[[2]]$page.title == PVContent[[1]]$page.title[i])) ) } #今週の結果に先週の順位を結合 NewRanking <- cbind(NewRanking, OldRanking = OldRanking) #記事タイトルをハイパーリンク化 #https://www.karada-good.netを自身ブログのTOP URLに変更してください NewRanking <- cbind(NewRanking[, 1], paste0("https://www.karada-good.net", PVContent[[1]]$page.path), NewRanking[, 2:3]) #データの体裁を整える colnames(NewRanking) <- c("記事タイトル", "URL", paste0(format(GetDataWeeks[1, 2], "%m/%d"), "-", format(GetDataWeeks[1, 1], "%m/%d")), paste0(format(GetDataWeeks[2, 2], "%m/%d"), "-", format(GetDataWeeks[2, 1], "%m/%d"))) #グーグルシートを作成:gs_newコマンド #書き込むデータを指定:inputオプション;nの数値を変更すると書き込むデータ数を変更できます #データ範囲以外のセル表示設定:trimオプション gs_new(title = paste0(format(GetDataWeeks[1, 2], "%m/%d"), "-", format(GetDataWeeks[1, 1], "%m/%d"), " 人気記事ランキング Top100"), ws_title = "人気記事ランキング Top100", input = head(NewRanking, n = 100), trim = TRUE) [/code]


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

スポンサードリンク

関連コンテンツ


スポンサードリンク