Чистка мест размещения

Материал из Raskrutka
Перейти к: навигация, поиск

Поиск мест размещений идет по всему аккаунту. Эти исключения мест размещений добавляются в общий список "PlacementCleanerList", который создается автоматически.

1. Скопируйте приведенный ниже код в Массовые операции Adwords

2. Проверьте, подходят ли вам исключения. Добавьте или удалите ненужные. Можно добавить для исключения и доменную зону. Пример: '.kz'


var exclude = ['gta', 'dota', 'minecraft', 'resheb', 'referat', 'igry','igra', 'igri', 'game', 'flash', 'apk', 'android', 'mp3', 'fb2', 'dating', 'goroskop', 'astro', 'video', 'movie', 'book', 'download', 'torrent', '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';

/* 
Выберите период учета статистики или очистите поле, чтобы обработать данные в аккаунте за весь период.

Возможные периоды:
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_7_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);
 }
 
}