Setting Mobile Bids

Posted on September 30, 2014 in

Take Back Some of the Control from Enhanced Campaigns.

This is the first AdWords Script I wrote. I was really proud of it for that reason, although I had to seek help from Nathan Byloff to get it working. I’ve always worked strictly in either advertising or analytics platforms, and JavaScript is a little outside of my field of expertise. But after Steve Hammer showed me the power of AdWords Scripts, I knew I had to start writing them.


Enhanced Campaigns wrecked a lot of accounts I had tightly controlled for years. For anyone that doesn’t understand how they work, they make the keyword level bids into desktop/tablet specific bids. Mobile devices (read: smartphones) no longer get their own bid. They receive a bid multiplier based off of the keyword level bids that are set at the campaign and ad group levels. This reengineering by Google made it to where advertisers can no longer run mobile by itself.

Additionally, this made advertisers choose. If they wanted ads to run on mobile devices during the day, they were going to need to run as long as the desktop ads. The following script solves this problem. Suffice it say that it is very powerful, and I say that without hyperbole.

Example Scenario:
Let’s say you want to run on mobile devices throughout the day from 7am until 9pm, but you believe users on desktops and tablets are likely to continue researching and submitting forms until the later hours. This could increase the efficiency of your account.

The Script
Follow the instructions in the script notes by adding the script at least two separate times and change the bids and labels to match your own account. If you need some days to have different times to run mobile, you may need to add this 14 times, two times for each day. In order to stop running the script on any particular campaign, simply remove the triggering label.

// Change Mobile Bid Percentage One Time
// Author: Kevin Adams
// Date: 2014-09-23

// Add the script at least two times for each label,
// one for one time period of the day, the other to set it back

// Script is looking for campaigns with the label 'Evening'
// setBidModifier needs to be set based on (0)=-100%, 
// (1)= Nothing set, (1.5)=+50%, etc

function main() {
 var campaignSelector = AdWordsApp
     .withCondition('LabelNames CONTAINS_ANY["Evening"]');
 var campaignIterator = campaignSelector.get();
 while (campaignIterator.hasNext()) {
   var campaign =;

P.S. Check the times and time zone the script is running. There is an additional function that you can add to automate this by Nathan Byloff.

By Kevin Adams

Kevin Adams has been doing PPC since 2004. He has managed many accounts from local service companies to large mortgage companies. His primary proficiencies are Google AdWords, Google Analytics, and Bing Ads. He continually stays up-to-date on the latest tricks, tools and trends provided by the search engines. If there is one thing that Kevin excels at most is making his clients money with Pay-per-Click advertising.