Теперь AdWords – это Google Реклама. Новое название отражает, что сервис включает в себя различные рекламные инструменты в поисковой и контекстно-медийной сетях, на YouTube и не только. Подробнее

AdWords
Сейчас в сети: 221
Сейчас в сети: 221
Советы и вопросы по использованию скриптов AdWords
Подсказки
star_border
Ответить

Скрипт переноса минус слов из самого ключа в исключения

Ведущий участник

При импорте кампаний из Директа или из сервисов по перекрестной минусовке слов, в ключах содержатся минус слова. Такие минус слова довольно странно работают, инструмент поиска повторяющихся ключевых слов не находит их одинаковыми с основным ключом без минус слов. И часто такие фразы имеют статус "Мало запросов" хотя их становиться не мало, если перенести минус слова из самого ключа в "ключевые слова, исключаемый критерий".
Собственно это и делает скрипт ниже. Проходит по всем группам объявлений, и если в самом ключе есть слова со знаком минус впереди, то данный ключ удаляется, вместо него создается новый без минус слов, а все минус слова заносятся в исключаемый критерий группы.
Только учусь писать скрипты и буду рад замечаниям и предложениям по улучшению.

2 Ответ экспертаverified_user
1 УТВЕРЖДЕННОЕ РЕШЕНИЕ

Утвержденные решения
Лучший ответ.
Решение
Утвердил автор темы Андрей Москалец
сентября 2015

Re: Скрипт переноса минус слов из самого ключа в исключения

Ведущий участник
function main() {
   var adGroupIterator = AdWordsApp.adGroups()
   .withCondition("CampaignStatus = ENABLED")
   .withCondition("AdGroupStatus = ENABLED")
   .get();
  Logger.log('Всего найдено активных групп: ' + adGroupIterator.totalNumEntities());
  while (adGroupIterator.hasNext()) {
    var adGroup = adGroupIterator.next();
    Logger.log('Группа: ' + adGroup.getName());
 
     var keywordIterator = adGroup.keywords().get();
    while (keywordIterator.hasNext()) {
      var keyword = keywordIterator.next();
      Logger.log('Ключ: ' + keyword.getText());
      if (~keyword.getText().indexOf(" -")) {
        Logger.log('Есть минус слова!: ' + keyword.getText());
        var adKeys=keyword.getText().split(" -");
        //удаляем старый ключ
        keyword.remove();
         Logger.log('Ключ: ' + keyword.getText()+ " удален");
        //добавляем ключ без минусов
        var keywordOperation = adGroup.newKeywordBuilder()
        .withText(adKeys[0])
        .build();
        Logger.log('Добавлен ключ: ' + adKeys[0]);
        var keyword = keywordOperation.getResult();
        // Добавляем исключения
        var i=1;
        while (i < adKeys.length) {
          adGroup.createNegativeKeyword(adKeys[i]);
           Logger.log('Добавлено исключение: ' + adKeys[i]);
          i++;
        };

      }
    }

  };

}

Просмотреть решение в исходном сообщении

Лучший ответ.
Решение
Утвердил автор темы Андрей Москалец
сентября 2015

Re: Скрипт переноса минус слов из самого ключа в исключения

Ведущий участник
function main() {
   var adGroupIterator = AdWordsApp.adGroups()
   .withCondition("CampaignStatus = ENABLED")
   .withCondition("AdGroupStatus = ENABLED")
   .get();
  Logger.log('Всего найдено активных групп: ' + adGroupIterator.totalNumEntities());
  while (adGroupIterator.hasNext()) {
    var adGroup = adGroupIterator.next();
    Logger.log('Группа: ' + adGroup.getName());
 
     var keywordIterator = adGroup.keywords().get();
    while (keywordIterator.hasNext()) {
      var keyword = keywordIterator.next();
      Logger.log('Ключ: ' + keyword.getText());
      if (~keyword.getText().indexOf(" -")) {
        Logger.log('Есть минус слова!: ' + keyword.getText());
        var adKeys=keyword.getText().split(" -");
        //удаляем старый ключ
        keyword.remove();
         Logger.log('Ключ: ' + keyword.getText()+ " удален");
        //добавляем ключ без минусов
        var keywordOperation = adGroup.newKeywordBuilder()
        .withText(adKeys[0])
        .build();
        Logger.log('Добавлен ключ: ' + adKeys[0]);
        var keyword = keywordOperation.getResult();
        // Добавляем исключения
        var i=1;
        while (i < adKeys.length) {
          adGroup.createNegativeKeyword(adKeys[i]);
           Logger.log('Добавлено исключение: ' + adKeys[i]);
          i++;
        };

      }
    }

  };

}

Re: Скрипт переноса минус слов из самого ключа в исключения

Ведущий участник

"забрал" потестировать. На мой взгляд идея отличная. Из того что видно сразу -  скрипт работает по всему аккаунту, включая выключенные кампании. Тратя много  время на чтение - вывод  - в большом аккаунте скрипт упрется в ограничение 30 минут. А так, правда классная идея, уже знаю как и где буду использовать. 

 

Не лишним будет напомнить всем кто возьмет на вооружение скрипт. Минусовать нужно с осторожностью, т.к. у AdWords есть неприятная особенность, ряд фраз могут иметь статус "мало показов" и по ним показы производиться не будут. Отминусовав "хвостик" у более высокочастотного ключа - лишим себя показов.

C уважением,
Павел

Re: Скрипт переноса минус слов из самого ключа в исключения

Ведущий участник
Спасибо, ценное замечание!
Поправил.
Теперь работает только в активных кампаниях с активными группами

Скрипт переноса минус слов из самого ключа в исключения

Студент ✭

Андрей добрый вечер! Может у вас есть скрипт, который минусует несколько ключей в группе? А не один ключ 1 группа?

egroup057@gmail.com

Буду признателен, если сбросите!

Скрипт переноса минус слов из самого ключа в исключения

Студент ✭

Добрый день!
У этого скрипта есть "Баг".
После минусации он меняет тип соответствие с точного на широкое.
+последние минус слово добавляет со скобкой "]".
В итоге после минусации получается следующий ключ "[ключевая фраза"
и минус слово "минусслово]"