Скрипт автоматической чистки площадок в КМС AdWords. Версия 1.1

По просьбам коллег доработал скрипт чистки площадок в КМС. Теперь все площадки будут собираться в список в «Общей библиотеке», который тоже создается автоматически.

Площадки собираются по всему аккаунту, т.е. добавлять ярлыки теперь нет необходимости.

Т.е. теперь нужно только:

  1. Добавить скрипт и настроить на автоматический запуск
  2. Применить созданный скриптом список «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);
 }
 
}

 

Алексей Ярошенко

Интернет-маркетолог. Сертифицированный специалист по Google AdWords, Google Analytics и Яндекс.Директ. Сертифицированный тренер Google в Беларуси.