Skip to content

Instantly share code, notes, and snippets.

@cg-method
Last active September 8, 2019 14:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cg-method/88bdca0c092e5f9293d9657cdc3146b3 to your computer and use it in GitHub Desktop.
Save cg-method/88bdca0c092e5f9293d9657cdc3146b3 to your computer and use it in GitHub Desktop.
【GAS】時間別の集計データをSlackに通知する方法
/*########################################################################################################################
# 【Google Analytics】時間別の集計データをSlackに通知する方法
# @author suimin <https://www.cg-method.com/>
########################################################################################################################*/
function postSlackMessage(content) {
var token = PropertiesService.getScriptProperties().getProperty("★Slackのトークン");
var slackApp = SlackApp.create(token);
var options = {
channelId: "#general", //★投稿するchannel名
userName: "Analytics", //★投稿するBotの名前
icon_url: "https://pbs.twimg.com/profile_images/1058753544361103361/lE9J3aQ3_400x400.jpg", //★投稿するBotのアイコン画像
message: content
};
slackApp.postMessage(options.channelId, options.message, {username: options.userName,icon_url:options.icon_url});
}
function getAnalytics(){
var ss = SpreadsheetApp.openByUrl("★スプレッドシートのURL"); //SpreadsheetのURL
var sheet = ss.getSheetByName('★シート名'); //Spreadsheetのシート名(タブの奴)
var todayDate = new Date();
var todayDay = Utilities.formatDate( todayDate, 'Asia/Tokyo', 'yyyy年MM月dd日 hh時mm分');
var day = sheet.getSheetValues(46,1,1,1);
var pv = sheet.getSheetValues(46,4,1,1);
var session = sheet.getSheetValues(46,3,1,1);
var pageSession = Math.floor(pv/session*100)/100;
var user = sheet.getSheetValues(46,2,1,1);
postSlackMessage(todayDay + "の集計結果だよ" + "\n```PV: " + pv + "\nUser: " + user+ "\nPage/Session: " + pageSession + "```");
}
function SetTrigger1() {
var triggerDay = new Date();
triggerDay.setHours(9);
triggerDay.setMinutes(00);
ScriptApp.newTrigger("getAnalytics").timeBased().at(triggerDay).create();
}
function SetTrigger2() {
var triggerDay = new Date();
triggerDay.setHours(12);
triggerDay.setMinutes(00);
ScriptApp.newTrigger("getAnalytics").timeBased().at(triggerDay).create();
}
function SetTrigger3() {
var triggerDay = new Date();
triggerDay.setHours(15);
triggerDay.setMinutes(00);
ScriptApp.newTrigger("getAnalytics").timeBased().at(triggerDay).create();
}
function SetTrigger4() {
var triggerDay = new Date();
triggerDay.setHours(18);
triggerDay.setMinutes(00);
ScriptApp.newTrigger("getAnalytics").timeBased().at(triggerDay).create();
}
function SetTrigger5() {
var triggerDay = new Date();
triggerDay.setHours(21);
triggerDay.setMinutes(00);
ScriptApp.newTrigger("getAnalytics").timeBased().at(triggerDay).create();
}
function SetTrigger6() {
var triggerDay = new Date();
triggerDay.setHours(24);
triggerDay.setMinutes(00);
ScriptApp.newTrigger("getAnalytics").timeBased().at(triggerDay).create();
}
function deleteTrigger() {
var triggers = ScriptApp.getProjectTriggers();
for(var i=0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() == "getAnalytics") {
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment