Контролируем остатки на Adwords для большого количества кампаний
Если у вас несколько кампаний в Google AdWords, то может возникнуть проблемы, с контролем остатков на балансе, стандартные уведомления AdWords достаточно кривые и можно пропустить момент, когда нужно заводить деньги.

Но используя скрипты AdWords и интеграцию с Google Spreadsheet эту проблему можно упростить.

И так, алгоритм будет следующий:

1. Делаем Google Таблицу с данными о кампаниях.

2. Устанавливаем скрипт, который берет все расходы на аккаунте за весь период, считает средний расход за последние 7 дней и передает всё это дело в Google Таблицу.

3. Настраиваем скрипт под конкретную кампанию, устанавливаем периодичность работы скрипта.

4. Получаем удовольствие.
Google Таблица с данными о кампании
Таблица имеет общую вкладку, куда импортируются показатели по всем кампаниям:
Общая вкладка таблицы (нажмите для увеличения)
И вкладки клиентов (кампаний AdWords):
Вкладка клиента (нажмите для увеличения)
Ячейки выделенные красным и серым, заполняются автоматически скриптом или формулами (которые не забываем протягивать), желтые ячейки вы заполняете самостоятельно. Т.е. пришла оплата, ставим дату и сумму оплаты, после заведения на аккаунт, также фиксируем и раз в месяц обновляем корректировки.

При заведении нового клиента, создаете новый лист и копируйте данные их предыдущего листа, чистите все жёлтые ячейки и прописывайте их заново.

И в общем листе, по аналогии, делаем новую строчку.

Чтобы начать работу, берем этот документ и сохраняем себе в аккаунт.
Устанавливаем скрипт
Заходим в аккаунт и выбираем пункт «Операции над несколькими элементами»:
Операции над несколькими элементами
Где выбираем раздел «Скрипты»:
Скрипты
После чего, создаем новый скрипт:
Создаем новый скрипт
Далее, пишем название скрипта, например «контроль оплат», нажимаем на «Авторизация» и авторизируемся, после чего, добавляем скрипт:
function main() { var campaignIterator = AdWordsApp.campaigns() .forDateRange('ALL_TIME') .get(); var campaignIterator2 = AdWordsApp.campaigns() .forDateRange('LAST_7_DAYS') .withCondition("Status = ENABLED") .get(); var ss = SpreadsheetApp.openByUrl( "https://docs.google.com/spreadsheet/ccc?key=0AmlDmpbBj8rLdFJBSi1ZdklHbTVsRGt3Wm9VUG9jUmc#gid=0");//Ссылка на свою таблицу ss.setActiveSheet(ss.getSheets()[15]); //активируем лист var allCost = 0; var allBudget = 0;
// Logger.log(' E2: ' + ss.getRange("E2").getValue()); //Получаем общий расход за всё время while (campaignIterator.hasNext()) { var campaign = campaignIterator.next(); var stats = campaign.getStatsFor("ALL_TIME") allCost = allCost + stats.getCost(); // Logger.log(campaign.getName() + ': ' + stats.getCost() + ' grn'); } //Получаем расход за 7 дней по активным кампаниям while (campaignIterator2.hasNext()) { var campaign2 = campaignIterator2.next(); var stats2 = campaign2.getStatsFor("LAST_7_DAYS") allBudget = allBudget + stats2.getCost(); } allBudget = allBudget / 7; ss.getRange("E2").setValue(allCost); ss.getRange("B4").setValue(allBudget);
}
И вносим в него изменения, эту строчку пишем url своего документа, который мы заранее сохранили на предыдущем шаге:
var ss = SpreadsheetApp.openByUrl( "https://docs.google.com/spreadsheet/ccc?key=0AmlDmpbBj8rLdFJBSi1ZdklHbTVsRGt3Wm9VUG9jUmc#gid=0");
А в эту, пишем номер листа клиента в нашем документе:
 ss.setActiveSheet(ss.getSheets()[15]); //активируем лист
И не забываем, что подсчет начинается с 0.

После чего, нажимаем сохранить и закрыть.

Должно получиться что-то такое:
Готовый скрипт (нажмите для увеличения)
После закрытия, меняем настройки периодичности запуска скрипта, на «раз в час» и нажимаем «выполнить»:
Изменяем расписание и запускаем
После чего, данные о расходах выгружаются в нашу Google таблицу и рассчитываются нужные нам показатели.
Важные моменты
Скрипт далек от идеала, но работает и решает свои задачи. Прошу обратить внимание, что в документе нельзя менять местами вкладки, так как скрипт не будет знать куда отдавать данные.

В случае, если кампания уже идет, чтобы не заполнять все оплаты и заведения на аккаунт, можно воспользоваться полями «начальный остаток» — сумма которая фактически лежит на аккаунте и «начальный расход» — сумма, которая фактически была потрачена на начало периода.
Made on
Tilda