GA와 redash의 숫자를 GAS로 함께 취급
하고 싶은 일
사용하는 것
절차
1. GA 수치를 얻기 위한 스프레드시트 준비
스프레드시트에는 GA 애드온이 제공되므로 먼저 필요한 수치를 얻습니다.
2. 일별로 집계할 스프레드시트 준비
1에서 만든 스프레드시트의 필요한 부분을 참조합니다.
※화면의 IMPORTRANGE 부분 참조
※redash의 시트는 3 이행으로 설명합니다.
3. GoogleAppScript에서 필요한 처리 구현
스프레드시트 메뉴에서 도구 > 스크립트 편집기를 선택하여 편집기를 시작합니다.
여기에서 작성한 스크립트를 매일 정해진 시간에 실행합니다.
function myFunction() {
// GA
var ga_message = gaReport();
// re:dash
var redash_message = redashReport()
// Slackへの通知
var data = {
"channel": "#test",
"username": "muscle",
"text": ga_message + "\n" + redash_message,
"icon_emoji": ":icon:"
};
var payload = JSON.stringify(data);
var options = {
"method":"POST",
"payload":payload
};
var res = UrlFetchApp.fetch("https://hooks.slack.com/services/hogehoge", options);
}
// GAの数値を取得
function gaReport() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GA数値集約");
var data = sheet.getDataRange().getValues();
// 前日のデータ
var date = Utilities.formatDate(data[1][0], 'Asia/Tokyo', 'M月d日');
var dl = data[1][1];
var dau = data[1][2];
var mau = data[1][3];
// 前々日のデータ
var old_dl = data[2][1];
var old_dau = data[2][2];
var old_mau = data[2][3];
var ga_message = "おはようございます!" + date + "のレポートをお伝えします!\n\n";
ga_message += "DL数は" + dl + "(前日比" + Math.floor(dl/old_dl*100) + "%)\n";
ga_message += "DAUは" + dau + "(前日比" + Math.floor(dau/old_dau*100) + "%)\n";
ga_message += "MAU数は" + mau + "(前日比" + Math.floor(mau/old_mau*100) + "%)\n";
return ga_message;
}
// redashの数値を取得
function redashReport() {
// redashのクエリ番号
var query_nums = [
1, // 前日売上
2, // 当月売上
3 // チケットの利用枚数
];
// basic認証回避
var headers = {'Authorization' : "Basic hogehoge"};
var params = {
'headers': headers,
'method': "get"
};
// sheet取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("re:dash数値集約");
var redash_message = "";
// 新しく入力する行数を取得
var new_row = sheet.getLastRow() + 1;
var data_start_column = 2;
var date = new Date();
sheet.getRange(new_row, 1).setValue((date.getFullYear()) + "/" + (date.getMonth() + 1) + "/" + (date.getDate() - 1));
query_nums.forEach(function(num) {
var url = "https://redash.jp/api/queries/" + num + "/results.json?api_key=hogehoge";
var response = UrlFetchApp.fetch(url, params);
var ret = JSON.parse(response.getContentText());
var row = ret.query_result.data.rows[0];
for (key in row) {
redash_message += key + "は" + row[key] + "\n";
// スプレッドシートにデータ書き込み
sheet.getRange(new_row, data_start_column).setValue(row[key]);
}
data_start_column++;
});
return redash_message;
}
요약
GAS는 간편하게 구현할 수 있는 반면 어디에서 무엇이 움직이고 있는지 모르거나 배포 절차가 번거롭거나 팀에서 개발할 때 몇 가지 문제가 될 수 있습니다.
그렇다고는 해도, GAS를 git 관리하는 방법등은 존재하므로, 속인화하지 않게 제대로 룰을 사용해 운용해 가고 싶네요.
Reference
이 문제에 관하여(GA와 redash의 숫자를 GAS로 함께 취급), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/musclemikiya/items/025c17ce25a8c2d84a38텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)