Как указать диапазон дат для Google Adwords CLICK_PERFORMANCE_REPORT

Я пытаюсь запросить API AdWords (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, триггера: для параметра reportType требуется один день DateRange: CLICK_PERFORMANCE_REPORT, тип: ReportDefinitionError.INVALID_DATE_RANGE_FOR_REPORT

Любая помощь высоко ценится, заранее спасибо

2 ответа

Вам нужно будет использовать DURING и ту же строку даты.

... + 'DURING 20161004,20161004';

Итератор одного дня для скриптов 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);

Работа с датами и временем # Отчетность - скрипты AdWords

Другие вопросы по тегам