24/7 Bidding: Going Mobile With 100% More Shopping!
Former Googler Daniel Gilbert has an improved script to let you adjust your AdWords bids -- desktop and mobile -- every hour of every day.
Customer behavior changes at different times of day. AdWords ad scheduling, with only six unique bidding windows per day, doesn’t come close to the granularity we need to make our AdWords accounts shine. Most third-party bidding tools only allow two or three bid changes a day.
Based on comments from Search Engine Land readers, we’ve beefed up our AdWords script, which you can now use for Google Shopping or regular campaigns. It also lets you change your mobile bid adjustments every hour – currently there is no other way to do this! You can find the script below: all you need to do is copy and paste it into your AdWords account and read the instructions to configure it to fit your needs.
The script works by looking up the bid modifier for each hour from a Google sheet. Make a duplicate of our example spreadsheet and set all the bid multipliers to the values you require. The first sheet in the spreadsheet will correspond to your ad scheduling (applied to all traffic) and your second sheet will correspond to your mobile bid adjustments.
Note that, unlike in the previous version of the script, the bid adjustment you type into the spreadsheet is the same as you would enter into AdWords: 0% means bids will be unchanged, so a $1 bid would stay $1; -10% means bids will be reduced by 10%, so a $1.00 bid would effectively be $0.90. You can also now use the script to turn off advertising at certain times: just put the bid adjustment down as -100%. (You can’t actually have a -100% modifier in an ad schedule, so if there’s a -100% in the ad scheduling sheet the script simply won’t create a schedule for that time slot.)
Also remember that mobile bids will be affected by both the ad scheduling sheet and the mobile sheet: if you have a bid of $1, the ad schedule adjustment is -10% and the mobile bid adjustment is -10%, then the effective bid on mobile would be $0.81 (as the adjustments multiply together to give -19%). To help you keep track of this, there’s an additional table in the mobile sheet for the compounded change. You don’t have to do anything to this table: it will be filled in by formulae.
Once you’ve copied the script into your account you will have to set the following options:
- Enter the URL for the Google Sheet you used earlier for the spreadsheetUrl, replacing the value currently there.
- Set the shoppingCampaigns variable to true if you want your script to affect only shopping campaigns. Set shoppingCampaigns to false if you want your script to affect only regular campaigns.
- Set the runMobileBids variable to true if you want your script to affect the mobile bid adjustments of your campaigns. Set runMobileBids to false if you want your script to leave mobile bid adjustments alone.
- Enter into the array excludeCampaignNameContains a list of phrases contained in campaign names which you would like to exclude. These have to be in quote marks and separated by commas: for example [“Brand”,”Competitor Names”] to exclude all campaigns with names containing ‘brand’ or ‘competitor names’. Leave blank, , to not exclude any campaigns.
- Enter into the array includeCampaignNameContains a list of phrases contained in campaign names which you would like to include. Like excludeCampaignNameContains these should be in quote marks and comma separated: for example [“Brand”,”Competitor Names”] to include only campaigns with names containing ‘brand’ or ‘competitor names’. Leave blank, , to include all campaigns.
We’ve set the default value of shoppingCampaigns to false, so if you’d like to run this script over Shopping campaigns rather than regular campaigns, make sure to change this variable. If you’d like the script to work over both types of campaigns, then simply duplicate the script and have two instances running in your account.
Once the settings have been configured, you’re ready to set up a schedule for the script: set it up to run hourly.
When you no longer want to use this script, simply set the lastRun variable to true and run the script once. This will remove all of the ad schedules and set all campaign mobile bid adjustments to 0%. Also remember to stop the script’s schedule, so it doesn’t carry on running every hour.
There are a few things to note:
- Important: For all affected campaigns, this script will delete all existing ad schedules!
- If you are using the script with mobile bid adjustments, it will overwrite any existing campaign level bid adjustments in the affected campaigns. However it won’t touch ad group level mobile bid adjustments — you’ll need to remove these yourself. (Otherwise, they’ll override the campaign-level adjustments.)
- The script uses your AdWords account’s time zone to decide what hour it is.
- Remember, there are limits to the bid adjustments: ad scheduling can’t go higher than +900%, and mobile bid adjustments can’t go higher than 300%. While you can use -100% to represent your campaigns being off (or opting out of mobile) you can’t use adjustments between -100% and -90%.
- If there’s an illegal bid adjustment (e.g. outside the limits or not a number) the script will default to an adjustment of 0% instead. This will be shown in the script’s log.
- If there’s a blank cell, the script will assume that means the adjustment should be -100%.
- This script’s timing is more precise than the previous version’s. A scheduled script could run at any point in the hour; in the previous script, the bid you want for 2:00 p.m. might be applied at any point between 2:00 p.m. and 3:00 p.m. Google’s ad scheduling allows you to change the adjustments exactly on the hour, but has a limited number of windows — so the new script keeps a rolling set of adjustment windows (this hour’s adjustment and the next few hours’ adjustments). Every hour, the script will remove last hour’s bid adjustment, and with the window that frees up it will create an adjustment for the future.
- This means if you stop running the script, the schedules will stop your ads from showing most of the time. You need to run the script one last time with lastRun set to true, or manually change the ad schedules.
- However, the above only applies to ad schedules, not mobile bid adjustments — they can only be changed when the script runs. So bear in mind that mobile bid adjustments may not change at exactly the right time! If any smart AdWords developer people have ideas to get around this, you’ve earned yourself a job at Brainlabs. At the moment, we just run the script a few times until it gets assigned a run time close to the hour mark — once it does, this it tends to keep that same time slot.
Opinions expressed in this article are those of the guest author and not necessarily Search Engine Land. Staff authors are listed here.