По просьбам коллег доработал скрипт чистки площадок в КМС. Теперь все площадки будут собираться в список в «Общей библиотеке», который тоже создается автоматически.
Площадки собираются по всему аккаунту, т.е. добавлять ярлыки теперь нет необходимости.
Т.е. теперь нужно только:
- Добавить скрипт и настроить на автоматический запуск
- Применить созданный скриптом список «PlacementCleanerList» к нужным вам кампаниям
Если что, старая версия с описанием принципа работы доступна здесь.
Вот сам код обновленного скрипта:
/* 1) Поиск мест размещений идет по всему аккаунту. Эти исключения мест размещений автоматически общий список "PlacementCleanerList", который создается автоматически. 2) Проверьте, подходят ли вам исключения. Добавьте или удалите ненужные. Можно добавить для исключения и доменную зону. Пример: '.kz' */ var exclude = ['gta', 'dota', 'minecraft', 'resheb', 'referat', 'igry','igra', 'igri', 'game', 'flash', 'apk', 'android', 'mp3', 'fb2', 'dating', 'goroskop', 'astro', 'film', 'video', 'movie', 'book', 'download', 'torrent', 'kino', 'radio', 'weather', 'pesni', 'chords', 'anekdot', 'zodiak', 'minusovk', 'knig', 'recept', 'recipe', 'spongebob', 'barbie', 'skyrim', 'ferma', 'dom2', 'mafia', 'gadani', 'mario', 'epub', '2048', 'dendy', 'sega', 'zuma', 'aforizm', 'citat', 'pdf']; var EXCLUDED_PLACEMENT_LIST_NAME = 'PlacementCleanerList'; /* 3) Выберите период учета статистики или очистите поле, чтобы обработать данные в аккаунте за весь период. Возможные периоды: LAST_7_DAYS LAST_WEEK LAST_MONTH LAST_14_DAYS LAST_30_DAYS LAST_BUSINESS_WEEK THIS_WEEK_SUN_TODAY THIS_WEEK_MON_TODAY LAST_WEEK_SUN_SAT THIS_MONTH ALL_TIME */ var period = 'LAST_30_DAYS'; function main() { var periodString = ''; if(period && period != 'ALL_TIME') { periodString = "DURING " + period; Logger.log(periodString); } else { Logger.log('DURING ALL TIME'); } var report = AdWordsApp.report("SELECT Domain " + "FROM AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT " + periodString); var rows = report.rows(); var excludePlacementArray = []; while (rows.hasNext()) { var row = rows.next(); var placement = row['Domain']; if (containsAny(placement.toString(), exclude)) { excludePlacementArray[excludePlacementArray.length] = placement.toString(); } } addNegativeKeywordToList(excludePlacementArray); } function containsAny(str, substrings) { for (var i = 0; i != substrings.length; i++) { var substring = substrings[i]; if (str.indexOf(substring) != - 1 && str.indexOf('mobileapp::') == -1) { return substring; } } return null; } function addNegativeKeywordToList(negativePlacements) { var excludedPlacementListIterator = AdWordsApp.excludedPlacementLists().withCondition("Name = '" + EXCLUDED_PLACEMENT_LIST_NAME + "'").get(); if (excludedPlacementListIterator.totalNumEntities() == 1) { var excludedPlacementList = excludedPlacementListIterator.next().addExcludedPlacements(negativePlacements); } else { AdWordsApp.newExcludedPlacementListBuilder() .withName(EXCLUDED_PLACEMENT_LIST_NAME) .build().getResult().addExcludedPlacements(negativePlacements); } }
UPD 2021-01-22:
Дмитрий Тонких сделал свою версию скрипта с дополнительными фичами. Подробнее здесь: https://telegra.ph/Google-Ads-Script-Tut-vsyo-kruto-ili-kak-dejstvitelno-bystro-pochistit-ploshchadki-GDN-10-29
2 ответа к “Скрипт автоматической чистки площадок в КМС AdWords. Версия 1.1”
Добрый день. Благодарю за этот скрипт.
А для MCC аккаунта можете сделать?
Да, конечно могу. Но некогда. Вроде как, где-то уже ее делали для MCC, но нужно поискать. Да и вообще, разных модификаций скрипта уже наплодили много 🙂