Изменить диапазон дат отчета AdSense Google Sheets - PullRequest
0 голосов
/ 06 марта 2020

Как я могу изменить этот диапазон дат на определенную c дату?

Насколько я понимаю, в приведенном ниже коде он возвращает последние 7 дней.

Мне нужно определить диапазон дат, Пример: от

03/01/2020 до 03/31 / 2020.

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

https://developers.google.com/apps-script/advanced/adsense

/**
 * Generates a spreadsheet report for an ad client.
 * @param {string} adClientId The ad client ID
 */
function generateReport(adClientId) {
  // Prepare report.
  var today = new Date();
  var oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);

  var timezone = Session.getTimeZone();
  var startDate = Utilities.formatDate(oneWeekAgo, timezone, 'yyyy-MM-dd');
  var endDate = Utilities.formatDate(today, timezone, 'yyyy-MM-dd');

  var report = AdSense.Reports.generate(startDate, endDate, {
    // Specify the desired ad client using a filter.
    filter: ['AD_CLIENT_ID==' + escapeFilterParameter(adClientId)],
    metric: ['PAGE_VIEWS', 'AD_REQUESTS', 'AD_REQUESTS_COVERAGE', 'CLICKS',
             'AD_REQUESTS_CTR', 'COST_PER_CLICK', 'AD_REQUESTS_RPM',
             'EARNINGS'],
    dimension: ['DATE'],
    // Sort by ascending date.
    sort: ['+DATE']
  });

  if (report.rows) {
    var spreadsheet = SpreadsheetApp.create('AdSense Report');
    var sheet = spreadsheet.getActiveSheet();

    // Append the headers.
    var headers = report.headers.map(function(header) {
      return header.name;
    });
    sheet.appendRow(headers);

    // Append the results.
    sheet.getRange(2, 1, report.rows.length, headers.length)
        .setValues(report.rows);

    Logger.log('Report spreadsheet created: %s',
        spreadsheet.getUrl());
  } else {
    Logger.log('No rows returned.');
  }
}

/**
 * Escape special characters for a parameter being used in a filter.
 * @param {string} parameter The parameter to be escaped.
 * @return {string} The escaped parameter.
 */
function escapeFilterParameter(parameter) {
  return parameter.replace('\\', '\\\\').replace(',', '\\,');
}
...