• SIS Lab
  • >
  • Blog
  • >
  • Blog KPI Collector(GAS)で各種KPIを自動取得する

Blog KPI Collector(GAS)で各種KPIを自動取得する

更新日:2023.05.05 作成日:2020.04.10

ブログメンタリング期間中は、事前に設定したブログKPI(ページビュー数、ユーザ数、Twitterフォロワーなど)を報告するため、毎週日曜日に手動で取得していました。

しかし、ブログメンタリング終了後、報告する必要がなくなるとどうしてもめんどくさいことはやらなくなってしまいます。

そこで、今まで取得していたKPIをGoogle Apps Scriptで自動取得するように設定してみました。

Google Apps Script(Blog KPI Collector)の導入

ここでは、 @budougumi0617 さんが作成したGoogle Apps Scriptのスターターキットである「blog-kpi-collector」を利用させていただきました。

budougumi0617/blog-kpi-collector: `clasp`コマンドを使ってKPIを取得するgoogleスプレッドシートを生成するスターターキット

上記のREADME.mdを見ながらインストールしてきます。

claspインストール

claspとはGoogleが提供する「Google Apps Scriptを操作するコマンドラインツール」です。

google/clasp: 🔗 Command Line Apps Script Projects

元々、Google Apps Script上でスクリプトを書くことで実行はできていました。 しかし、ローカルで作成したファイルをGoogle Apps Scriptにアップロードするには色々と面倒な手順が必要でした。 (例えば、google-apps-scriptというライブラリを使うなど)

このclaspはそれらのツールの決定版という位置付けで、ローカルでGoogle Apps Scriptの開発を行うためには、デフォルトのツールになっているようです。

claspのインストールと初期設定は、 GAS のGoogle謹製CLIツール clasp - Qiita を参考にしました。

まずは、以下の通りclaspコマンドのインストールと初期設定を行います。

$ npm install -g @google/clasp
$ clasp login

Blog KPI Collectorインストール

続いて、Blog KPI Collectorを導入していきます。GitHubから落として、npm installを実行します。

$ git clone [email protected]:budougumi0617/blog-kpi-collector.git
$ npm install

Google Sheet作成

clasp createでKPIを入力していくGoogle SheetとそのGoogle Sheetに紐づくGoogle Apps Scriptを作成します。

$ clasp create --title "KPI Sheet" --type sheets --rootDir ./src
Created new Google Sheet: https://drive.google.com/open?id={ID}
Created new Google Sheets Add-on script: https://script.google.com/d/{ID}/edit
Warning: files in subfolder are not accounted for unless you set a '.claspignore' file.
Cloned 1 file.
└─ ./src/appsscript.json

(初回のみ)Google Apps Script APIの有効化

初めてGoogle Apps Script APIを利用する場合、clasp createを実行すると下記メッセージが出て実行できない場合があります。

$ clasp create --title "KPI Sheet" --type sheets --rootDir ./src
Created new Google Sheet: https://drive.google.com/open?id={XXXXX}
User has not enabled the Apps Script API. Enable it by visiting https://script.google.com/home/usersettings then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

その場合は、メッセージの通り、 Settings - Apps Script にアクセスして、Apps Script APIを有効にします。

Blog KPI Collector(GAS)で各種KPIを自動取得する

Blog KPI Collector(GAS)で各種KPIを自動取得する

Google Apps Scriptをpull & push

clasp pullで自動生成されたGoogle Apps Scriptのコードを手元にダウンロードします。

その後、clasp pushで、Blog KPI CollectorのコードをGoogle Apps Scriptにアップロードします。

$ clasp pull
 (node:64667) ExperimentalWarning: The fs.promises API is experimental
 Warning: files in subfolder are not accounted for unless you set a '.claspignore' file.
 Cloned 1 file.
 └─ ./src/appsscript.json
$ clasp push
 (node:64687) ExperimentalWarning: The fs.promises API is experimental
 └─ src/appsscript.json
 └─ src/googleAnalytics.ts
 └─ src/hatena.ts
 └─ src/main.ts
 └─ src/twitter.ts
 Pushed 5 files.

Google Apps Scriptを実行する

clasp openコマンドを実行し、Add-on scriptのURLを開きます。 その後、main.gsファイルを選択し、main関数を実行します。

「承認が必要です」と出てくるので「許可を確認」→アカウントを選択→「詳細」→「KPI Sheet(安全ではないページ)に移動」→「許可」とクリックしていきます。

下図の通り、認可を進めていきます。

Blog KPI Collector(GAS)で各種KPIを自動取得する

Blog KPI Collector(GAS)で各種KPIを自動取得する

Blog KPI Collector(GAS)で各種KPIを自動取得する

Blog KPI Collector(GAS)で各種KPIを自動取得する

Blog KPI Collector(GAS)で各種KPIを自動取得する

Blog KPI Collector(GAS)で各種KPIを自動取得する

KPI Sheetに何かしらの値が登録されていれば、OKです。

「スクリプトのプロパティ」を設定する

「スクリプトのプロパティ」を設定する に従って、変数をプロパティに設定します。

これにより、各ユーザごとの指標を取得できます。

Google Analyticsとの連携方法

Google Analyticsとの連携方法 に従い、Google Analytics APIを有効にします。

トリガーによる自動実行の設定

仕上げとして、トリガーによる自動実行の設定を行います。 これも、 定期的に実行するトリガーを設定する に従い、設定します。

日曜日の朝一で日〜土曜日までの1週間のKPIを取得するようにしました。

まとめ

久しぶりにGoogle Apps Scriptを触ってみると結構変わっていることに気づきました。

  • claspというApps Scriptをコマンドラインから操作するツールが出ている
  • Google Apps ScriptでES 6の機能を利用できる

日々の作業を自動化するために、もっとGoogle Apps Scriptを活用していきます。

Related contents