Формирование фраз с разными видами соответствия
function main() {
/*
Режимы обработки:1. Добавляет новую фразу с плюсом С УДАЛЕНИЕМ исходного
купить дом ->+купить +дом
2. Сделать копию фразы с плюсами БЕЗ УДАЛЕНИЯ исходного
купить дом -> купить дом
+купить +дом
3. Сделать копию фразы в 3 вариациях С УДАЛЕНИЕМ исходного
купить дом ->+купить +дом
"купить дом"
[купить дом]
4. Сделать копию фразы в 3 вариациях БЕЗ УДАЛЕНИЯ исходного
купить дом -> купить дом
+купить +дом
"купить дом"
[купить дом]
*///! Веберите режим обработки:
var TYPE =4;
//! Обрабатывать фразы, у которых кликов (за посл. месяц) БОЛЬШЕ, чем:
var CLICKS =100;
var adGroupIterator = AdWordsApp.adGroups()
.withCondition("CampaignStatus = ENABLED")
.withCondition("CampaignName DOES_NOT_CONTAIN_IGNORE_CASE 'КМС'")
.withCondition("AdGroupStatus = ENABLED")
.get();
Logger.log('Всего найдено активных групп: ' + adGroupIterator.totalNumEntities());
while (adGroupIterator.hasNext()) {
var adGroup = adGroupIterator.next();
var newKeywords = [];
Logger.log('Группа: ' + adGroup.getName());
var keywordIterator = adGroup.keywords().withCondition("Status = ENABLED").get();
while (keywordIterator.hasNext()) {
var keyword = keywordIterator.next();
var kname = keyword.getText();
//пропускаем кейворды если кликов за посл 30 дней меньше CLICKS (указан выше)
if (keyword.getStatsFor('LAST_30_DAYS').getClicks() <= CLICKS) continue;
if (kname.indexOf('+') ==-1 &&
kname.indexOf('"') ==-1 &&
kname.indexOf('[') ==-1 &&
kname.indexOf(']')) {
Logger.log('Найден ключ без спецсимволов: ' + kname);
if (TYPE ==1|| TYPE ==2|| TYPE ==3|| TYPE ==4) {
newKeywords.push('+'+ kname.replace(//g, ' +').replace(/-/g, ' +'));
}
if (TYPE ==3|| TYPE ==4) {
newKeywords.push('"'+ kname +'"'.replace(/-/g, ' '));
newKeywords.push('['+ kname +']'.replace(/-/g, ' '));
}
if (TYPE ==1|| TYPE ==3) {
keyword.remove();
Logger.log('Удален!');
}
}
}
if (newKeywords.length) Logger.log('Добавлены следующие новые ключи:');
for (var i =0; i < newKeywords.length; i++) {
Logger.log(newKeywords[i]);
var keywordOperation = adGroup.newKeywordBuilder()
.withText(newKeywords[i])
.build();
//var keyword = keywordOperation.getResult();
//тут можно новому keyword указать цену и прочее,
//а можно дождать когда запустится скрипт-биддер и всё сделает сам
}
}
}