Использование скриптов 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. Расписание работы скрипта
Еще одна полезная настройка. В интерфейсе можно задать расписание исполнения скрипта, которое будет соответствовать вашим нуждам. В нашем случае целесообразно выполнять скрипт раз в сутки - именно такая частота обновления курса в нашей внутренней системе.
Если вы не хотите использовать расписание работы скрипта, вы можете собственноручно запускать выполнение скрипта когда вам потребуется.
Обзор литературы
В дополнение к двум официальным примерам, приведенным выше, хотелось бы поделиться небольшой подборкой статей, которые я нашел при изучении информации о скриптах и посчитал их по-своему полезными.
-
http://blog.netpeak.ua/pyatiminutka-kontekstnoy-reklamy-vypusk-12/
В “Пятиминутке контекстной рекламы” Сергей Бахарь показывает пример использования готового скрипта. -
http://aweb.ua/seo-blog/skripty-v-google-adwords-kak-stat-guru-avtomatizacii/
Интересная подборка скриптов от Авеба - небольшой мастхев ppc-специалиста. Примеры использования бесплатных скриптов и ссылочки, где их можно безвозмездно взять. -
http://habrahabr.ru/post/229177/
Статья более высокого уровня. Показано автоматизированное создание рекламной кампании для интернет-магазина с более чем 25 000 наименований. -
http://adwordsapi.blogspot.com/2009/11/discover-v2009-setting-ad-parameters.html
Пример описывает параметризацию объявления в зависимости от ключевого слова, которое вызвало его показ. Реализация приведена для AdWords API, но сама идея интересная.
- 10 главных причин падения продаж в интернет-магазине
Побеждать на поле онлайн-торговли не так легко. Новые исследования и их анализ могут пролить свет на острые проблемы, из-за которых ваш сайт проигрывает в объемах продаж и теряет клиентов.
- Проект «Деньги@Mail.Ru» подключился к шести тысячам магазинов
Пользователи платежной системы «Деньги@Mail.Ru» могут расплачиваться виртуальными деньгами более чем в шести тысячах интернет-магазинов, сообщила Mail.Ru Group.
- Сервис «Photos of You» в Instagram даст брендам больше информации о пользователях
Аналогично Facebook, которая является владельцем фото-сервиса, Instagram добавил новый уровень персонализации, запустив функцию «Photos of You».
- Создание и продвижение сайтов
Компания «Denero» уже семь лет занимается созданием отличных сайтов, а также их эффективным продвижением в поисковых системах.
- Продвижение сайтов
В сети Интернет грядут большие перемены. Прежде всего, это связанно с поисковыми системами. Алгоритм ранжирования сайтов перешел на искусственный интеллект.
- Спешите принять участие в акции и получить новогодний подарок от компании «Бегун»!
С 10 января для всех новых клиентов компания «БЕГУН-УКРАИНА» подготовила новогоднюю акцию «В Десятку!»
- #Перемогаунасвкрові — акція Ogilvy Україна на підтримку донорства
Товариство Червоного Хреста України розпочало спільно з Міністерством молоді та спорту України всеукраїнську донорську акцію «Перемога у нас в крові» (хештег #перемогаунасвкрові).
- Paulig успешно завершил преролл-кампанию про путешествия
С чем у вас ассоциируется Париж? А знаете, как выглядит кубинский песо? Что нужно взять с собой, когда едешь в Нью-Йорк?.. Paulig Café Paris, Paulig Café Havana и Paulig Café New York
- Зачем нужна накрутка лайков и подписчиков в социальных сетях?
Сегодня социальные сети невероятно популярны, эта тенденция сохраняется как среди молодежи, так и среди людей старшего поколения, особое значение социальные сети имеют для рекламистов во всем мире