The holidays are officially upon us, and if you’re reading this, I must give thanks to you for your time.
When I still worked at Google, this was the time of year when new product launches came to a crawl since most advertisers were too busy to deal with change, and only the most persistent product managers would dare mess with the way AdWords worked, lest they face the risk of angering advertisers that had spent months getting everything ready for Cyber Monday.
This is also a time to be thankful for our family and friends and spend more time than usual with the people we like and those we’re related to (hopefully the same). With my grandfather’s passing 3 weeks ago and the birth of our first baby, Ben, the following weekend, I appreciate family more than ever, and I want to spend as much time with them as possible.
So that’s why I want to devote a short column to new ways that AdWords Scripts will give you back time: by helping you quickly find the best ad texts; by automating AdWords and even Bing Ads; and by making it easier to use scripts in existing workflows.
Find The Best Holiday Ad Text In 30 Seconds
Have you ever wondered if seasonality influences which ad texts perform better in your AdWords account? If you knew the best converting ads to run during the holidays, you might be able to squeeze a few more conversions out of your account and make up for the increased costs during the holidays when clicks for retailers tend to get more expensive.
And even if you’re not a seasonal retailer, there’s still a lot of value in knowing your best performing ads; for example, you can profit by using the messaging that resonates the most with users in your other marketing channels.
The reason I think a lot of advertisers have a hard time answering the question of which ad is best for the holidays is that AdWords reports are not great at aggregating data. While they tell you the performance for individual ads, they don’t help you see the bigger picture.
When you’re looking at reports for thousands of ads, some of them with not enough data to even tell you anything meaningful, it’s just hard to see a pattern. Luckily, there is an AdWords Script that can help answer this question; and since it’s a reporting script, it requires no customization and can be copied-and-pasted into any account to produce instant results.
The script, which I’ll make available as a free download (with registration) for a couple of weeks on my site, looks for common headlines, description lines, and display URLs in the account, aggregating metrics for each. When I wrote this script, I was pretty surprised to see how often advertisers re-use the same pieces of text in their ads, sometimes on purpose but often by coincidence.
In one case, I found an advertiser that had only 4 ad variations for well over 1,000 keywords. In another case, an advertiser had unique ads for every ad group, but only the headline was different — description 1 and 2 always used one of three taglines. Knowing that one tagline had 3 times the CTR of another immediately gave me something to improve the advertiser’s results.
The Ad Template Report script is also great for finding differences in performance between pieces of text that are virtually the same, except for the capitalization and punctuation. To my surprise, even the tiniest difference, like not capitalizing a single word in a description line, can have a sizeable impact on the CTR.
And once you know what seems to be a high performing seasonal creative, you can quickly apply it across your account using the Editor. There’s also a Script I use to clean up underperforming ad variations, and then I let the ad rotation figure out which ad is best, in Google’s opinion, based on the best predicted CTR.
You can download and try the Ad Template Reporting Script (registration required) as-is and get metrics for the past 30 days or you can change one line to see stats from last holiday season. Alternatively, round up a techie to write a similar script from scratch.
Change the following line in the script:
var report = AdWordsApp.report(
'SELECT Headline, Description1, Description2, DisplayUrl, Clicks, Impressions, Cost, Conversions, ConversionValue ' +
'FROM AD_PERFORMANCE_REPORT ' +
'WHERE Cost > 0 ' +
'DURING ' + time
);
To this:
var report = AdWordsApp.report(
'SELECT Headline, Description1, Description2, DisplayUrl, Clicks, Impressions, Cost, Conversions, ConversionValue ' +
'FROM AD_PERFORMANCE_REPORT ' +
'WHERE Cost > 0 ' +
'DURING 20121115,20121225'
);
Notice that the line ‘DURING 20121115,20121225’ specifies the date range the report uses so you can change this as needed. The dates are formatted as yyyymmdd.
Automate Bing Ads With AdWords Scripts
I’m all about saving time and being as efficient as possible when managing an account, and that’s why I often don’t do a lot of work on Bing ads. They simply don’t have the tools that let me be efficient; even their desktop Editor is much slower than the AdWords Editor. They also don’t have anything similar to AdWords Scripts, and I don’t expect they will anytime soon.
But now that AdWords Scripts are able to access Google Drive, I realized I could have all of my AdWords Scripts save a copy of the changes I make in a file that I can upload through the Bing Ads Editor. Assuming you’re making similar changes in Bing Ads as in AdWords, this methodology will work for you, too.
For example, my script that creates ads automatically from a spreadsheet can generate a Bing Ads Editor file while it’s making the changes in AdWords. In AdWords, the script makes the changes to the account in real time. For Bing, it puts all the changes into a file that can be applied later.
When the script finishes, it can even share the file with a Bing account rep and send them an email requesting they do the upload for you. Obviously, be respectful of their time and don’t request they upload several files every day. It’s still not fully automated, but it sure beats either not being on Bing, or spending hours updating Bing Ads manually.
Create Ads From CSV Data
Another thing that’s now possible in AdWords Scripts, thanks to their new integration with Google Drive, is to use something besides a Google Sheet for storing data that your scripts need.
Many of my original scripts were built to take inputs from data in a Google Sheet because that was the only place where they could easily connect to. This method still works really well for storing the results of a Script; for example, a list of changes a script made. But it’s nice to not have to create a Google Sheet just to provide inputs to scripts anymore and to use something that’s more part of your usual workflow instead.
For example, say you have a spreadsheet on your computer with a list of all the products you sell and their inventory levels. You can leave that file on your machine but store it in a folder that is synced with Google Drive, and then an AdWords Script can directly read from this file. If you make a change to the file on your computer, the AdWords Script automatically sees that change the next time it runs.
So this opens up some cool new possibilities for how you can use your data to make automated changes to AdWords. One of our more popular Scripts is the one that creates ad groups, ads, and keywords from a Google Sheet, but many advertisers have their product data in a database or an Excel spreadsheet so the extra step of putting the data into a Google Sheet is an inconvenience. Now you can leave the data in the usual file and still have the script be able to interact with the data.
Hopefully these tips save you a few hours and get you a few more sales this year. My next column will be around Christmas so perhaps you can put your AdWords Scripts wishlist in the comments and if I see a trend, I might build and share one of the Scripts on behalf of Santa.
Contributing authors are invited to create content for Search Engine Land and are chosen for their expertise and contribution to the search community. Our contributors work under the oversight of the editorial staff and contributions are checked for quality and relevance to our readers. The opinions they express are their own.