My External Storage

Jan 26, 2019 - 4 minute read - Comments - blog gas

GoogleスプレットシートでWebサイトのKPIを集計するためのOSSを作った #blog #gas

Webサイト(ブログ)のKPIを集計するGoogle Apps Script(GAS)をシュッと作成するスターターキットのOSSを作った。 一通りの設定をすると、Googleスプレットシートに各情報が書き込まれる。GASのトリガー機能で定期実行すれば、定期的にKPIを自動集計できる。

集計イメージ

2019/01/26現在対応している項目は以下。

  • Google Analyticsの週間PV数
  • Google Analyticsの週間直帰率
  • はてなブックマークの総数
  • はてなブログの読者数
  • Twitterのフォロワー数

TL;DR

  • Node.jsの実行環境、Googeアカウントがあれば利用できる
  • ローカルからclaspコマンドを使って簡単にGASとスプレットシートの準備が出来る
  • ブログのURLなどをスクリプトのプロパティに設定し、トリガーなどをWebブラウザで設定するだけ
  • 全部無料で使えるのでよかったら使ってみてください

なぜ作ったのか?(誰が使うのか?)

このブログを毎週更新している。去年まではなんとなくGoogle Analyticsのグラフを見ていただけだった。今年はもう少しブログの質をちゃんとみよう、と思いもろもろの情報をGoogleスプレットシートに集計することにした(ちゃんと見ましょう、という指摘を受けたほうが大きいが)。このOSS作成以前に自分で使うためのGASコードは出来てたのだが、他のブロガーの方も同様の集計をしたい・しているということなので一般化して公開することにした。

仕組みの概要

このOSSは以下の流れで利用できる。Node.jsの準備などで詰まらなければ、だいたい30分もかからず利用開始できるはずだ。

  • ローカルでclaspコマンド(後述)を利用する準備をする
  • OSSをダウンロード(git clone)する
  • claspコマンドを使って、Google DriveにGASのプロジェクトとGoogleスプレットシートを自動生成する
  • Webブラウザ上でブログURLなどをスクリプトのプロパティ(GASの環境変数みたいなKeyValue)に設定する
  • 実行して権限設定をして、定期実行をするためのトリガーを設定する

使い方の詳細については、リポジトリのREADMEに網羅しているつもりなのでそちらを参照のこと(不足があればissueで指摘していただければ)。

claspコマンドとは、ローカルでGAS開発をするためのGoogle公式ツールだ。npmライブラリなので、実行にはNode.jsの準備が必要だ。

気をつけたところ

あまりコード書かない方でも使えるように、なるべく簡単に開始準備が出来るように気をつけた。具体的には以下の点を考慮している。

  • GASのコードは編集せずにスクリプトのプロパティをするだけで有効化出来る
  • READMEを読めば一通りの設定が終わる

本当は認可周りの設定もコマンドで完了したかったのだが、プロジェクトIDなどの取得のためにどうしてもWebブラウザを開くことは回避できないのでひとまず諦めた。 また、現状のclaspコマンドではスクリプトプロパティの更新などは出来ないはずなので、こちらも諦めた。

今後

自動集計する仕組みは作ったものの、まだそのデータを使って可視化や分析は出来ていない。グラフなどを作ったらそのTipsも公開できたらよいと思っている。 また、他にも集計したほうがよさそうな項目があれば適宜追加していきたい。その週の記事投稿数なども必要かなと思っている。 そもそもTypeScriptで書いておきつつ型付けができていないなどの問題もあるのだが、Analytics APIがnpm上に存在しない(?)などもあるのでそこの解決はあまり優先していない。

最後に作ってみて

有志に人柱を依頼したのだが、好評をいただけたりして良かった。@mom0tomoさんや@ngmt83さんにはすでにPRも作っていただいて不足点を改善していただいた。 この調子で今年は誰かに使ってもらえるOSSをいくつか作っていく(出来たらGoで作りたいな)。

参考

関連記事