我正在尝试查询adwords api(v201603)并使用/扩展所提供的Java示例。
我遇到的问题是能够为CLICK_PERFORMANCE_REPORT报告指定下载报告数据的特定日期。此报告仅限于一次返回一天的数据(最多90天)。
我可以使用说明符获取今天和昨天的数据:ReportDefinitionDateRangeType.TODAY和ReportDefinitionDateRangeType.YESTERDAY,但我真正需要做的是能够指定过去90天内的特定日期以获取尽可能多的历史数据尽可能。
我尝试了以下内容:
DateRange dr = new DateRange();
dr.setMin("20160401");
dr.setMax("20160402");
selector.setDateRange(dr);
reportDefinition.setDateRangeType(ReportDefinitionDateRangeType.CUSTOM_DATE);
reportDefinition.setReportType(ReportDefinitionReportType.CLICK_PERFORMANCE_REPORT);
reportDefinition.setDownloadFormat(DownloadFormat.CSV);
使用和不使用自定义日期说明符 - 并且会出现以下错误:
由于以下原因未下载报告:HTTP响应代码:400,触发:报告类型需要一天DateRange:CLICK_PERFORMANCE_REPORT,类型:ReportDefinitionError.INVALID_DATE_RANGE_FOR_REPORT
任何帮助都非常感谢,提前感谢
答案 0 :(得分:2)
您将不得不使用DURING和相同的日期字符串。
... + 'DURING 20161004,20161004';
答案 1 :(得分:0)
AdWords脚本的单日迭代器CLICK_PERFORMANCE_REPORT:
var start = new Date("12/01/2016");
var end = new Date("12/18/2016");
while(start < end){
var newDate = start.setDate(start.getDate() + 1);
start = new Date(newDate);
singleDay = start.toISOString().substring(0, 10).replace(/-/g,"");
console.log(singleDay);
}
Utilities.formatDate(start, timeZone, "yyyyMMdd");
将日期对象格式化为8位整数,因此:
singleDay = Utilities.formatDate(start, timeZone, "yyyyMMdd");
在singleDay
'DURING ' + singleDay + ',' + singleDay);