If you can believe it, since publishing our first version of this script a year ago, Google has gone and changed AdWords again. And here we were thinking it would just stay the same forever — guess we were wrong!
New AdWords stuff means new potential for screw-ups, hence the 2017 revamp. Who knows? Maybe we’ll do a new one every year (definitely don’t hold us to that, though).
So, what’s new since this time last year? Well, we could mention the exact match thing, but maybe it’s better just to take a deep breath and put that one to the side for now. Otherwise, the biggest new addition is the launch of expanded text ads (ETAs). And, seeing as as we had to update the script for ETAs, we thought we’d also include sitelinks and callouts, just to be nice.
So, without further ado, here’s our updated script for blunder-proof Google ads!
(Legal Disclaimer: Brainlabs takes no responsibility for any blunders taking place after said script has been downloaded.)
To use the script, copy the code below into your AdWords account, and then change the following settings:
- spreadsheetUrl is the URL of a Google Doc spreadsheet, which the results will be copied into. Create a blank spreadsheet and put the URL in here.
- Enter into the array campaignNameDoesNotContain 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, [“Display,” “Shopping”] to exclude all campaigns with names containing “display” or “shopping.”
- Enter into the array campaignNameContains a list of phrases contained in campaign names which you would like to include. Like campaignNameDoesNotContain, these should be in quote marks and comma separated — for example, [“Brand,” “Generic”] to include only campaigns with names containing “brand” or “generic.”
- You can leave campaignNameDoesNotContain and campaignNameContains blank, , to include all campaigns.
- They are not case-sensitive.
- If you need to put a double quote in, put a backslash before it.
- If your account is large and the script keeps timing out, you could try running the script multiple times, using campaignNameContains or campaignNameDoesNotContain to look at different campaigns each time.
- If ignorePausedCampaigns is true, then the script will only look at currently active campaigns. Set them to false if you want to look at currently paused campaigns.
- You can use this to check new campaigns before they go live.
- If checkKeywords is true, then the script will check your keywords.
- If checkAdText is true, then the script will check your text ads for certain phrases (past years and seasonal events by default).
- If checkSpelling is true, then the script will see if some common English misspellings appear in your text ads.
- If the script times out when you try to run it, you could try setting two of the above three settings to false and one to true, so that you do one of the checks at a time.
- If checkExtensions is true, then the script will check your callouts and sitelinks for specified phrases (if checkAdText is true) and spelling errors (if checkSpelling is true).
- If checkAllExtensions is false, then the script will check the extensions that have impressions with your filtered campaigns. (This is because the AdWords Scripts report won’t show campaign info if there aren’t impressions.) If it is true, then all callouts and extensions will be checked, regardless of whether they are attached to anything or have impressions.
- checkAdsFor is a list of pieces of text used to check your ads (if checkAdText is true). If an ad contains any of the specified text, it will be logged in the spreadsheet. We’ve suggested the past few years and a few holidays, but you could remove any you don’t want or add your own — they just have to be in quotation marks and separated by commas.
- Guess what? This isn’t case-sensitive.
- Using the power of regular expressions, the script will only check for whole words — if you’re checking for “Easter,” it won’t pick up ads that say “Eastern” or “feaster.” It will pick up “Easter’s.”
- The script looks at ad text as a whole, rather than line by line. That means that if you put “Black Friday” in checkAdsFor, it will spot if an ad says “Black” at the end of headline 1 and “Friday” at the start of the description.
We’ve also stuck in an Advanced Option: misspellingsSheetUrl is a Google Sheet where we’ve included the most commonly misspelled English words (based on Wikipedia’s wonderfully useful list). If you’d like to use a different list — to reflect misspellings of your industry’s terms or for other languages — you can replace the URL with your own spreadsheet, and replace misspellingsSheetName with the name of the tab in your spreadsheet containing the misspellings. Just make sure it’s formatted the same: misspellings in column A and possible corrections in column B.
Some opinions expressed in this article may be those of a guest author and not necessarily Search Engine Land. Staff authors are listed here.