-
-
Save cg-method/88bdca0c092e5f9293d9657cdc3146b3 to your computer and use it in GitHub Desktop.
【GAS】時間別の集計データをSlackに通知する方法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*######################################################################################################################## | |
# 【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