将 Google 广告数据导出到特定单元格范围
Exporting Google Ads Data To Specific Cell Range
我有一个广告脚本,可以根据规则将数据导出到 sheet。
但是,我只想替换某个单元格范围内的数据,例如 Google sheet.
中的 'A2:J'
我知道如何在 spreadsheetApp 脚本中执行此操作,但 unsure/struggling 在广告 script/AWQL 中执行此操作。
我已经在下面粘贴了脚本的基础知识,但确实可以深入了解是否可以以及如何推送到特定范围。
function main(){
// Put your Google data sheet here
var sheetURL = '';
// Enter the tab name here
var tabName = '';
var QUERIES = [{'query' : 'SELECT Date, DayOfWeek, HourOfDay, Device, CampaignName, Impressions, Clicks, Cost, Conversions, ConversionValue ' +
'FROM CAMPAIGN_PERFORMANCE_REPORT ' +
'WHERE Impressions > 0 ' +
'DURING TODAY',
//'DURING ' + dateRanges,
'spreadsheetUrl' : sheetURL,
'tabName' : tabName,
'reportVersion' : 'v201809'
}
];
//This is to gather the above query and push it to the spreadsheet stated above
for(var i in QUERIES) {
var queryObject = QUERIES[i];
var query = queryObject.query;
var spreadsheetUrl = queryObject.spreadsheetUrl;
var tabName = queryObject.tabName;
var reportVersion = queryObject.reportVersion;
//Logger.log(spreadsheetUrl + " " + query);
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
var sheet = spreadsheet.getSheetByName(tabName);
var report = AdWordsApp.report(query, {apiVersion: reportVersion});
report.exportToSheet(sheet);
}
}
答案:
基本上,无法直接将report
导出到sheet的一定范围内。正如您在 official docs 中看到的那样,exportToSheet(sheet)
仅接受一个 sheet
作为参数,并且没有其他可选参数来实现您的目的。
解决方法:
正如 Cooper 和您自己评论的那样,您可以将报告导出到另一个 sheet,然后从那里 copy the desired range 导出您的最终 sheet。
如果你不想一直有这个额外的sheet,我建议在它被复制到最终的sheet之后creating a new sheet every time you use exportTosheet
, exporting the report to this newly created sheet, and finally deleting this sheet。
此外,自 2018 年 11 月起,您应该使用 AdsApp
而不是 AdWordsApp
,如 here 所述。
我有一个广告脚本,可以根据规则将数据导出到 sheet。
但是,我只想替换某个单元格范围内的数据,例如 Google sheet.
中的 'A2:J'我知道如何在 spreadsheetApp 脚本中执行此操作,但 unsure/struggling 在广告 script/AWQL 中执行此操作。
我已经在下面粘贴了脚本的基础知识,但确实可以深入了解是否可以以及如何推送到特定范围。
function main(){
// Put your Google data sheet here
var sheetURL = '';
// Enter the tab name here
var tabName = '';
var QUERIES = [{'query' : 'SELECT Date, DayOfWeek, HourOfDay, Device, CampaignName, Impressions, Clicks, Cost, Conversions, ConversionValue ' +
'FROM CAMPAIGN_PERFORMANCE_REPORT ' +
'WHERE Impressions > 0 ' +
'DURING TODAY',
//'DURING ' + dateRanges,
'spreadsheetUrl' : sheetURL,
'tabName' : tabName,
'reportVersion' : 'v201809'
}
];
//This is to gather the above query and push it to the spreadsheet stated above
for(var i in QUERIES) {
var queryObject = QUERIES[i];
var query = queryObject.query;
var spreadsheetUrl = queryObject.spreadsheetUrl;
var tabName = queryObject.tabName;
var reportVersion = queryObject.reportVersion;
//Logger.log(spreadsheetUrl + " " + query);
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
var sheet = spreadsheet.getSheetByName(tabName);
var report = AdWordsApp.report(query, {apiVersion: reportVersion});
report.exportToSheet(sheet);
}
}
答案:
基本上,无法直接将report
导出到sheet的一定范围内。正如您在 official docs 中看到的那样,exportToSheet(sheet)
仅接受一个 sheet
作为参数,并且没有其他可选参数来实现您的目的。
解决方法:
正如 Cooper 和您自己评论的那样,您可以将报告导出到另一个 sheet,然后从那里 copy the desired range 导出您的最终 sheet。
如果你不想一直有这个额外的sheet,我建议在它被复制到最终的sheet之后creating a new sheet every time you use exportTosheet
, exporting the report to this newly created sheet, and finally deleting this sheet。
此外,自 2018 年 11 月起,您应该使用 AdsApp
而不是 AdWordsApp
,如 here 所述。