Google Search ConsoleをRからAPIを利用して、データを抽出する方法をまとめる。

RでGoogle Search Consoleを利用するメリット

RからGoogle Search Consoleを利用するメリットは、以下の通り。

  • Excelよりは大きいデータを扱いやすい
  • PythonよりもGoogle AnalyticsやSearch Consoleのパッケージが使いやすい。PythonだとAccess Tokenやらなんやら取らなければならないが、Rだとブラウザ上のOAuth認証で簡単に可能。(Pythonを利用しなかった一番の要因)
  • なんならGoogle Analyticsのデータの連携とかもしやすそう。

導入方法

基本的には、以下のRパッケージのチュートリアルを見れば理解できるが、英語でしんどいので日本語に訳しておく。

≫searchConsoleR demo

①必要なパッケージのインストール

基本的には、以下2パッケージをインストールする。

  1. searchConsoleR: サーチコンソールのデータをAPI連携でとれるパッケージ
  2. googleAuthR: GoogleのOAuth認証を可能にしてくれるパッケージ
install.packages("searchConsoleR")
library(searchConsoleR)
install.packages("googleAuthR")library( googleAuthR )

②認証

サーチコンソールの認証を実行する

scr_auth()

③登録しているWebサイトを見る

 

 

> sc_websites <- list_websites()
> sc_websites
                                    siteUrl permissionLevel
1        http://www.the-academic-times.com/       siteOwner
2                    https://dividable.net/       siteOwner
3                http://www.curiocity.tech/       siteOwner
4                     https://dividable.net/       siteOwner
5    http://review-of-my-life.blogspot.com/       siteOwner
6     http://review-of-my-life.blogspot.jp/       siteOwner
7                http://www.kigyoshiro.com/       siteOwner
8          sc-domain:the-academic-times.com       siteOwner
9                  sc-domain:curiocity.tech       siteOwner
10 sc-domain:review-of-my-life.blogspot.com       siteOwner

④データを取得する

第一引数には、list_websitesで取得したurlを選択する。

第二引数には、fromの日付、第三引数にはtoの日付、取得したい

> gbr_desktop_queries <- 
    search_analytics("http://example.com",  #取得するWebサイト
                     "2015-07-01", "2015-08-01",  #取得する期間
                     c("query", "page"),  #取得したい列名
                     dimensionFilterExp = # c("device==DESKTOP","country==GBR"), 
                     searchType = "web", searchAppearance = "AMP_BLUE_LINKS",
                     aggregationType = "byPage", #ディメンション
                     rowLimit = 100)) #列数
> gbr_desktop_queries

これで列を取得することができる。

過去1カ月のクエリごとの検索順位などを見る

Rで実際にSearch Consoleでデータを取得してみる。取得するのは具体的には、

  1. クエリ
  2. クリック数
  3. 表示回数
  4. クリック率
  5. ポジション

これを取得するサンプルコードがこちら

today <- Sys.Date() #今日の日付を取得する
thirtyDaysAgo <- today-30 #1カ月前の日付を取得する
url <- sc_websites[2,1] 

# キーワードごとのクリック数、表示数、C
result <- 
    search_analytics(url,  #取得するWebサイト
                     thirtyDaysAgo, today,  #取得する期間
                     c("query"),  #取得したい列名
                     searchType = "web",
                     rowLimit = 1000) #列数

> result
                                              query clicks impressions         ctr  position
1                                            python   3787      114835 0.032977751  7.460635
2                                 python できること   3719        7514 0.494942773  1.309289
3                                       python 学習   1003        4843 0.207103035  2.132149
4                    ツイッター フォロワー 増やし方    886        2920 0.303424658  1.766781
5                               プログラミング 副業    840        2188 0.383912249  1.021481
6                                フォロワー増やし方    823        3176 0.259130982  2.159320
7                          twitter フォロワー増やす    728        2953 0.246528954  1.808669
8                      ツイッター フォロワー 増やす    615        2189 0.280950206  1.667428
9                               プログラミング 独学    539       13465 0.040029707  6.087040



データの先頭だけ見る

> head(result)
query clicks impressions ctr position
1 python 3787 114835 0.03297775 7.460635
2 python できること 3719 7514 0.49494277 1.309289
3 python 学習 1003 4843 0.20710304 2.132149
4 ツイッター フォロワー 増やし方 886 2920 0.30342466 1.766781
5 プログラミング 副業 840 2188 0.38391225 1.021481
6 フォロワー増やし方 823 3176 0.25913098 2.159320

 

クリック率と検索順位を散布図に表示する

 

R上で、クリック率と検索順位を散布図にしてみる。

※後でやる

 

トラブルシューティング

 

以下のようなエラーが出た場合、Rのバージョンを確認する。

package ‘googleAuthR’ is not available (for R version 3.2.3)https://cran.r-project.org/web/packages/googleAuthR/index.html

Rをアップデートする。

update.packages(checkBuilt=TRUE, ask=FALSE)