Мало кто знает, что Google AdWords предоставляет возможность управлять своими РК с использованием javascript, прямо в интерфейсе системы, через API Google Adwords.
К слову сказать, что получение доступа к API Google AdWords, т.е. получение API token, не тривиальная задача.
Для получения доступа к возможности работать со скриптами, заходим в аккаунт Google Adwords и выбираем в правом меню пункт «Операции над несколькими элементами» и подпункт «Скрипты»:
Далее, создаем новый скрипт
Для работы с скриптами необходимо авторизоваться:
Теперь, имея доступ к интерфейсу, возможно управлять своими рекламными кампаниями, группами объявлений, объявлениями и ключевыми запросами используя javascript.
По умолчанию в справке есть несколько примеров скриптов, решающие следующие задачи:
Кампании
- Получение стоимости и числа кликов по каждой кампании за последний месяц
- Приостановка кампаний с низким коэффициентом конверсии
- Изменение бюджета кампании
Группы объявлений
- Задание ставок по умолчанию для всех групп объявлений в кампании
- Включение групп объявлений для бренда
- Приостановка групп объявлений, ставших менее эффективными
Ключевые слова
- Список из 20 ключевых слов, получивших наибольшее число показов за вчерашний день
- Приостановка ключевых слов с низкой средней позицией в кампании
- Повышение ставок для результативных ключевых слов на 5%
- Создание нового ключевого слова
- Экспорт ежедневного отчета в таблицу Google
- Изменение целевых URL
Объявления
- Включение продвижения для объявления
- Создание текстового объявления
- Экспорт отклоненных объявлений в таблицу Google
Кроме того, вот интересный пример использования скриптов Adwords:
Контроль над расходами
Спасибо уважаемому Павлу Романовскому за материал)
Предположим у нас стоит задача контроля определенного расхода бюджета на кампанию, стандартными средствами AdWords эта задача решается посредственно, но используя скрипты AdWords можно элегантное решение:
Итак для полноценной работы скрипта, ему нужны
- Название кампании
- Размер ограничения
- Стартовая дата отслеживания
- Электронная почта для уведомлений.
- Раз в час (чаще пока нельзя) скрипт забирает из таблицы название кампании, сумму ограничений, дату начала отслеживания
- Подсчитывает расходы
- Проверяет, активна ли кампания, если активна — выставляет служебные метки в таблице. Если не активна — полезных действий не производит и останавливается.
- Запрашивает ежедневный бюджет аккаунта (чуть ниже объясню почему)
- Производит вычисление, сравнивая затраты на кампанию, начиная с определенной даты по сегодняшний момент, с пороговым значением отключения. Если достигнуто, переходит в пункт 6.
- Отключает кампанию
- Отправляет письмо на указанную почту
- Производит запись в Гугл табличке, что кампания отключена и время ее отключения.
function main() { var ss = SpreadsheetApp.openByUrl( "https://docs.google.com/spreadsheet/ccc?key=0Ahq3mrXBUIYHdDBtZS1FUFBuamZQU2FWSTB4MzZDT1E#gid=0");//Ссылка на свою таблицу var balance = ss.getRange("C3").getValue(); //Сумма ограничений var data_start = ss.getRange("C4").getValue(); //Дата с которой происходит отслеживание data_start = Utilities.formatDate(data_start, "PST", "yyyyMMdd"); var data_today = new Date();//Сегодняшняя дата data_today = Utilities.formatDate(data_today, "PST", "yyyyMMdd"); var company_name = ss.getRange("C2").getValue(); //Название отслеживаемой кампании var email = ss.getRange("C5").getValue(); //Электронная почта для уведомлений var cost = 0;// Начальная стоимость var status = ss.getRange("E7").getValue(); //Статус кампании (была ли отключена скрпитом) var campaignsIterator = AdWordsApp.campaigns() .withCondition("Name = '" + company_name + "'") . get(); while (campaignsIterator.hasNext()) { var campaign = campaignsIterator.next(); var stats = campaign.getStatsFor(data_start, data_today); cost += stats.getCost(); }//Определение стоимости затрат за указанный интервал времени if( campaign.isEnabled()){ ss.getRange("E7").setValue("0"); ss.getRange("D7").setValue(""); //Определение состояния кампании включена/выключена. Если включена обнолвяет служебную информацию. var budget = campaign.getBudget() Logger.log("Потрачено за период: " + cost);//Отладочная информация выводится в журнале Logger.log("Ежедневный бюджет: " + budget); Logger.log("Ограничения расходов: " + balance); var budget=campaign.getBudget()//Определение ежедневного бюджета if (cost >= balance-(budget/12)) {//Проверка перерасхода campaign.pause();//Ставим кампаниию в паузу и пишем письмо var subject = "Кампания " + company_name + " исчерпала свой предельный бюджет"; var body = "Потрачено: " + cost + " Указанный предел расходов:" + balance + " кампания " + company_name + " будет отключена" ; MailApp.sendEmail(email, subject, body); Logger.log("Отправлена почта: " + email);//Отладочная информация выводится в журнале ss.getRange("E7").setValue("1");//Служебная отметка в Гугл таблице ss.getRange("D7").setValue(new Date());//Запись в таблицу времени и дата остановки кампании } } }