function generateReport(adClientId) { var today = new Date(); var oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000); var timezone = Session.getTimeZone(); var startDate = Utilities.formatDate(oneWeekAgo, timezone, 'yyyy-MM-dd'); var endDate = Utilities.formatDate(today, timezone, 'yyyy-MM-dd'); var report = AdSense.Reports.generate(startDate, endDate, { filter: ['AD_CLIENT_ID==' + escapeFilterParameter(adClientId)], metric: ['PAGE_VIEWS', 'AD_REQUESTS', 'AD_REQUESTS_COVERAGE', 'CLICKS', 'AD_REQUESTS_CTR', 'COST_PER_CLICK', 'AD_REQUESTS_RPM', 'EARNINGS'], dimension: ['DATE'], sort: ['+DATE'], }); if (report.rows) { var spreadsheet = SpreadsheetApp.create('AdSense Report'); var sheet = spreadsheet.getActiveSheet(); var headers = report.headers.map(function(header) { return header.name; }); sheet.appendRow(headers); sheet.getRange(2, 1, report.rows.length, headers.length) .setValues(report.rows); Logger.log('Report spreadsheet created: %s', spreadsheet.getUrl()); Logger.log('No rows returned.');