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

Скрипт для оптимизации по ключевым KPI

Студент ✭

Всех приветствую!

Вынужден обратиться за помощью т.к. не смог найти хотя бы частично похожие скрипты, чтобы на их базе решить поставленные задачи, а написать с нуля в связи с отсутствием навыков программирования не предоставляется возможным.
Задача следующая: нужно собрать набор скриптов для оптимизации РК в AdWords по ключевым показателям.


1. Действие: Повышать ставки на 10% на ключевые слова max. 7$
Условия: Стоимость одной конверсии 3а 1 год < 7$ (т.е берутся данные начиная со вчерашнего дня и каждый день сдвигаются на день)
За предыдущий день достигнуто >= 1 конверсии
Средняя позиция < 1.5
Запуск: каждый день

2. Действие: Повышать ставки на 10% на ключевые слова max. 7$
Условия: Коэфф. Конверсии за 1 год > 10% (т.е берутся данные начиная со вчерашнего дня и каждый день сдвигаются на день)
За предыдущий день достигнуто >= 1 конверсии
Кликов за 1 год > 10 (т.е берутся данные начиная со вчерашнего дня и каждый день сдвигаются на день)
Средняя позиция < 1.5
Запуск: каждый день

3. Действие: Понижать ставки на 10% на ключевые слова min. 0.01$
Условия: Достигнутые конверсии за 1 год < 1 (т.е берутся данные начиная со вчерашнего дня и каждый день сдвигаются на день)
Стоимость кликов > 7$
Кликов за 1 неделю > 1 (т.е берутся данные начиная со вчерашнего дня и каждый день сдвигаются на день)
Запуск: каждую неделю


Частично данные задачи конечно можно решить в автоматизированных правилах, но не имея возможность запускать правила при наличии например конверсии за прошлый день, может привести к чрезмерному понижению ставки без статистических оснований.
Всем огромное спасибо за участие!

Скрипт для оптимизации по ключевым KPI

Аспирант ✭

Идея отличная. Давно думаю об этом. Но никак не получается сесть и написать)

 

Скрипт для оптимизации по ключевым KPI

Студент ✭

Наверное придётся изучать Java Script) Есть идеи по оптимизации на основе данных из Analytics по ROMI это наверное уже сложнее. Плюс конечно хотелось бы учитывать ассоциированные конверсии.

Скрипт для оптимизации по ключевым KPI

Аспирант ✭

Их достаточно легко можно получать через Analytics API. Сразу хочу предупредить в таком варианте нужно работать только с ID ключевых слов.

Скрипт для оптимизации по ключевым KPI

Студент ✭

Спасибо за совет! Учту, когда буду писать или заказывать.

Скрипт для оптимизации по ключевым KPI

Студент ✭

Ну вот! Пришлось заморочиться самому. Пользуйтесь кому нужно! Если будут замечания и дополнения буду рад. За основу взяты скрипты http://www.freeadwordsscripts.com/search/label/adwords%20for%20dummies

  1. Повышение ставки при низкой стоимости конверсии

function main() {

 

  var WAY_TOO_LOW_COST_PER_CONV = 7;

  var TARGET_AVERAGE_POSITION = 1.5;

  var WAY_TOO_LOW_BID_REDUCTION_AMOUNT = .10;

  

  var kw_iter = AdWordsApp.keywords()

    .withCondition("Status = ENABLED")

    .get();

  

  while(kw_iter.hasNext()) {

    var kw = kw_iter.next();

    var kw_stats = kw.getStatsFor("ALL_TIME");

                var kw_stats_yesterday = kw.getStatsFor("YESTERDAY");

    var cost = kw_stats.getCost();

    var conversions = kw_stats.getConversions();

                var conversions_yesterday = kw_stats_yesterday.getConversions();

    if(conversions > 0) {

      var cost_per_conversion = (cost/(conversions*1.0));

                  var average_position = kw_stats_yesterday.getAveragePosition()

   

                  if((cost_per_conversion <= WAY_TOO_LOW_COST_PER_CONV) && (average_position > TARGET_AVERAGE_POSITION) && (conversions_yesterday >= 1)) {

        kw.setMaxCpc(kw.getMaxCpc() * (1+WAY_TOO_LOW_BID_REDUCTION_AMOUNT));

      }

   

    }else{

      continue;

    }

  }

}

  1. Повышение ставки при высокой конверсии

