Slackリアルタイムバズ監視アラート
- Google Analyticsのリアルタイムユーザー数を監視し、しきい値を超えたらSlackにアラートを流すGoogle Apps Script
↓に雛形をメモ。15分おきに実行していた。
function run() {
notify(getUserNumber());
}
function getUserNumber() {
var ID = ***; // view ID (ここをかえる)
var rows = Analytics.Data.Realtime.get('ga:' + ID, 'rt:activeUsers').getRows();
if (rows === undefined) return 0;
console.log("realtime users: " + rows[0][0]);
return rows[0][0];
}
function notify(number) {
var THRESHOLD = 100; // number のしきい値
if (number > THRESHOLD) {
var URL = "https://hooks.slack.com/services/***"; // slack incoming webhook URL (ここをかえる)
UrlFetchApp.fetch(URL, {
method: "POST",
payload: createPayload(getTitle(number, THRESHOLD), getMessage(number, THRESHOLD))
});
}
}
function getTitle(number, threshold) {
return "リアルタイムユーザー数が閾値を超えています";
}
function getMessage(number, threshold) {
return "ユーザー数:" + number + "\n閾値:" + threshold;
}
function createPayload(title, message) {
var COLOR = "#D00";
var TITLE_LINK = "https://analytics.google.com/analytics/web/#/report-home/***"; // タイトルのリンク (ここをかえる)
return JSON.stringify({
attachments: [{
fallback: title,
pretext: title,
color: COLOR,
title: "バズアラート",
title_link: TITLE_LINK,
text: message
}]
});
}