Skip to content

Instantly share code, notes, and snippets.

@walkergv
Created January 29, 2015 05:42
Show Gist options
  • Save walkergv/e56a4d9cfd3686e59abe to your computer and use it in GitHub Desktop.
Save walkergv/e56a4d9cfd3686e59abe to your computer and use it in GitHub Desktop.
Pass in your Google Analytics Profile Id and use GA Reporting API to get information and output to spreadsheet.
function runReport(profileId) {
var today = new Date();
var oneWeekAgo = new Date(today.getTime() - 30 * 24 * 60 * 60 * 1000);
var startDate = Utilities.formatDate(oneWeekAgo, Session.getScriptTimeZone(),
'yyyy-MM-dd');
var endDate = Utilities.formatDate(today, Session.getScriptTimeZone(),
'yyyy-MM-dd');
var tableId = 'ga:' + profileId;
var metric = 'ga:visits';
var options = {
'dimensions': 'ga:medium,ga:source',
'sort': '-ga:visits,ga:source',
'max-results': 25
};
var report = Analytics.Data.Ga.get(tableId, startDate, endDate, metric,
options);
if (report.rows) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the headers.
var headers = report.columnHeaders.map(function(columnHeader) {
return columnHeader.name;
});
sheet.appendRow(headers);
// Append the results.
sheet.getRange(2, 1, report.rows.length, headers.length)
.setValues(report.rows);
Logger.log('Report spreadsheet created: %s',
spreadsheet.getUrl());
} else {
Logger.log('No rows returned.');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment