// the purpose of this script is to pull out the last xx days of campaign data from the display account
var settings = {
url: 'our google sheet url goes here',
sheet:'our google sheet name of tab goes here',
start:3, // Number of days. Start date is this number of days before end date
end:1 // number of days ago from today. 0 = today, 1 = yesterday etc
}
function main() {
getData();
}
function getData() {
var sheet = SpreadsheetApp.openByUrl(settings.url).getSheetByName(settings.sheet);
var dates = getDates(settings.start,settings.end);
var report = AdsApp.report(
'SELECT Url, Cost, Conversions, Clicks, Impressions' +
' FROM URL_PERFORMANCE_REPORT' +
' WHERE Impressions > 0 ' +
'DURING ' + dates.report
)
report.exportToSheet(sheet);
Logger.log('Data from '+dates.prettyStart+' until '+dates.prettyEnd+' URL placements, exported to spreadsheet\n\n'+settings.url);
}
function getDates(start,end) {
var format = 'yyyyMMdd';
var prettyFormat = 'MMM dd yyyy';
var timeZone = AdsApp.currentAccount().getTimeZone();
var today = new Date();
var oneDay = 1000*60*60*24; // milliseconds in a day
var endDate = new Date(today - (oneDay * end));
var formatEndDate = Utilities.formatDate(endDate,timeZone,format);
var prettyEndDate = Utilities.formatDate(endDate,timeZone,prettyFormat);
var startDate = new Date(endDate - ((oneDay * start)-oneDay));
var formatStartDate = Utilities.formatDate(startDate,timeZone,format);
var prettyStartDate = Utilities.formatDate(startDate,timeZone,prettyFormat);
return {report:formatStartDate+','+formatEndDate,prettyStart:prettyStartDate,prettyEnd:prettyEndDate}
}