Automating AdWords: Programming and AdWords Scripts
Managing AdWords accounts on a large scale can be challenging. At Forward3D we use technology as much as possible to get the best performance from our campaigns, and while knowledge of programming is in no way essential for this task, it can definitely help in certain situations.
For instance, you may want to keep a brand term keyword at position 1.0. You can write a script that will check yesterday’s average position every morning and increase your bid if needed, then email you to tell you about it.
Using scripts saves time. Every hour a week saved through automation can be used to gather better insights from deep dives, make finer optimisations and
practice that table tennis serve think of more creative solutions for your clients.
Other than automated reporting, I’ve found that scripts can help out with two main types of task.
Once your accounts get to a certain size (multiple accounts with 1000+ campaigns in each), downloading each one into AdWords Editor and making changes/uploading builds can become laborious without DoubleClick or another third party tool. Using MCC scripts enables you to quickly cycle through all of the accounts in an MCC and make the required changes, whether that be labelling campaigns, building and posting new ads, or easily removing the lowest performing ad copy variation in each ad group.
One particularly useful script that we’ve created was written after a client called to request that all campaigns across 25 accounts be immediately paused. The campaigns were paused easily enough in the MCC view of the AdWords interface. The trouble came when we tried to ascertain which campaigns were already paused before we set them live again. Now we use a script that only looks at currently live campaigns, attaches a label containing the date, and then pauses them. A second script looks for these labels and reactivates only those campaigns: quick and tidy.
The recent move to ETA ads also presented us with a problem: how can we build and upload 150,000 bespoke ads at the busiest time of the year without compromising the rest of our work? Manually building these with the same kind of ad-group granularity as our existing ads would take the person weeks. What followed was a wave of google searches beginning with ‘python how to…’ and a day later we had a working program. It now takes the campaign and ad group names and dynamically creates three ads per adgroup with tailored, relevant copy. It spits these out into a .csv file which was then ready to be checked and upload straight into AdWords Editor. Note: you need a pretty solid and consistent naming convention for this to work!
Checks & Alerts
Scripts can help you catch areas of your account which might not be operating at their full potential. Google have a great Anomaly Detector, which can be modified to suit your needs. Other possibilities include: getting email notifications of high spending generic keywords, finding keywords whose match type doesn’t match that of the ad group, outputting to a google sheet to track a keyword’s quality score over time, or checking you’re using ad extensions wherever possible. For example, every morning a script checks our campaigns and sends a helpful email if it finds any with less than four, ensuring our ads always take up the maximum possible SERP real estate.
A word of caution: changes made using AdWords scripts are not easily ‘undo-able’. Fortunately, AdWords offers a preview tool to see the changes your script would make to an account, so always make use of this before actually running the script.
Stephen Howe – Junior PPC Analyst