Перейти к содержимому

История Quality Score и анализ компонентов в Google Sheets

Столбец Quality Score в Google Ads показывает текущую оценку, а дневные значения видны только в исторических столбцах с разбивкой по дням. Скрипт дописывает в Google Таблицу ежедневную строку по каждому ключевому слову с оценкой, ожидаемым CTR, релевантностью и качеством страницы, и история становится одной таблицей, которую можно сопоставить с вашими изменениями.

Скрипт Google Ads
/**
 * Goodlabs Google Ads Script: Quality Score Tracker
 * Schedule: Daily at 05:00
 */
var CONFIG = {
  SPREADSHEET_URL: "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit",
  MIN_IMPRESSIONS: 10
};

function main() {
  var report = AdsApp.report(
    "SELECT segments.date, ad_group_criterion.keyword.text, campaign.name, ad_group.name, " +
    "metrics.historical_quality_score, metrics.historical_search_predicted_ctr, " +
    "metrics.historical_creative_quality_score, metrics.historical_landing_page_quality_score " +
    "FROM keyword_view " +
    "WHERE ad_group_criterion.status = 'ENABLED' " +
    "AND metrics.impressions > " + CONFIG.MIN_IMPRESSIONS + " " +
    "AND segments.date DURING YESTERDAY"
  );

  var ss = SpreadsheetApp.openByUrl(CONFIG.SPREADSHEET_URL);
  var sheet = ss.getSheetByName("QS_Log") || ss.insertSheet("QS_Log");
  if (sheet.getLastRow() === 0) {
    sheet.appendRow(["Date", "Keyword", "Campaign", "Ad Group", "Quality Score", "Expected CTR", "Ad Relevance", "Landing Page Exp"]);
  }

  var rows = report.rows();
  var batch = [];

  while (rows.hasNext()) {
    var row = rows.next();
    batch.push([
      row["segments.date"],
      row["ad_group_criterion.keyword.text"],
      row["campaign.name"],
      row["ad_group.name"],
      row["metrics.historical_quality_score"],
      row["metrics.historical_search_predicted_ctr"],
      row["metrics.historical_creative_quality_score"],
      row["metrics.historical_landing_page_quality_score"]
    ]);
  }

  if (batch.length > 0) {
    sheet.getRange(sheet.getLastRow() + 1, 1, batch.length, 8).setValues(batch);
  }
}

Как это работает

  1. Запрашивает в keyword_view вчерашние historical_quality_score, historical_search_predicted_ctr (ожидаемый CTR), historical_creative_quality_score (релевантность объявления) и historical_landing_page_quality_score (качество посадочной страницы) по включённым ключевым словам, у которых в тот день больше MIN_IMPRESSIONS показов.
  2. Дописывает в Google Таблицу по одной строке на ключевое слово с датой дня, к которому относятся оценки, по часовому поясу аккаунта, и правка посадочной или объявления видна в истории как ступенька.

Установка

  1. В Google Ads откройте Инструменты > Массовые действия > Скрипты и создайте скрипт.
  2. Вставьте код и укажите URL Google Таблицы.
  3. Поставьте ежедневный запуск в 05:00.

Вопросы

Сколько строк может хранить таблица?

В Google Таблице до 10 миллионов ячеек. При восьми столбцах это около 1,2 миллиона строк «ключ-день»: годы для небольшого аккаунта, месяцы для крупного.

Нужен скрипт под ваш аккаунт?

Пишем скрипты Google Ads, настраиваем server-side GA4 и собираем отчёты под конкретный вопрос.