Google Ads Script (JavaScript)
/**
* 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 Criteria, CampaignName, AdGroupName, QualityScore, SearchPredictedCtr, CreativeQualityScore, PostClickQualityScore " +
"FROM KEYWORDS_PERFORMANCE_REPORT " +
"WHERE Status = ENABLED AND Impressions > " + CONFIG.MIN_IMPRESSIONS + " " +
"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 = [];
var dateStr = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
while (rows.hasNext()) {
var row = rows.next();
batch.push([
dateStr,
row["Criteria"],
row["CampaignName"],
row["AdGroupName"],
row["QualityScore"],
row["SearchPredictedCtr"],
row["CreativeQualityScore"],
row["PostClickQualityScore"]
]);
}
if (batch.length > 0) {
sheet.getRange(sheet.getLastRow() + 1, 1, batch.length, 8).setValues(batch);
}
}Как это работает
Методология диагностики
- Запрашивает
QualityScore, релевантность объявления, качество посадочной страницы и ожидаемый CTR. - Ежедневно сохраняет срез данных в Google Sheets для оценки влияния редизайнов и тестов текстов.
Инструкция по установке
- Создайте скрипт в Google Ads > Инструменты и настройки > Скрипты.
- Укажите ссылку на Google Таблицу.
- Назначьте ежедневный запуск в 05:00 утра.
Частые вопросы
Сколько строк может хранить таблица?
Google Sheets поддерживает до 10 миллионов ячеек, чего хватает на несколько лет истории.