Скрипт чистки площадок КМС в Гугл Рекламе

Ниже скрипт, довольно простой по своей логике, но все равно полезный и освобождающий от большого количества рутинной работы. Работает по принципу исключением площадки по названию домена, или части домена. К сожалению не работает для мобильных площадок и каналов Ютуб. Для мобильных площадок скрипт выложу позже. Надеюсь часть кода вордпресс не снесет. Скрипт скоро устареет — но, пока работает.

В var exclude — указываем названия доменов/их часть, в var period — период за который будет осуществляться поиск площадок.(в таблице за последние 30 дней). Обязательно прописываем ярлык в кампании PlacementCleaner и запускаем скрипт. Готово.

 

var exclude = [‘gdz’, ‘reshak’, ‘sochinenje’, ‘sochin’];

var period = ‘LAST_30_DAYS’;

function main() {
var periodString = »;

if (period) {
periodString = «DURING » + period;
Logger.log(periodString);
} else {
Logger.log(‘DURING ALL TIME’);
}
var report = AdWordsApp.report(«SELECT Domain, Clicks, Conversions » +
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) && (row[‘Conversions’] < 1)) {
excludePlacementArray[excludePlacementArray.length] = placement.toString();
}

}

addNegativeKeywordToCampaign(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 addNegativeKeywordToCampaign(negativePlacements) {
var campaignIterator = AdWordsApp.campaigns().withCondition(«LabelNames CONTAINS_ANY [‘PlacementCleaner’]»).get();
while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();

negativePlacements.forEach(function (entry) {
excludePlacement = campaign.display().newPlacementBuilder();
excludePlacement.withUrl(entry.toString()).exclude();
Logger.log(entry.toString() + ‘ — Excluded’);
});
}
}

guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии