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

Поиск мусорных площадок в КМС и YouTube

Читает, где показывались ваши объявления в КМС и YouTube за 14 дней, и пишет в лог площадки, у которых URL совпадает со стоп-шаблонами (игры, детское, apk, тексты песен и другие) и нет конверсий. Исключения по этому списку добавляются вручную.

Скрипт Google Ads
/**
 * Goodlabs Google Ads script: junk placement finder
 * Schedule: Daily at 04:00
 */
var CONFIG = {
  JUNK_PATTERNS: [
    "anonymous.google", "game", "puzzle", "arcade", "kids", "baby",
    "cartoon", "lyrics", "apk", "mod", "cheats", "download", "free"
  ]
};

function main() {
  Logger.log("Starting Goodlabs Placement Cleaner...");
  var report = AdsApp.report(
    "SELECT group_placement_view.target_url, campaign.name, metrics.impressions, " +
    "metrics.clicks, metrics.cost_micros, metrics.conversions " +
    "FROM group_placement_view " +
    "WHERE metrics.impressions > 20 " +
    "AND segments.date DURING LAST_14_DAYS"
  );

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

  while (rows.hasNext()) {
    var row = rows.next();
    var url = String(row["group_placement_view.target_url"] || "").toLowerCase();
    var imps = Number(row["metrics.impressions"] || 0);
    var convs = Number(row["metrics.conversions"] || 0);
    var cost = Number(row["metrics.cost_micros"] || 0) / 1e6;

    var isJunk = false;
    for (var i = 0; i < CONFIG.JUNK_PATTERNS.length; i++) {
      if (url.indexOf(CONFIG.JUNK_PATTERNS[i]) !== -1) {
        isJunk = true;
        break;
      }
    }

    if (isJunk && convs === 0) {
      junkList.push({ url: url, campaign: row["campaign.name"], cost: cost, imps: imps });
    }
  }

  Logger.log("Found " + junkList.length + " junk placements to exclude.");
  junkList.forEach(function(p) {
    Logger.log(p.url + " | " + p.campaign + " | cost " + p.cost.toFixed(2) + " | " + p.imps + " impressions");
  });
}

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

  1. Запрашивает group_placement_view, данные отчёта «Где показывались объявления», по площадкам с более чем 20 показами в одной группе объявлений за 14 дней. Площадка, прошедшая порог в нескольких группах, попадает в лог по разу на группу.
  2. Сверяет URL каждой площадки с JUNK_PATTERNS: game, puzzle, arcade, kids, baby, cartoon, lyrics, apk, mod, cheats, download, free и anonymous.google.
  3. Оставляет совпадения без конверсий и пишет каждое в лог скрипта с кампанией, расходом и показами. Сам скрипт исключений не добавляет.

Установка

  1. В Google Ads откройте Инструменты > Массовые действия > Скрипты и создайте скрипт.
  2. Поправьте JUNK_PATTERNS, если для вашей ниши нужны другие слова.
  3. Авторизуйте и поставьте ежедневный запуск в 04:00.

Вопросы

Работает ли это для Performance Max?

Нет. Площадок PMax нет в group_placement_view. Они лежат в performance_max_placement_view, где есть только показы, без расхода и конверсий, так что фильтру по нулевым конверсиям нечего проверять.

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

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