Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Automatically updating a Google Sheet with data from Google Analytics for regular reporting
function fetchMyQuery() {
// our query object
var query = {
"optionalArgs": {
"dimensions": "ga:source",
"filters": "ga:medium==referral",
"sort": "-ga:pageviews",
"max-results": "50"
"ids": "ga:82426939",
"metrics": "ga:pageviews,ga:sessionDuration,ga:exits",
"start-date": "7daysAgo",
"end-date": "yesterday"
// one line! get GA results
var results = Analytics.Data.Ga.get(query.ids, query['start-date'], query['end-date'], query.metrics, query.optionalArgs);
// get a Sheet object - you can replace the sheet name with any other named sheet in your spreadsheet
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
outputToSpreadsheet(results, sheet);
function outputToSpreadsheet(results, sheet) {
// Print the headers.
var headerNames = [];
for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
sheet.getRange(1, 1, 1, headerNames.length)
// Print the rows of data.
sheet.getRange(2, 1, results.getRows().length, headerNames.length)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.