новичокCreated using Figmaновичок, спецCreated using Figmaновичок, спецCreated using FigmaэкспертCreated using FigmaспециалистCreated using Figmaспец, экспертCreated using Figma

Контроль остатка бюджета аккаунта с помощью скрипта AdWords

В апреле этого года скрипты AdWords Scripts стали поддерживать BudgetOrder. Новая функция позволяет получать информацию о денежных лимитах аккаунта, бюджетах кредитной линии и другие полезные данные, которые связаны с пополнением аккаунта.

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

Остаток вычисляется из денежного лимита самого аккаунта — из суммы всех пополнений аккаунта мы вычитаем расход по кампаниям за все время с учетом средств, которые AdWords возвращает за недействительную активность. В итоге мы получаем более точный остаток аккаунта, чем в стандартном интерфейсе, так как там деньги списываются не в режиме онлайн, а частями в течение дня.

Делимся нашим скриптом для контроля остатка бюджета. Основные настройки скрипта:

  • Limit — минимальный остаток средств для отправки уведомления.
  • Days — количество дней, за которые нужно уведомить о завершении остатка.
  • alertType — выбираем значение лимита, или остаток или количество дней.
  • includeVAT — включен ли НДС на аккаунтах. НДС взимается в конце месяца и это важно учитывать при контроле бюджета.

Полный скрипт:

function main() {
  
  //Настройки скрипта 
  var days = 7; // Минимальное число дней для отправки уведомления
  var alertLimit = 1000; // Минимальный остаток для отправки уведомления
  var email = ['Электронная@почта.ком']; //Добавляются адреса всех, кому должно прийти письмо с уведомлением
  var alertType = true; // true - уведомление при малом остатке, при значении false - при количестве дней
  var includeVAT = true;
 
  var budgetOrder = AdWordsApp.budgetOrders().get().next();
  var SpendingLimit = budgetOrder.getSpendingLimit(); // Общий лимит аккаунта
  var adjustments = budgetOrder.getTotalAdjustments(); // Возвращенные средства на аккаунт
  
  var Spent = AdWordsApp.currentAccount().getStatsFor('ALL_TIME').getCost(); // Расход за все время
  var lastWeekSpent = AdWordsApp.currentAccount().getStatsFor('LAST_7_DAYS').getCost(); // Расход за последние 7 дней
  var thisMonthSpent = AdWordsApp.currentAccount().getStatsFor('THIS_MONTH').getCost();
  var vat = thisMonthSpent * 0.2;
  
  if (includeVAT) {
    SpendingLimit -= vat;
  }
  Logger.log(vat);
  
  if (adjustments == null) {
    var remainingBudget = SpendingLimit - Spent;
  } else {
    var remainingBudget = SpendingLimit - (Spent + adjustments);
  }
  Logger.log("Остаток аккаунта - " + Math.round(remainingBudget));
  if (alertType) {
    if (remainingBudget < alertLimit) {
      sendSimpleTextEmail(email);
    }
  } else {
    
    var limitsDays = remainingBudget / lastWeekSpent;
    if (limitsDays < days) {
      sendSimpleTextEmail(email);
    }
  }

  function sendSimpleTextEmail(mail) {
    MailApp.sendEmail( mail,
                      'Минимальный остаток бюджета! ' + AdWordsApp.currentAccount().getName(),
                      'В аккаунте заканчиваются средства. Внесите оплату!');    
  }
}

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

Пользуйтесь данным решением и получайте от ваших кампаний максимум!