1

我正在尝试查询 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

非常感谢任何帮助,在此先感谢

4

2 回答 2

3

您将不得不使用 DURING 和相同的日期字符串。

... + 'DURING 20161004,20161004';
于 2016-10-26T15:01:28.757 回答
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);

使用日期和时间 #Reporting — AdWords 脚本

于 2016-12-18T10:38:25.653 回答