How to control overspend in Google Adwords & Google Shopping

How to control overspend in Google Adwords & Google Shopping

Overspend is a big issue in Google Adwords now.

The basic criteria currently is:

take your daily spend and multiply it by 30.4.

Then wait till the last week of the month, if you’re spend is low, Google will overspend each day to catchup with the monthly budget.

Fair? not really.

If you want to take back control, these two scripts will stop google from overspending on a hourly basis.

To create a script go to Tools / Scripts within your  ads.google.com account.
Click the blue +
add the following

——————-
function main() {

var allowedOverdeliveryPercentage = 0.1; // set percentage as decimal, i.e. 20% should be set as 0.2
var labelName = “Paused for Overdelivery”;

AdWordsApp.createLabel(labelName, “automatic label needed to reenable campaigns”);

var campaigns = AdWordsApp.campaigns()
.withCondition(“Status = ENABLED”)
.withCondition(“Cost > 0”)
.forDateRange(“TODAY”);

var campaignIterator = campaigns.get();

while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
var campaignName = campaign.getName();
var budgetAmount = campaign.getBudget().getAmount();
var costToday = campaign.getStatsFor(“TODAY”).getCost();

if(costToday > budgetAmount * (1 + allowedOverdeliveryPercentage)) {
Logger.log(campaignName + ” has spent ” + costToday + ” which is more than allowed.”);
campaign.applyLabel(labelName);
campaign.pause();
} else {
Logger.log(campaignName + ” has spent ” + costToday + ” and can continue to run.”);
}
}

}

——————–

Name the script, Authorise and run it, choose preview. Then save

The script runs every hour and looks at the budget set for each Adwords campaign you have. If you overspend by more than 10% it pauses it until the next day.

To do the same for Google shopping campaigns do the same above but use this script.

———————
function main() {

var allowedOverdeliveryPercentage = 0.1; // set percentage as decimal, i.e. 20% should be set as 0.2
var labelName = “Paused for Overdelivery”;

AdWordsApp.createLabel(labelName, “automatic label needed to reenable campaigns”);

var campaigns = AdWordsApp.shoppingCampaigns()
.withCondition(“Status = ENABLED”)
.withCondition(“Cost > 0”)
.forDateRange(“TODAY”);

var campaignIterator = campaigns.get();

while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
var campaignName = campaign.getName();
var budgetAmount = campaign.getBudget().getAmount();
var costToday = campaign.getStatsFor(“TODAY”).getCost();

if(costToday > budgetAmount * (1 + allowedOverdeliveryPercentage)) {
Logger.log(campaignName + ” has spent ” + costToday + ” which is more than allowed.”);
campaign.applyLabel(labelName);
campaign.pause();
} else {
Logger.log(campaignName + ” has spent ” + costToday + ” and can continue to run.”);
}
}

}

Name the script, Authorise and run it, choose preview. Then save

The script runs every hour and looks at the budget set for each Shopping campaign you have. If you overspend by more than 10% it pauses it until the next day.

If you are below budget on any of your campaigns, they will continue to run.

Hope this helps someone.