クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

GASを使って、ChatworkにGoogle Analyticsのレポートを送信する

はじめてGASに挑戦したsatopiです、こんにちは!

自分が運用に関わっているDybe!というメディアサイトの記事を社内のみんなに見てほしくて、Chatworkのbotに月間PVランキングをつぶやかせるようにしました。

1. スプレッドシートGoogle Analyticsアドオンでレポートを作成する

スプレッドシートを作成するアカウントにGoogle Analyticsの「表示と分析」権限を付与しないとレポートは作成できません。

f:id:aimstogeek:20190416164703j:plain
Google Analyticsアドオン

Google Analyticsアドオンをインストールしたら、アドオンメニューから「Create new report」をクリック。

f:id:aimstogeek:20190416165848p:plain

レポート出力設定ウィンドウが表示されます。

f:id:aimstogeek:20190416165212p:plain

Metrics(指標)に「Pageviews」、Dimensions(分析軸)に「Page Title」「Page」を指定します。 (Pageはページのルート相対パスが取得できます)

2. 出力される内容を調整する

  1. Orderで降順にするため、-ga:pageviews を指定
  2. Filterで記事詳細のみに絞り込む

Dybe!の記事URLは、 https://ten-navi.com/dybe/記事ID/ となっているので、正規表現で絞り込みます。

f:id:aimstogeek:20190416165708p:plain
出力内容を調整したReport Configurationシート

アドオンメニューから「Run Reports」をクリックすると、別シートに結果が出力されます。

f:id:aimstogeek:20190417151503p:plain
結果が出力されたシート

3. 毎月1日にレポートを更新する

アドオンメニューから「Schedule reports」をクリックし、実施日時を設定します。

f:id:aimstogeek:20190416184041p:plain
毎月1日、9〜10時の間に実施させる設定例

4. GASにChatworkのライブラリを追加する

スプレッドシートからスクリプトエディタを開き、「ChatWorkClient」のライブラリを追加します。

f:id:aimstogeek:20190416182813p:plain
追加したら、最新バージョンの選択を忘れないようにしましょう

5. GASを書く

スクリプトはこんな感じに。

function sampleAction() {
  var currentFile = SpreadsheetApp.getActiveSpreadsheet();
  // シート名は「Run report」で生成されたほうを指定する
  var monthlyRanking = currentFile.getSheetByName("シート名");

  // チャットワークにメッセージを送る
  var RoomId = xxxxxxxxx; // ChatworkのルームID
  var client = ChatWorkClient.factory({
    token: "ChatworkのAPIトークン"
  });
  var Body = "[info][title]Dybe! 月間PVランキング[/title]";

  for (var i = 1; i <= 6; i++) {
    Body =
      Body +
      "[" + i + "] " + monthlyRanking.getRange(i + 15, 2).getValue() +
      ":PV " + monthlyRanking.getRange(i + 15, 3).getValue() + "\n" +
      " https://ten-navi.com" + monthlyRanking.getRange(i + 15, 1).getValue() +
      "[hr]";
  }

  Body += "ご意見・ご感想などがあれば、Dybe!運営メンバーまでお願いします(bow)[/info]";

  client.sendMessage({
    room_id: RoomId,
    body: Body
  });
}

スクリプトを書いたらメニューのトリガーアイコンをクリック。

イベントのソース「時間主導型」を選択し、実行日時を設定します。

f:id:aimstogeek:20190416190211p:plain
毎月1日 午前10〜11時の間に実行するようにトリガーを設定した例

※レポートの更新後にスクリプトが実施されるようにしてください。

完成

f:id:aimstogeek:20190416162721p:plain
Dybe!の月間PVランキングをつぶやく社内botのBob

まだDybe!の記事を読んだことがない方は、これを機に是非ご覧ください!٩( ᐛ )و

ten-navi.com


\\『明日のはたらくを創る』仲間を募集中です!! //
919.jp