Google Ads Script (AWQL) получает пользовательский диапазон дат для отчетов - PullRequest
0 голосов
/ 06 июня 2019

Мне нужно получить отчет об объявлениях Google, который будет получать данные с фиксированной даты (28 мая) до сегодняшнего дня, и отправлять данные в электронную таблицу. Я не могу понять, как определить диапазон дат для этого запроса

Я пытался поискать в Google и читать документацию Google, но не могу понять

function main() {
  var spreadsheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/XXX');
  var sheet = spreadsheet.getSheetByName('Data')  
  var report = AdsApp.report(
    'SELECT Date, CampaignName, AverageFrequency, Impressions, ImpressionReach ' +
    'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
    'WHERE  Impressions > 0 ' +
    'DURING 20190528,TODAY');

  sheet.clearContents();
  report.exportToSheet(sheet);
}

Мне нужно использовать сегодня как дату окончания вместо даты окончания кампании в качестве даты окончания этого запроса, так как я пытаюсь выбрать частоту в качестве показателя, и он просто покажет пустые значения, если дата окончания находится в будущее.

Пожалуйста, дайте мне знать, если есть способ заставить запрос работать. Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 июля 2019

Диапазоны дат для отчета определяются в предложении DURING запроса. Диапазоны дат можно указывать двумя разными способами:

  1. Пользовательский диапазон дат с использованием обычного синтаксиса AWQL, например:

    SELECT Id, Criteria, AdGroupName

    ОТ KEYWORDS_PERFORMANCE_REPORT

    В ТЕЧЕНИЕ 20190101,20190325

  2. Тип диапазона дат, например:

    SELECT Id, Criteria, AdGroupName

    FROM KEYWORDS_PERFORMANCE_REPORT

    DAST_ LAST_7_DAYS

В вашем случае вы должны использовать:

В ТЕЧЕНИЕ 20190528, 20190723

Для вас нет другого выбора.

0 голосов
/ 07 июня 2019

Ключевое слово TODAY действует как «полный диапазон» свойства DURING и не может использоваться в качестве конечной части (насколько я знаю).Следующее должно работать.

function main() {
    var endDate = new Date();
    var endRange = Utilities.formatDate(endDate, 'America/Chicago', 'YYYYMMdd');

    var spreadsheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/XXX');
    var sheet = spreadsheet.getSheetByName('Data')  
    var report = AdsApp.report(
        'SELECT Date, CampaignName, AverageFrequency, Impressions, ImpressionReach ' +
        'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
        'WHERE  Impressions > 0 ' +
        'DURING 20190528,' + endRange);

    sheet.clearContents();
    report.exportToSheet(sheet);
}
...