bnsgt's diary

個人的な備忘と日記

スプレッドシートでGoogle Analyticsレポートを毎月一度自動更新しメール通知する方法

KPIを定量的に取得してレポーティングしたい場合などに、Googleスプレッドシートを使って自動化する方法をメモ

方法

Googleスプレッドシート上で、以下の設定が必要

  1. Google Analyticsアドオンの設定
  2. レポーティング用のグラフを作成
  3. Google Analyticsアドオンのスケジュール設定
  4. Google Apps Scriptでメール通知機能の設定

1.Google Analyticsアドオンの設定

  • まずはこちらの記事(https://tech.pepabo.com/2017/06/01/analytics-spread-sheet-add-on/)を参考に、アドオンをインストールする。
  • 1年分のレポートを設定する。
    • 7月分でいうと、以下同様に12ヶ月分設定します。
      • Report Name 2019/07
      • Start Date 7/1
      • End Date 7/31 「Google Analytics」アドオンで12ヶ月分設定
  • アドオン > Google Analytics > Run Report でレポートを生成する。 アドオン > Google Analytics > Run Report でレポートを生成
    • 生成すると、これまでReport Configurationしかシートがなかったのが、新しく12個シートが作成され、過去分については、データが反映される。 12個シートが作成される

2.レポーティング用のグラフを作成

※月ごとにKPI指標(今回はpageviewとする)をサマリーでグラフ出力する場合を想定

  • レポーティンググラフ用のシート「Report Graph」を作成し、月ごとのTotals For All Resultsのデータをあらかじめ参照する。
  • B2セルに、通知先のメールアドレスを記入する。(複数ある場合はカンマ区切りでOK) 月ごとのTotals For All Resultsのデータをあらかじめ参照します。 そしてB2セルに、通知先のメールアドレスを記入します。
  • 毎月のPageviewsの推移を折れ線グラフで描画する。 毎月のPageviewsの推移を折れ線グラフで描画します。 毎月のPageviewsの推移を折れ線グラフで描画します。

3.Google Analyticsアドオンのスケジュール設定

  • アドオン > Google Analytics > Schedule Reportsで、以下の設定にする。
    • every month
    • 1st
    • 任意の時間(今回は4am – 5am) アドオン > Google Analytics > Schedule Reports アドオン > Google Analytics > Schedule Reportsで、以下の設定にする。

4.Google Apps Scriptでメール通知機能の設定

function init () {
  var ss    = SpreadsheetApp.getActiveSpreadsheet();
  var ss_url = ss.getUrl();
  var sheet = ss.getSheetByName('Report Graph');
  var mailAddress = sheet.getRange('B2').getValue();

  MailApp.sendEmail(mailAddress, '先月のレポートが完成しました','以下よりご確認ください。\n' + ss_url);
}
  • 現在のプロジェクトのトリガーをクリックする。 現在のプロジェクトのトリガーをクリック

  • トリガーを追加ボタンをクリックし、出現したポップアップで下記の通り設定する。

    • イベントのソース:時間主導型
    • 時間ベースのトリガーのタイプを選択:月ベースのトリガー
    • 日を選択:1日
    • 時刻を選択:任意の時間(今回は6am – 7am、Google Analyticsアドオンで設定したSchedule Reportsの時間の一時間後とかでがいいと思う) プロジェクトのトリガー

これで、レポートグラフが毎月自動更新され、メール通知が届くようになる。