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

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

Ставки для позиции по кампаниям

Бакалавр ✭ ✭

Здравствуйте, коллеги!

Мы столкнулись с необходимостью как можно плотнее удерживать определенные позиции в нише с высокой конкуренцией. С правилами возиться почему-то не захотелось Веселый, поэтому решили обратится к вот этому скрипту от Google Developers. В данном конкретном случае он нам подошел, но в нем есть особенность, которая понравиться далеко не всем. А именно регулирует ставки он одновременно во всех кампаниях аккаунта. В сети мы не нашли решения данной проблемы (может плохо искали?), поэтому решили на досуге устранить это маленькое неудобство и вроде успешно справились с задачей. Ну по крайней мере у нас все работает.

 

Итак, вот наша версия скрипта, которая позволяет выбирать конкретные кампании для регулировки ставок с целью удержать ту или иную позицию. Добавленные нами участки выделены красным.

 

Спойлер
// Ad position you are trying to achieve.
var TARGET_AVERAGE_POSITION = 3;

// Once the keywords fall within TOLERANCE of TARGET_AVERAGE_POSITION,
// their bids will no longer be adjusted.
var TOLERANCE = 0.1;

// How much to adjust the bids.
var BID_ADJUSTMENT_COEFFICIENT = 1.05;

var nameco = "название кампании";

function main() {
  raiseKeywordBids();
  lowerKeywordBids();
}

function raiseKeywordBids() {
  // Condition to raise bid: Average position is greater (worse) than
  // target + tolerance
  var keywordsToRaise = AdWordsApp.keywords()
.withCondition("Ctr > 0.01") .withCondition("Status = ENABLED") .withCondition("AveragePosition > " + (TARGET_AVERAGE_POSITION + TOLERANCE)) .withCondition("CampaignName CONTAINS '" + nameco + "'") .orderBy("AveragePosition ASC") .forDateRange("LAST_7_DAYS") .get(); while (keywordsToRaise.hasNext()) { var keyword = keywordsToRaise.next(); keyword.setMaxCpc(keyword.getMaxCpc() * BID_ADJUSTMENT_COEFFICIENT); } } function lowerKeywordBids() { // Conditions to lower bid: Ctr greater than 1% AND // average position better (less) than target - tolerance var keywordsToLower = AdWordsApp.keywords() .withCondition("Ctr > 0.01") .withCondition("AveragePosition < " + (TARGET_AVERAGE_POSITION - TOLERANCE)) .withCondition("Status = ENABLED") .withCondition("CampaignName CONTAINS '" + nameco + "'") .orderBy("AveragePosition DESC") .forDateRange("LAST_7_DAYS") .get(); while (keywordsToLower.hasNext()) { var keyword = keywordsToLower.next(); keyword.setMaxCpc(keyword.getMaxCpc() / BID_ADJUSTMENT_COEFFICIENT); } }

 

То есть нужно определить дополнительную переменную (мы обозвали ее nameco) и в обе функции, которые отвечают за повышение и понижение ставок добавить условие, которое делает возможным выполнение этих функций только в указанной кампании. Все просто.

 

 

Если кому-то нужно применить данный скрипт для нескольких кампаний одновременно, то достаточно к названиям нужных кампаний добавить какой либо произвольный ключ. Например кампания называется "iPhone 6S", мы в нее добавляем ключ Script и получаем название "iPhone 6S Script ". Этот же ключ Script добавляем в другие кампании, которые нам нужно контролировать. Затем переменной nameco (ну или как там она будет у вас называться) присваиваем значение ключа, т.е. получится var nameco = "Script". Все, теперь скрипт будет обрабатывать все кампании, в названиях которых присутствует ключ. Переименовать кампании в Google AdWords Editor, думаю, никому труда не составит. Впрочем, мы не претендуем на статус серьезных программистов (потому что мы пиписисты Веселый) и возможно кто-то найдет более оптимальное решение работы с несколькими кампаниями одновременно за что будет ему +100500 в карму.

 

Для тех, кто не помнит или может не знает, данный скрипт по умолчанию собирает данные за 7 дней и отвечает за этот диапазон селектор .forDateRange("LAST_7_DAYS"). 

 

Вот все значения, которые может принимать данный селектор:

 

 

Спойлер

TODAY

YESTERDAY

LAST_7_DAYS

THIS_WEEK_SUN_TODAY

LAST_WEEK

LAST_14_DAYS

LAST_30_DAYS

LAST_BUSINESS_WEEK

LAST_WEEK_SUN_SAT

THIS_MONTH

LAST_MONTH

ALL_TIME

 

Не забывайте, что он отдельно работает для функции, которая понижает ставки и отдельно для той, которая повышает. Поэтому прописывать нужные вам значения нужно в обеих функциях.

 

Мы выбрали значение TODAY, установили расписание скрипта (в самом интерфейсе Google AdWords) на выполнение каждый час и теперь наши ставки ежечасно регулируются на основании данных, полученных за текущий день.

 

Данный скрипт предназначен для работы в одиночном аккаунте AdWords. Для версии, адаптированной под MCC нужно сделать точно такие же изменения. Скрипт выберет по ярлыку нужный аккаунт и проведет изменения в указанных кампаниях.

 

Возможно совершим попытку научить этот скрипт работать и с группами. Опускаться на уровень слов смысла нет, потому как это можно реализовать через так называемые Альфа-кампании и, собственно, приведенный выше скрипт, что даст куда более серьезный эффект, чем удержание позиций слов в кампаниях обычных.

 

Все, всем дешевых конверсий и попутного CTR-а в парус... Веселый

 

1 Ответ экспертаverified_user

Re: Ставки для позиции по кампаниям

Активные участники

Хороший скрипт.

На эту тему, тем кому интересно, есть еще одно решение. Тоже позволяет выбрать по ярлыкам слова с которыми следует работать.
Смотреть тут.

---------
С уважением Олег Поддубный

Re: Ставки для позиции по кампаниям

Бакалавр ✭ ✭

А вот и более удобная версия скрипта не заставила себя ждать Веселый http://yaroshenko.by/position-control-google-adwords/

Re: Ставки для позиции по кампаниям

Студент ✭ ✭
Поставили этот скрипт.
Система постоянно требует Авторизации. При нажатии на Авторизацию открывается окно: Скрипт would like to: Have offline access.
далее ничего не меняется.
Подскажите. пожалуйста, что можно сделать?

Re: Ставки для позиции по кампаниям

Бакалавр ✭ ✭
Здравствуйте! У нас эта проблема решилась следующим образом. Добавили скрипт, сохранили. Когда появился запрос авторизации, нажали на нее и после того как ничего не произошло, вышли из аккаунта Гугла и снова вошли. Все заработало нормально.

Re: Ставки для позиции по кампаниям

Бакалавр ✭ ✭

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

 

Важно! В своем нынешнем виде скрипт обрабатывает слова, которые за указанный период получили клики. За это отвечает эта строка .withCondition("Ctr > 0.01"). Если вам нужно работать со словами с определенным CTR, но измените соответствующее значение в обоих блоках скрипта. Если же нужно затрагивать все слова, и те, которые кликались и те, которые показывались но кликов не получили, то нужно просто эту строчку удалить и в блоке, отвечающем за повышение ставок и в блоке, отвечающем за понижение. Но следует помнить, что если вы нацелитесь на все слова и включите скрипт на выполнение ежечасно, то это чревато следующим. Например, слово "купить айфон" показалось на позиции ниже, чем вам нужно, скрипт это определил и поднял ставку. Допустим скрипт берет данные за текущий день. Указанное слово может больше не показываться в этот день, но скрипт все равно будет поднимать ставку пока не наступит день следующий и программа не начнет брать данные уже за этот наступивший день. Таки образом, пока дело дойдет до клика по этому слову ценник на нем может быть довольно внушительным и не красивым. Но проблема больше актуальна именно для ежечасного срабатывание скрипта. В любом случае будьте внимательны и имейте этот момент в виду.

 

Если вам нужно удерживать цену клика не более определенного уровня то в верхний блок (отвечающий за повышение ставок) добавляем строку .withCondition("MaxCpc < 3"), где 3 - это ограничение по цене клика. Таким образом скрипт, в своем безудержном стремлении вытащить слова на целевую позицию, будет повышать ставку на тех словах, где она (ставка) ниже, в данном случае, 3 денежных единиц и не трогать остальные слова. При этом погрешность, опять же в данном случае, будет следующая. Если цена клика на слове стоит 2,99, а в скрипте указан шаг в 5%, то скрипт повысит с 2,99 до 3,14 и при следующем проходе уже это слово трогать не будет. Аналогично можно ставить ограничения в блоке отвечающем за понижение ставок.

 

Вроде все. Всем удачи! 

Re: Ставки для позиции по кампаниям

Магистр ✭
уже спросил в соседней теме, но спрошу еще и в вашей, может хоть кто-то ответит))

скрипты или АПИ позволяют "где-то" сохранять хотя бы небольшой объем данных для дальнейшего использования? чтобы скрипт еще и проверял, а увеличилось ли число показов. если нет - то тогда не запускать повышение ставки

Re: Ставки для позиции по кампаниям

Бакалавр ✭ ✭
По идее проблема решаема. Но более точно и быстро на вопрос наверное все же ответят программисты.

Ставки для позиции по кампаниям

Студент ✭

Здесь немного другая проблема есть:

скрипт будет поднимать ставку каждый час.

Здесь не хватает такой логики:

если количество показов стало больше, чем было и позиция снизилась, то ставка поднимается.

если позиция выше и показы больше чем было, ставка снижается.

если позиция не изменилась и количество показов не изменилось умножаем на 1.00 т.е. ставка не изменяется.

Возможно ли это реализовать без использования таблицы в google docs?