Использование скриптов AdWords для передачи цены с сайта в текстовые объявления

Вчера

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

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

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

 

 

С помощью скриптов AdWords мы решили эту небольшую задачу.

 

Информация о скриптах AdWords

 

Стоит отметить, что в сети достаточно информации на этот счет и немного полистав Google Developers я нашел два хорошо описанных примера:

 

  • Ad Parameterizer - Параметризатор объявлений. Пример описывает несколько важных моментов - получение внешних данных с использованием json фида, актуализацию ключевых слов и передачу необходимых параметров в объявление.
    https://developers.google.com/adwords/scripts/docs/solutions/parameterizer

 

  • Sale Countdown или Обратный отчет до конца акции. Тут все просто - “До конца акции осталось X дней и Y часов”. Пример попроще и без “наворотов”, но в нем более понятно показана передача параметров в объявление. Кстати говоря, сам по себе очень полезный скрипт, и мы обязательно его будем использовать в промо-акциях.
    https://developers.google.com/adwords/scripts/docs/solutions/sale-countdown

 

   

Реализация

Сразу признаюсь, что я не программист, могу приблизительно понять смысл кода но не более. Поэтому я заручился поддержкой нашего программиста и мы приступили к делу.

1. Работа со скриптом в AdWords

Чтобы начать работу со скриптами, заходим в аккаунт AdWords, Операции над несколькими элементами, Скрипты. Нажимаем на “+ Скрипт” и начинаем работу.

 

 

2. JSON фид

Первое что требуется сделать, это сформировать json фид. Формируется он на сайте. В нашем случае требовалось передать два значения - цену разработки корпоративного сайта и интернет-магазина. Фид выглядел следующим образом:


{"data":{"corp":{"name":"[DEV] \u041f\u043b\u0430\u0442\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d (\u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u0430\u0439\u0442) ","price":8100},"im":{"name":"[DEV] \u041f\u043b\u0430\u0442\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d (\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d)","price":17550}}}

 

ссылка: http://inweb.ua/for_addwords/

 

Мы успешно сформировали json фид и чтобы забрать с сайта необходимые параметры, нам остается взять готовую функцию и подставить туда адрес нашего фида:

 

function getData() {

 var url = 'http://inweb.ua/for_addwords';

 var json = Utilities.jsonParse(UrlFetchApp.fetch(url).getContentText());

 var data = json.data;

 return data;

}

 

В результате мы получим два параметра data.corp.price и data.im.price, которые будут содержать соответствующие актуальные значения стоимости разработки корпоративного сайта и интернет-магазина.

 

3. Выбираем группу объявлений

 

Скрипту необходимо указать, в какой группе объявлений вносить изменения. Реализовать это можно двумя способами: обращаться к конкретной группе или к списку (массиву) групп объявлений в аккаунте.

 

Для обращения к конкретной группе объявлений, имя заданной группы необходимо объявить в функции main():

 

function main(){

 var adGroup = getAdGroup('Цена Сайта');

...}

либо перед функцией main() объявить переменную var AD_GROUP_NAME = 'Цена сайта'
и обратиться к ней:

function main(){

 var adGroup = getAdGroup('AD_GROUP_NAME');

 

...}


 

Функция обращения к выбранной группе:

 

function getAdGroup(name) {

 var adGroupIterator = AdWordsApp.adGroups()

     .withCondition('Name = "' + name + '"')

     .withLimit(1)

     .get();

 if (adGroupIterator.hasNext()) {

   return adGroupIterator.next();

 }

}


 

Чтобы обратиться к списку групп объявлений задаем массив:

var AD_GROUP_NAMES = ['Цена Сайта', 'Стоимость разработки сайта'];

Функция обращения к списку групп объявлений:

 

function getAdGroups(names) {

 var predicateValues = "['" + names.join("','") + "']";

 Logger.log(predicateValues);

 return AdWordsApp.adGroups()

     .withCondition('Name IN ' + predicateValues)

     .withLimit(names.length)

     .get();

}

 

4. Выполняем необходимые действия

 

У нас есть данные с сайта, есть группа или список групп объявлений, осталось написать, а точнее подкорректировать функцию main() и получить готовый скрипт:

 

Вариант 1 - работаем с одной группой объявлений

 

function main(){

 var adGroup = getAdGroup('Цена Сайта'); // задаем имя группы объявлений

 var keywordIter = adGroup.keywords().get();

 var data = getData();

 while (keywordIter.hasNext()) {

   var keyword = keywordIter.next();

   keyword.setAdParam(1, data.corp.price); //передаем первый параметр

   keyword.setAdParam(2, data.im.price); // передаем второй параметр

 }

}

 

function getAdGroup(name) {

 var adGroupIterator = AdWordsApp.adGroups()

     .withCondition('Name = "' + name + '"')

     .withLimit(1)

     .get();

 if (adGroupIterator.hasNext()) {

   return adGroupIterator.next();

 }

}

 

function getData() {

 var url = 'http://inweb.ua/for_addwords/';

 var json = Utilities.jsonParse(UrlFetchApp.fetch(url).getContentText());

 var data = json.data;

 return data;

}

 

Вариант 2 - работаем с массивом групп объявлений

 

var AD_GROUP_NAMES = ['Цена Сайта', 'Стоимость разработки сайта'];

 

function main(){

 

var adGroups = getAdGroups(AD_GROUP_NAMES); // обращаемся к массиву групп

while (adGroups.hasNext()) {

 var adGroup = adGroups.next();

 var keywords = adGroup.keywords().get();

 var data = getData();

 while (keywords.hasNext()) {

   var keyword = keywords.next();

   keyword.setAdParam(1, data.corp.price); //передаем первый параметр

   keyword.setAdParam(2, data.im.price); // передаем второй параметр

 }

}

 

function getAdGroups(names) {

 var predicateValues = "['" + names.join("','") + "']";

 Logger.log(predicateValues);

 return AdWordsApp.adGroups()

     .withCondition('Name IN ' + predicateValues)

     .withLimit(names.length)

     .get();

}


 

function getData() {

 var url = 'http://inweb.ua/for_addwords/';

 var json = Utilities.jsonParse(UrlFetchApp.fetch(url).getContentText());

 var data = json.data;

 return data;

}

 

5. Параметризация объявления

Для того, чтобы передать параметры в объявление необходимо в текст объявления добавить вставку {param1} и {param2}, в которые мы предварительно передали данные. Значение через двоеточие  {param1:6000} это значение по умолчанию.

 

{Keyword:Интересует цена сайта?}

Корпоративный сайт от {param1:6000} грн.

Интернет-магазин от {param2:14000} грн.

inweb.ua/{keyword:разработка-сайтов-недорого}

 

Тестируем:

 

 

6. Расписание работы скрипта

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

 

 

Если вы не хотите использовать расписание работы скрипта, вы можете собственноручно запускать выполнение скрипта когда вам потребуется.

 

Обзор литературы

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

 

Автор — Роман Игошин, PPC-специалист агентства интернет-рекламы Inweb http://inweb.ua/

Комментарии

Еще никто не оставлял комментариев к данному материалу.

Добавить комментарий



Похожие статьи