【ChatWork × Analytics × GAS】 よく見られるページをランキング形式でチャットワークへ通知(2/2)
前回 の続きとなります。
前回は、Google Analytics にて ブログのページビューランキングをスプレッドシートへ取得するところまですすめました。前回の記事の通りにスプレッドシートを作成いただいた方は、以下のようなシートが自動生成されるはずです。
・・・相変わらずダイエット記事強いなぁ。ずるい・・・。
今回は、いよいよ スプレッドシートのランキングをチャットワークへ送信しましょう。
スプレッドシートに ChatWorkClient ライブラリを追加されていない方は、こちらの記事 を参考に導入願います。
チャットワークへのランキング送信用コード
スプレッドシートの上部メニュー、[ツール] → [スクリプトエディタ] から、スクリプトを記述します。今回はこのようになりました。
function blogrunking() {
var mySS=SpreadsheetApp.getActiveSpreadsheet(); //スプレッドシートを取得
var sheetBlog=mySS.getSheetByName("ブログランキング"); //ブログランキングシートを取得
var Date = sheetBlog.getRange(2,2).getValue();
/* チャットワークに送る文字列を生成 */
var strBody = "過去 30 日間のビーズクリエイトのブログ閲覧数ランキングですよ!;)\n[info][title]ブログページビュー数トップ10 データ取得日:" + Utilities.formatDate(Date, 'JST', 'yyyy/MM/dd') + "(前日から30日間で計測)[/title]"
+ "順位 / ページビュー数 / ブログ記事タイトル" + "\n"
for (var i=1,j=16; i<=10; i++,j++){
strBody += i + "位 " + sheetBlog.getRange(j,3).getValue() + "ビュー " + sheetBlog.getRange(j,2).getValue().substr(12) + "\n"
}
strBody += "[/info]";
/* チャットワークにメッセージを送る */
var cwClient = ChatWorkClient.factory({token: 'XXXXXXXX'}); //チャットワークAPI
cwClient.sendMessage({
room_id: XXXXXXXX, //ルームID
body: strBody
});
}
簡単な解説
冒頭の変数宣言部では、スプレッドシート、シート名、取得日付をそれぞれ代入しています。
チャットワークに送る文字列を strBody とし、 strBody の中にどんどん文字列を入れていきます。
以下はブログランキング数を指定する箇所です。
for (var i=1,j=16; i<=10; i++,j++){
}
今回はランキング上位10位まで取得したいので for文の終了条件を 10 としていますが、必要に応じて変更してください。
19行目、21行目のチャットワークAPIと投稿したいルームIDは、必要に応じて変更します。
実行してみましょう
このスクリプトを実行すると、指定したルームIDに以下のように投稿されるはずです。
自動スケジューリング
あとはスプレッドシートの Analytics アドオンと、GAS スクリプトの自動実行スケジュールを設定するだけです。
Analytics アドオンの自動実行スケジュールはスプレッドシートメニューの
[アドオン] → [Google Analytics] → [Schedule Reports] から、
GAS スクリプトの自動実行スケジュールは GAS スクリプトエディタメニューの
[編集] → [現在のプロジェクトのトリガー] から設定することができます。
上記設定後、チャットワークに任意の時間帯にブログランキングが設定できるようになります。