Skip to content

Instantly share code, notes, and snippets.

@yukihirai0505
Last active March 8, 2016 04:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yukihirai0505/80e75c5493698a85f927 to your computer and use it in GitHub Desktop.
Save yukihirai0505/80e75c5493698a85f927 to your computer and use it in GitHub Desktop.
GASでGoogleAnalyticsのPV・UUを取得してスプレッドシートにセットするスクリプト
/**
アナリティクスからデータを取得してくる
@param startDate 開始日
@param endDate 終了日
@param optArgs metricsやfilterなど
@return analyticsの結果
**/
function getAnalyticsData(startDate, endDate, optArgs) {
var profileId = [ビューID];
var tableId = 'ga:' + profileId;
var startDate = startDate;
var endDate = endDate;
var results = Analytics.Data.Ga.get(
tableId,
startDate,
endDate,
'ga:pageviews,ga:visitors', // metrics ga:pageviews(ページビュー数),ga:visitors(UU数)
optArgs);
return results;
}
/**
PVとUUのデータを取得してスプレッドシートにセット
@param sh シート
@param startDate 開始日
@param endDate 終了日
@param columnNum カラム番号
**/
function setTotalPVAndUU(sh, startDate, endDate, columnNum) {
var pvColumn = sh.getRange(2, columnNum);
var uuColumn = sh.getRange(3, columnNum);
var pcColumn = sh.getRange(6, columnNum);
var spColumn = sh.getRange(7, columnNum);
var totalArgs = {};
var totalAnalyticsData = getAnalyticsData(startDate, endDate, totalArgs).rows[0];
var mobileArgs = {
'filters': 'ga:deviceCategory==mobile'
};
var mobileAnalyticsData = getAnalyticsData(startDate, endDate, mobileArgs).rows[0];
var totalPV = Number(totalAnalyticsData[0]);
var totalUU = Number(totalAnalyticsData[1]);
var spUU = Number(mobileAnalyticsData[1]);
var pcUU = totalUU - spUU;
pvColumn.setValue(totalPV);
uuColumn.setValue(totalUU);
spColumn.setValue(spUU);
pcColumn.setValue(pcUU);
}
/**
指定した値をPATHに含むUUのデータを取得してスプレッドシートにセット
@param sh シート
@param startDate 開始日
@param endDate 終了日
@param columnNum カラム番号
**/
function setUUFromPath(sh, startDate, endDate, columnNum, path) {
var totalArgs = {
'filters': 'ga:pagePath=~.*' + path + '.*'
};
var totalAnalyticsData = getAnalyticsData(startDate, endDate, totalArgs).rows[0];
var mobileFromArgs = {
/* [,]でつなぐとOR検索で[;]でつなぐとAND検索 */
'filters': 'ga:deviceCategory==mobile;' + 'ga:pagePath=~.*' + path + '.*'
};
var mobileAnalyticsData = getAnalyticsData(startDate, endDate, mobileFromArgs).rows[0];
if (path === '\?mag-from') {
var uuColumn = sh.getRange(21, columnNum);
var pcColumn = sh.getRange(22, columnNum);
var spColumn = sh.getRange(23, columnNum);
var totalUU = Number(totalAnalyticsData[1]);
var spUU = Number(mobileAnalyticsData[1]);
var pcUU = totalUU - spUU;
uuColumn.setValue(totalUU);
pcColumn.setValue(pcUU);
spColumn.setValue(spUU);
}
if (path === '\?app-from=push') {
var uuColumn = sh.getRange(24, columnNum);
var totalUU = Number(totalAnalyticsData[1]);
uuColumn.setValue(totalUU);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment