3.8K members online now
3.8K members online now
Use AdWords conversion tracking and reporting to measure your results. Have a question about Google Analytics? Post it here, on the Google Analytics Community!
Guide Me

Budget Pacing in Adwords?

Visitor ✭ ✭ ✭
# 1
Visitor ✭ ✭ ✭




Is there an easy way to see if my account is projected to overspend its monthly budget?


I manage dozens of AdWords accounts and waste time checking their total spend and calculating it so that it is on target at the end of the month. If it's not on target, then I make changes to the campaign so it will be. The goal at the end of the month is to be within 5% of the monthly budget.


For example, if I have a client whose monthly budget is $10,000 I need to make sure that I spend between $9500 and $10,500. To do this, I see how much has been spent since the beginning of the month, divide it by how many days there have been in the month, then multiple that by how many days are left in the month. Is there an app or solution that will automatically tell me if I'm projected to be over or under budget?


I appreciate any feedback or thoughts! 


1 Expert replyverified_user

Budget Pacing in Adwords?

Top Contributor
# 2
Top Contributor

Hi Lauren,


Are you using a AdWords Manager Account (old name: MY Client Center/MCC) or logging into each individual account separately? 


Have you studied up on the budget method AdWords uses (daily $ X 30.4 days)?


Do you use any automation, likes rules, scripts, etc..?


Kind Regards,



Google AdWords Top Contributor | Google Partner | GYBO | Local Guide | My Profile




Budget Pacing in Adwords?

Visitor ✭ ✭ ✭
# 3
Visitor ✭ ✭ ✭

Hi James, 


Yes, yes, no.


I am using an AdWords Manager Account (MCC), I have studied and understand the budget method of Google AdWords, and no I don't use rules or scripts. 


I'd like my budget to be spread out evenly throughout the month. However, some of my accounts struggle to spend money because there isn't enough search volume depending on the month. Is there a way to get notified, by an app, rule, or script that will warn me that these accounts are projected to be underbudget?


Thank you!



Marked as Best Answer.
Accepted by topic author Lauren D

Budget Pacing in Adwords?

[ Edited ]
Top Contributor
# 4
Top Contributor

Hi Lauren,


You are welcome. 


AdWords will automatically spread your budget out evenly throughout the month, as you know. The system should be able to make up for the difference on busier days. If this is not happening, you should look at changing up the targeting methods (adding more) to ensure full spend does happen. You may want to remove scheduling, if you have it set up and look at the dimensions tab and drill into the actions of the campaign(s) for more adjustments to be made. If you are running a search campaign only, add in a display campaign.      


Along with those suggestions, there are a few different rules that you may like, which can be found on this page. And you can create custom automated rules to alert you to certain conditions. Please take a look at this information

Between all of the above info, you should be able to spend that budget and know more about the account. 


@Jon_Gritton posted this last year, which may be what you want?


I use a budget control script in many of my client Accounts.  It's pretty simple; the script compares the desired monthly spend against the actual cost so far in any given month and then sets a new daily budget as appropriate.  It can be used with just one Campaign, or shared across several using Labels to split the budget by percentage.  See below:

/* Modified Flexible Shopping Budget Script © Jon Gritton 2016
*  Apply two Labels to each Campaign you want controlled.
*  One to denote the Campaign is under budget control (the FLEX_LABEL)
*  and one purely a number to denote the percentage of the budget to
*  be given to this Campaign.
*  To use on one Campaign, set the percentage to 100

// Instance vars
var TOTAL_BUDGET = 1150;
// use this Label on all Campaigns you want affected by this script
var FLEX_LABEL = "FlexBudget";
// if the Campaign(s) have any other Labels other than that above and
// the percentage, list them here, comma separated. 
var IGNORE_LABELS = "Cobnut Managed";

var d = new Date(Utilities.formatDate(new Date(), AdWordsApp.currentAccount().getTimeZone(), "MMM dd,yyyy HH:mm:ss"));
var thisMonth=d.getMonth();
var thisYear=d.getFullYear();
// DAYS_SO_FAR is -1 because "today" hasn't happened yet
var DAYS_SO_FAR = d.getDate() - 1;
var TOTAL_DAYS = daysInMonth(thisMonth + 1, thisYear);

var START_DATE = new Date(thisYear, thisMonth, 1);
var END_DATE = new Date(thisYear, thisMonth, TOTAL_DAYS);

function main() {
  setNewBudget(calculateBudgetEvenly, TOTAL_BUDGET, START_DATE, END_DATE);

function setNewBudget(budgetFunction, totalBudget, start, end) {
  var costSoFar = 0;
  var campaignsToSet = [];
  var campaigns = AdWordsApp.shoppingCampaigns()
    //affect only live Campaigns
    .withCondition("Status = ENABLED")
    .withCondition("LabelNames CONTAINS_ANY ['" + FLEX_LABEL + "']")  
  while(campaigns.hasNext()) {
    var thisCost = campaign.getStatsFor(dateToString(start), dateToString(end)).getCost();
    costSoFar += thisCost;
     //get only the labels for percentages
     .withCondition("Name IN ['" + FLEX_LABEL + "']")
    if(campLabels.hasNext()) {
      //this campaign is a Flexbudget
      Logger.log("CampaignToSet: " + campaign.getName());
  var totalCalcd = 0;
  Logger.log("CostSoFar: " + costSoFar);
  totalBudget -= costSoFar;
  Logger.log("Total available for Flex Campaigns for the rest of the month: " + totalBudget);
  for(var i in campaignsToSet) {
    var thisCampaign=campaignsToSet[i];
    var ignoreLabels = "'" + FLEX_LABEL + "'";
    if(IGNORE_LABELS != "") {
      var igLabs = IGNORE_LABELS.split(",");
      for(var i in igLabs) {
        ignoreLabels += ",'" + igLabs[i] + "'";
      // Ensure only the "percentage" Label is selected - you may need to add others if you use them
      .withCondition("Name NOT_IN [" + ignoreLabels + "]")
    var percentage =;
    //set the new budgets
    var newBudget = budgetFunction(totalBudget, percentage);
    newBudget=(newBudget>0)? newBudget : 1;
    Logger.log("Campaign Set: " + thisCampaign.getName() + " Budget: " + newBudget.toFixed(2));

function calculateBudgetEvenly(totalBudget, percentage) {
  //set budget based upon percentage Label
  var budgetRemaining = totalBudget*(percentage / 100);
  if (DAYS_REMAINING <= 0) {
    return budgetRemaining;
  } else {
    return budgetRemaining / DAYS_REMAINING;

function daysInMonth(month, year) {
  //returns number of days in a given month of a given year
  return new Date(year, month, 0).getDate();

function dateToString(date) {
  return date.getFullYear() + zeroPad(date.getMonth() + 1) + zeroPad(date.getDate());

function zeroPad(n) {
  if (n < 10) {
    return '0' + n;
  } else {
    return '' + n;


Jon is our script pro around here, so he may jump in and add more info here, if needed. 


Please let us know how things go. 


Kind Regards,







Google AdWords Top Contributor | Google Partner | GYBO | Local Guide | My Profile




Budget Pacing in Adwords?

Visitor ✭ ✭ ✭
# 5
Visitor ✭ ✭ ✭

Hi James, 


I haven't had a chance to use the script yet. Still waiting on client approval! Thanks for your thorough and helpful answer.