Blog KPI Collector(GAS)で各種KPIを自動取得する
ブログメンタリング期間中は、事前に設定したブログ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
を有効にします。
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(安全ではないページ)に移動」→「許可」とクリックしていきます。
下図の通り、認可を進めていきます。
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
TECH
2020.03.31
TECH
2020.09.27
TECH
2020.08.15
TECH
2020.07.20
TECH
2020.03.13
TECH
2023.02.03
TECH
2022.08.14
TECH
2019.11.16