function main() {

 

  var AMAZING_CONVERSION_RATE = 10;

  var TARGET_AVERAGE_POSITION = 1.5;

  var AMAZING_BID_REDUCTION_AMOUNT = .10;

  

  var kw_iter = AdWordsApp.keywords()

    .withCondition("Status = ENABLED")

    .get();

  

  while(kw_iter.hasNext()) {

    var kw = kw_iter.next();

    var kw_stats = kw.getStatsFor("ALL_TIME");

                var kw_stats_yesterday = kw.getStatsFor("YESTERDAY");

    var conversion_rate = kw_stats.getConversionRate();

                var conversions = kw_stats.getConversions();

                var conversions_yesterday = kw_stats_yesterday.getConversions();

    if(conversions > 0) {

                  var average_position = kw_stats_yesterday.getAveragePosition()

   

                  if((conversion_rate > AMAZING_CONVERSION_RATE) && (average_position > TARGET_AVERAGE_POSITION) && (conversions_yesterday >= 1)) {

        kw.setMaxCpc(kw.getMaxCpc() * (1+AMAZING_BID_REDUCTION_AMOUNT));

      }

   

    }else{

      continue;

    }

  }

}

  1. Мой первый скрипт) Понижение ставки при высокой стоимости конверсии

function main() {

 

  var WAY_TOO_HIGH_COST_PER_CONV = 7;

  var WAY_TOO_HIGH_BID_REDUCTION_AMOUNT = .10;

  

  var kw_iter = AdWordsApp.keywords()

    .withCondition("Status = ENABLED")

    .get();

  

  while(kw_iter.hasNext()) {

    var kw = kw_iter.next();

    var kw_stats = kw.getStatsFor("ALL_TIME");

                var kw_stats_yesterday = kw.getStatsFor("YESTERDAY");

    var cost = kw_stats.getCost();

    var conversions = kw_stats.getConversions();

                var conversions_yesterday = kw_stats_yesterday.getConversions();

    if(conversions > 0) {

      var cost_per_conversion = (cost/(conversions*1.0));

                 

                  if((cost_per_conversion >= WAY_TOO_HIGH_COST_PER_CONV) && (conversions_yesterday >= 1)) {

        kw.setMaxCpc(kw.getMaxCpc() * (1-WAY_TOO_HIGH_BID_REDUCTION_AMOUNT));

      }

   

    }else{

      continue;

    }

  }

}

  1. Понижение если нет достигнутых целей за всё время

                function main() {

                 

                  var BID_REDUCTION_AMOUNT = .10;

                  

                  var kw_iter = AdWordsApp.keywords()

                               .withCondition("Status = ENABLED")

                               .get();

                  

                  while(kw_iter.hasNext()) {

                               var kw = kw_iter.next();

                               var kw_stats = kw.getStatsFor("ALL_TIME");

                               var kw_stats_last_7_days = kw.getStatsFor("LAST_7_DAYS");

                               var cost = kw_stats.getCost();

                               var conversions = kw_stats.getConversions();

                               var clicks_last_7_days = kw_stats_last_7_days.getClicks();

                                

                                 if((cost > 5) && (conversions < 1) && (clicks_last_7_days >= 1)) {

                                               kw.setMaxCpc(kw.getMaxCpc() * (1-BID_REDUCTION_AMOUNT));

                                 }

                              

                               else{

                                 continue;

                               }

                  }

                }