September 5th marks the first anniversary of AdWords Scripts. I’ve been using them extensively to automate tasks ranging from reporting Quality Score to creating entire AdWords accounts from spreadsheets of products and services.
Scripts have come a long way since they were launched, so to celebrate their first year, I’d like to share five tips for ways to use the latest capabilities to automate common AdWords tasks. And there’s also a goodie in this post: a free script to help you set mobile bid modifiers in Enhanced Campaigns.
1. Automatically Calculate & Set Mobile Bid Modifiers
A new method for dealing with platforms was recently introduced in AdWords Scripts. In addition to making it easy to report overall performance on different devices like mobile and desktop, you can now also set bid modifiers for when your ads appear on mobile devices. This is great because rather than manually calculating mobile bid modifiers in spreadsheets, you can now hand off that tedious and repetitive task to an AdWords Script.
To show how this works, I worked together with Russ Savage, the guy behind FreeAdWordsScripts.com to create a free script that recommends and sets mobile bid modifiers. We decided to use Kohki Yamaguchi’s methodology as explained on MarketingLand.com to determine bid multipliers based on ROAS or RPC data.
His calculation is sophisticated in that it uses cost or click-weighted averages at the keyword level to determine the ad group bid multipliers. This method gives better results than using ad group level data, but it’s also more tedious to calculate. Especially when working with a spreadsheet, it can get pretty involved.
Our script demonstrates how all the calculations can be done programmatically and how the recommended bid modifiers can be automatically applied to campaigns. The AdWords Script can set the mobile bid multiplier at the campaign level, but if you want to get more granular and apply bid modifiers to ad groups, you have to take the outputs as a spreadsheet for use with AdWords Editor because ad group level modifiers are not yet supported in Scripts.
2. Add Location Keywords Automatically
Along with platform targeting, AdWords Scripts also rolled out the ability to manage location targeting. This means that you can programmatically set location bid modifiers, just like we did in the example for mobile bid multipliers. Now that bid management in AdWords is no longer just about setting max CPCs but also about managing a plethora of bid modifiers, it’s great to have an easy-to-use way to automate this.
Another interesting way to use the location targeting information in Scripts is to use it to automatically generate location-based keywords. Here’s how this works: use the Targeted Locations method in Scripts to get a list of locations a campaign is targeting, and then create new keywords in a different campaign by combining the location with the existing keywords.
This assumes you have included some location targets for your campaign that you’d want to see in keywords. So if you’re targeting a list of cities or zip codes, those will all be available for use in creating new keywords.
However, if you’re targeting an entire country, say the United States, then this would only produce one new keyword with the location “United States,” and that probably isn’t extremely useful. On the other hand, if you’re advertising a franchise where every franchise location has its own geo-targeted campaign, then this can be a very useful trick to automatically make all the correct location specific keywords in a campaign that targets the entire country for example.
3. Manage Cross-Account Negative Keywords
While working on AdWords at Google, a common request was for an easier way to manage negative keyword lists. In response to that feedback, campaign-level negative keywords and negative keyword lists were created. But advertisers who need to manage negative keywords across accounts are still left to do this manually. Now, thanks to the introduction of negative keyword management in AdWords Scripts, it’s relatively easy to start managing negative keywords across accounts.
Here’s how I’ve implemented that for accounts we help manage. We create a Google Spreadsheet where each tab contains a list of negative keywords. Whenever we run a Search Terms report and come up with new ideas for negative keywords that apply across all advertisers in a particular vertical, we simply add that new negative keyword to the appropriate tab in the spreadsheet.
Then we have a keyword maintenance script that runs on a schedule; its job is to take the list of negative keywords from the spreadsheet and add it to the campaigns that are in the same vertical. When we need to add the same negative keywords to multiple accounts, we simply add our script to all accounts that need it.
Now, when we manage hundreds of accounts for a large franchise, adding a new negative keyword to all accounts and all campaigns takes a few minutes rather than half a day of manually copying and pasting through the Editor.
4. Run Your Entire AdWords Account On Scripts
When Scripts first launched, they used their own authorization scheme to manage which users had permission to run a particular script. This was different from the standard oAuth methodology we’re used to seeing from Google. As a result of this more limited authorization method, AdWords users were restricted to authorizing a maximum of 15 scripts.
And, that’s a per-user limit and not a per-account limit, making it especially hard on MCC users who wanted to run the same script in many of their managed accounts. An MCC user who wanted to run a single script automatically across more than 15 accounts had to constantly reauthorize, undoing all the benefits of having scripts run automatically on a schedule.
Now, Scripts have switched to using oAuth and every user can authorize 150 scripts to run automatically. That’s a huge improvement, but it’s still a limit that may be too low for some, so here’s how I handle it: I create individual logins for each account I’m managing.
Because I don’t want to create new email addresses for each login, I use a little trick not too many people seem to be aware of: in Gmail, anything from a “+” onwards in an email address gets ignored, so the email addresses Frederick@gmail.com and Frederickfirstname.lastname@example.org are the same Gmail address. However, they are recognized as separate logins for AdWords and many other systems. So, I can use a single Gmail address to receive all account-related emails and still use it for creating as many AdWords logins as I need.
The downside of using multiple logins rather than going through MCC is that it requires lots of logging in and out of accounts, but there are tricks to make that more manageable, too. First, I use a password manager to keep track of all my logins. My friend and former Googler Vijay Pandurangan created Mitro, a free password manager for Chrome that seems to be the fastest for quickly logging in.
Secondly, I use multiple profiles in Chrome. One of my profiles is logged into my AdWords MCC and the other is used for logging in and out of the accounts individually. That way, I get the best of both worlds: unlimited Scripts and easy access to any account through my MCC.
5. Use XML To Automate AdWords
While not a part of the AdWords Script service, the XML service recently became available for use in AdWords Scripts. This is useful because XML can now serve as an input into your scripts. In the past, I’ve explained how to use labels and Google Sheets to store data for use in Scripts; but now, rather than having to rely on a Google Sheet to be a temporary storage for your XML feed, you can connect directly to that XML feed. For example, if you’re looking to generate ads from a product database, now you can read the data you need directly from your XML source.
Scripts have been an amazing tool in my AdWords arsenal since I started managing accounts, and I can’t wait for them to get even more powerful so I can focus on the strategy and let the Scripts handle the day-to-day reporting and dealing with any of the repetitive tasks of AdWords.
Opinions expressed in the article are those of the guest author and not necessarily Search Engine Land.