全取材あり! | エンジニアになれるプログラミングスクールおすすめ5社まとめ

RでGoogle Analyticsのデータを収集、分析までを行うことができます。
RGAというパッケージを利用して、Google Analyticsからデータを取得する方法をまとめてみました。

前提条件

Rを利用できる設定を行います。以下をインストールしておいてください。

  • R
  • RStudio

 

RGAのインストール

RでGoogle Analyticsを利用できるパッケージをインストールします。

> install.packages("RGA")
> library(RGA)

RGAの認証

Google Analtyticsアカウントの認証を行います。

認証を行うと、ブラウザが起動しGoogleの認証ページに移動します。

> authorize()

アカウントを選択すれば認証完了です。

GA上のサイトを取得

list_profiles関数を利用すると、アカウントに紐づいたGoogle Analyticsに登録してあるWebサイトの一覧を取得することができます。
以下は私のWebサイト群ですがが、セキュリティ的に出せないところはxxxxxにして隠してあります。

> ga_profiles <- list_profiles()
> ga_profiles
# A tibble: 7 x 13
         id accountId webPropertyId internalWebPropertyId                         name currency   timezone                                  websiteUrl  type
      <chr>     <chr>         <chr>                 <chr>                        <chr>    <chr>      <chr>                                       <chr> <chr>
4 xxxxxxxxxx  xxxxxxxxxxx UA-xxxxxxxx-x             180808498 すべてのウェブサイトのデータ      USD Asia/Tokyo                        https://dividable.net   WEB

GAの登録日程を取得

GAの登録日を取得できます。

> id <- ga_profiles$id[4]
> firstdate(id)
[1] "2018-07-20 JST"

GAのレポートを取得

GAからレポートを取得します。

  • id: GAのWebサイトのid
  • first.date: データを収集する起点の日
  • end.date: データを収集する最後の日
  • metrics: メトリックス
  • demensions: ディメンション

メトリックスやディメンションに関しては、Query Exploreを参考にするとよいです。

頻繁に使いそうなものだけリストアップしておきます。

ga:landingPagePath: ランディングページ

ga:sessions:セッション

ga:pageViews:ページビュー

ga:bounceRate: 直帰率

ga:sessionDuration:セッション時間

ga:impressions:表示回数

ga:goalXXStarts:目標xの開始(xには数値が入る)

ga:goalXXCompletions:目標XXの完了数

ga:goalXXConversionRate:目標XXコンバージョン率

ga:pageTitle:ページタイトル

ga:timeOnPage:滞在時間

ga:avgTimeOnPage:平均ページ滞在時間

ga:eventCategory:イベント カテゴリ

ga:eventAction:イベント アクション

ga:eventLabel:イベント ラベル:

チートシートは下記サイトにきれいにテーブルで並んでいるので、それを参考にするのがよさそうです。

≫GoogleアナリティクスAPIリファレンス 日本語対応表 スプレッドシートのアドオンやAnalytics Edgeでも使えるよ!

過去1週間でのランディングページごとのCV数を取得

サンプルコードとして、過去1週間でのランディングページごとのCV数を測定するスクリプトを記述しておきます。

today <- Sys.Date()
last7Days <- today-7
ga_data <- get_ga(id, start.date = last7Days, end.date = today,metrics = "ga:goal2Starts,ga:avgTimeOnPage,ga:pageViews",dimensions = "ga:landingPagePath")
ga_data$ctr <- ga_data$goal2Starts / ga_data$pageViews
ga_data[order(ga_data$goal2Starts, decreasing = T), ]

                                                                            landingPagePath goal2Starts avgTimeOnPage pageViews         ctr
                                                                                      <chr>       <int>         <dbl>     <int>       <dbl>
 1                                     /sidework/how-to-earn-money-by-programming-sidework/         179      51.13059      6055 0.029562345
 2                                                        /python/python-learning-websites/         111      40.26789      4258 0.026068577
 3                                                          /python/python-learn-by-myself/          97      49.32393      2222 0.043654365
 4                                                                 /python/python-sidework/          72      48.98200      2698 0.026686434
 5                                               /programming-school/ai-programming-school/          68      48.86934      1050 0.064761905
 6 /learning-programming/programming-for-beginners/5-ways-to-learn-programming-effectively/          43      36.61255      2667 0.016122985
 7         /learning-programming/programming-for-beginners/learn-programming-in-university/          34      40.11390      2996 0.011348465
 8                                                            /python/how-python-is-useful/          26      42.03403     13992 0.001858205
 9                                                                                (not set)          25       0.00000         0         Inf
10                                                           /ai/how-to-become-ai-engineer/          25      37.55566      1482 0.016869096