はじめてGASに挑戦したsatopiです、こんにちは!
自分が運用に関わっているDybe!というメディアサイトの記事を社内のみんなに見てほしくて、Chatworkのbotに月間PVランキングをつぶやかせるようにしました。
- 1. スプレッドシートのGoogle Analyticsアドオンでレポートを作成する
- 2. 出力される内容を調整する
- 3. 毎月1日にレポートを更新する
- 4. GASにChatworkのライブラリを追加する
- 5. GASを書く
- 完成
1. スプレッドシートのGoogle Analyticsアドオンでレポートを作成する
Google Analyticsアドオンをインストールしたら、アドオンメニューから「Create new report」をクリック。
レポート出力設定ウィンドウが表示されます。
Metrics(指標)に「Pageviews」、Dimensions(分析軸)に「Page Title」「Page」を指定します。 (Pageはページのルート相対パスが取得できます)
2. 出力される内容を調整する
- Orderで降順にするため、
-ga:pageviews
を指定 - Filterで記事詳細のみに絞り込む
Dybe!の記事URLは、
https://ten-navi.com/dybe/記事ID/
となっているので、正規表現で絞り込みます。
アドオンメニューから「Run Reports」をクリックすると、別シートに結果が出力されます。
3. 毎月1日にレポートを更新する
アドオンメニューから「Schedule reports」をクリックし、実施日時を設定します。
4. GASにChatworkのライブラリを追加する
スプレッドシートからスクリプトエディタを開き、「ChatWorkClient」のライブラリを追加します。
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 }); }
スクリプトを書いたらメニューのトリガーアイコンをクリック。
イベントのソース「時間主導型」を選択し、実行日時を設定します。
※レポートの更新後にスクリプトが実施されるようにしてください。
完成
まだDybe!の記事を読んだことがない方は、これを機に是非ご覧ください!٩( ᐛ )و
\\『明日のはたらくを創る』仲間を募集中です!! //
919.jp