A few weeks ago, Google announced the introduction of AdWords Scripts. It’s not really news nor is it an epiphany, but since I couldn’t find any article going much beyond the official announcement, I wanted to share my own thoughts on the subject.
If you already have access, you can find the AdWords Scripts on the left menu on the AdWords interface under the heading Automation.
If you don’t have it yet, you can request access by submitting this form. You can do this for as many accounts as you like and it seems that Google grants access to everyone. You won’t be notified though.
Scripting AdWords Scripts
In addition to the incredibly helpful drop down menus the button Show examples leads to nice collection of code snippets and a few complete scripts. Before running a script for real you can also use the Preview button to try out the script in a dry run (which applies no changes to your campaigns) for up to 30 seconds. With that much built-in help the official documentation becomes more or less redundant.
Integrating other Services
Besides some basic functionality directed towards AdWords campaigns, there are three other services from the Google Apps Script infrastructure that can be used in AdWords Scripts:
The URL fetcher lets you access external URL’s
- The Mail service lets you send simple text emails (apparently up to 500 per day)
By using these services you could theoretically write some very complex applications. The URL fetcher in particular opens up all kinds of possibilities since it can be used to communicate with the outside world. There’s a very popular tutorial called Bid by Wheather which demonstrates how to access wheather data and manipulate bids accordingly (fair warning: reality is much more complex than this tutorial).
For practical use, I think spreadsheets are the most interesting service of the three. The obvious application here is to output statistics and generate reports. The service can be used to insert charts into spreadsheets, but there is an easier way to generate great looking reports (as demonstrated in the tutorial Create a keyword performance report): First, create the spreadsheet manually and include all the charts you want – that’s your template. Then use a script to update the stats the charts are based on – now you have a complete report.
Another application for spreadsheets is to use them as a primitive kind of database. Since you can read from spreadsheets, too, they can be used to remember things in between script runs.
Limits of AdWords Scripts
In theory you could write some complex applications and automate your reporting with AdWords Scripts. However, there are some limitations which drasticly restrict the usefulness of scripts.
The biggest restriction is probably that AdWords Scripts only offer a rudimentary functionality when it comes to AdWords itself. Everything revolves around campaigns, adgroups, keywords, and ads. Most functions are there to retrieve statistics, but only some basic statistics are available (conversion value, for example, is not). There are also a few functions to manipulate things, but it’s not a very long list:
Campaigns: activate, pause, change budget
AdGroups: activate, pause, set bid, add keyword, add ad
Ads: activate, pause, delete
Keywords: activate, pause, delete, set bid, set destination URL
That’s it. This covers the basics, but aspects like campaign settings aren’t supported. You can’t add campaigns or adgroups, you can’t change names or use labels. More importantly, things like ad extensions, product targets, and everything about the display network are completely missing.
Another limitation comes in the form of the maximum execution time of five minutes. This should be plenty, but AdWords scripts aren’t exactly fast.
I’ve played a little with the iterators and I’ve found that going through 10,000 keywords without doing anything already takes around two minutes. If you simply log the name of every keyword the script doesn’t even get through half of those keywords before it gets aborted after five minutes. This limits the use of complex applications which do a little bit more than just logging keyword names.
Another limitation is that scripts, although filed unter Automation, can’t be fully automated: If you want a script to run you have to start it yourself. Scheduling a script to run every day at midnight isn’t possible – yet. Eric Koleda from Google mentioned that they are working on that, but couldn’t offer a timeline.
AdWords Scripts vs. AdWords API
While AdWords Scripts are a very cool feature, they hardly offer any new possibilities. The good old AdWords application programming interface provides access to almost everything you can do on the AdWords interface itself. There are even a few features that are only available through the API. One of those features is ad parameters, which works well in combination with keyword insertion. I was a little bit surprised that AdWords Scripts doesn’t support this feature as this would’ve made a great selling point.
Using the API allows you to code in an environment of your own choice. This could be a server somewhere or simply your own computer. The programming language isn’t predetermined and neither are the tools and services you can use besides the API. There are hardly any restrictions as to when and how long programs can run. There are some fees for using the API, but these are usually negligible.
The big advantage of AdWords Scripts over the API is that they are simple. There’s a post from the Google Ads Developer Blog that compares the code for adding a keyword. Via the API it’s 15 lines of code, in AdWords Scripts it’s just one line.
AdWords Scripts are cool, but to be honest, I don’t really know what to do with them. The interface is really nice and a great help for beginners to learn how to code. Plus, it’s definitely much more fun than the API. But what can you really do with these scripts?
Google has published a nice selection of complete scripts, but none of these seem useful to me. I mean, I don’t need a script to download statistics – the AdWords interface lets me do this much quicker and easier. The same goes for enabling or pausing things. And for adding or changing things the AdWords editor is a much better choice.
In the end, limited functionality and limited execution time limit AdWords Scripts to simple applications. On the other side, for many of those simple applications there are easier ways than writing a script to accomplish the same result.
There are some more advanced things you could do with AdWords Scripts, but then there’s the question of why not using the API directly? Sure, it’s more complicated, but who wants to implement something like a wheather based bid management that can’t handle more than a hundred keywords due to time constraints?
Still, there is one great thing about these scripts: They’re easy to publish and share. This makes them a great thing for the AdWords community – if the community is in fact willing to share. The question remains whether we can find enough useful applications for scripts…