GoogleAppScript에서 Google 애널리틱스 방문수/PV 수 얻기 자동화
3853 단어 GoogleAppsScriptGoogleAnalytics
전날 기사는
@iida-hayato 의 Testable Swift, 혹은 우리가 테스트를 쓰지 않는 이유 - Qiita
입니다.
이사의 @cultiva입니다.
평소의 일에서는 해외를 위한 서비스의 제품 매니지먼트를 하고 있습니다.
경위와 개요
우리 팀은 매주 월요일에 방문수와 PV를 보고합니다.
이를 위해 Google Analytics 화면에서 매번 수동으로 데이터를 다운로드하는 것이 번거롭기 때문에,
GoogleSpreadSheet와 GoogleAppScript를 사용하여 자동화했습니다.
사전 준비
도구> 스크립트 편집기> 새 프로젝트 만들기
리소스 > GoogleAPI 사용에서 Google 애널리틱스 API 사용
Google APIs Console에서 Google Analytics API를 [ON]으로 설정
도구> 스크립트 갤러리> Google Analytics Data Fetch Functions를 설치하고 통합 승인
"Analytics 관리 화면> Analytics 설정>보기 설정"에서 확인할 수있는 8 자리 숫자
GoogleAppScript 코드
아래와 같이.
(참고 URL을 조금 변경했을 뿐입니다만...)
//スプレッドシート立ち上げ時に自動的に"処理メニュー"を追加
function onOpen(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
{name: "週次処理", functionName: "runDemo"}
];
ss.addMenu("処理メニュー", menu);
}
//GoogleAnalyticsからデータ取得
function runDemo() {
var profileId = 'secret'; //ビューID
var tableId = 'ga:' + profileId;
var startDate = getLastNdays(7); // 1週間前(7日間)
var endDate = getLastNdays(1);
var optArgs = {
'dimensions': 'ga:date',
};
var results = Analytics.Data.Ga.get(
tableId, // Table id (format ga:xxxxxx).
startDate, // Start-date (format yyyy-MM-dd).
endDate, // End-date (format yyyy-MM-dd).
'ga:visits,ga:pageviews', // Comma seperated list of metrics.
optArgs);
outputToSpreadsheet(results);
}
function getLastNdays(nDaysAgo) {
var today = new Date();
var before = new Date();
before.setDate(today.getDate() - nDaysAgo);
return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd');
}
//スプレッドシートへの出力
function outputToSpreadsheet(results) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// ヘッダー出力
var headerNames = [];
for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
headerNames.push(header.getName());
}
sheet.getRange(1, 1, 1, headerNames.length)
.setValues([headerNames]);
// データの各行を出力
sheet.getRange(2, 1, results.getRows().length, headerNames.length)
.setValues(results.getRows());
}
트리거 설정
이 설정으로 스프레드시트 시작 시
위의 코드를 실행하고,
최근 1주일의 데이터를 취득합니다.
결과
→ 후에는 복사하여 다른 Excel 형식에 데이터를 붙여 넣으면 완성.
기타
트리거는 매주 월요일 아침에 시한 작동하는 구조로 해도 좋았습니다만,
그렇다면 왜 잘 작동하지 않았기 때문에 그만두었습니다.
(getActiveSpreadsheet()와 getActiveSheet()가 잘 작동하지 않기 때문에?)
만약 시한동작이라고 해도, 데이터의 확인을 위해서 결국 spreadsheet를 한 번 열지 않으면 안 되므로,
그렇다면 spreadsheet 시작시 프로그램을 실행하는 것이 좋다는 판단으로
시작할 때 실행하도록 결정했습니다.
참고 URL
Reference
이 문제에 관하여(GoogleAppScript에서 Google 애널리틱스 방문수/PV 수 얻기 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cultiva_k/items/61bf0427d92cba0398d1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)