Скрипты в Google AdWords
Немного отойдем от темы веб-аналитики и обратим свое внимание на автоматизацию размещения и контроля кампаний в Google AdWords.

Мало кто знает, что Google AdWords предоставляет возможность управлять своими РК с использованием javascript, прямо в интерфейсе системы, через API Google Adwords.
К слову сказать, что получение доступа к API Google AdWords, т.е. получение API token, не тривиальная задача.

Для получения доступа к возможности работать со скриптами, заходим в аккаунт Google Adwords и выбираем в правом меню пункт «Операции над несколькими элементами» и подпункт «Скрипты»:
Скрипты в Google AdWords (нажмите для увеличения)
Далее, создаем новый скрипт:
Скрипты в Google AdWords (нажмите для увеличения)
Для работы с скриптами необходимо авторизоваться:
Скрипты в Google AdWords (нажмите для увеличения)
Теперь, имея доступ к интерфейсу, возможно управлять своими рекламными кампаниями, группами объявлений, объявлениями и ключевыми запросами используя javascript.

По умолчанию в справке есть несколько примеров скриптов, решающие следующие задачи:

Кампании


Группы объявлений


Ключевые слова


Объявления



Кроме того, вот интересный пример использования скриптов Adwords:

Контроль над расходами

Спасибо уважаемому Павлу Романовскому за материал)

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

Итак для полноценной работы скрипта, ему нужны

  1. Название кампании
  2. Размер ограничения
  3. Стартовая дата отслеживания
  4. Электронная почта для уведомлений.
Все эти данные необходимо внести в электронную табличку (сохраните себе в Google Disk) http://goo.gl/ywSu7.

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

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

Алгоритм работы таков:
  1. Раз в час (чаще пока нельзя) скрипт забирает из таблицы название кампании, сумму ограничений, дату начала отслеживания
  2. Подсчитывает расходы
  3. Проверяет, активна ли кампания, если активна — выставляет служебные метки в таблице. Если не активна — полезных действий не производит и останавливается.
  4. Запрашивает ежедневный бюджет аккаунта (чуть ниже объясню почему)
  5. Производит вычисление, сравнивая затраты на кампанию, начиная с определенной даты по сегодняшний момент, с пороговым значением отключения. Если достигнуто, переходит в пункт 6.
  6. Отключает кампанию
  7. Отправляет письмо на указанную почту
  8. Производит запись в Гугл табличке, что кампания отключена и время ее отключения.
Вот содержание скрипта, с максимальными комментариями. Для скачивания тут http://goo.gl/QY9by
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());//Запись в таблицу времени и дата остановки кампании
      } 
   }
 }
Made on
Tilda