I am not usually a proponent of automating paid search campaigns. I relish the control of choosing keywords, setting bids, and writing ad copy.
However, Google has introduced features in the last year or two — audiences, responsive search ads, bidding strategies — that include signals that advertisers cannot impact. For example, advertisers can set device bid modifiers, but cannot adjust bids based on the user’s operating system. Only Google’s algorithm can.
I relish the control of choosing keywords, setting bids, and writing ad copy.
Thus I’ve adapted to less control by cautiously embracing automation. I’ll let Google utilize bidding strategies or test ad creative as long as I set the parameters. If I’m running a campaign using a “Target CPA” bidding strategy, I’ll define what the cost per acquisition should be instead of using Google’s recommendation.
But one aspect of automation that I’ve found helpful is Google Ads scripts.
Scripts are pieces of JavaScript that can automate account tasks and connect with external data sources, such as Google Sheets. Among other functions, scripts can:
- Update bid modifiers based on pre-defined parameters.
- Delete disapproved ads.
- Track Quality Scores.
- Report account anomalies.
The idea of using scripts initially scared me. I know little coding. But it’s not a big deal. Most scripts require only that you copy and paste into the Google Ads interface and set your parameters, which are often highlighted to know what to update. You can then set the scripts to run on any schedule. I’ve found that automating tasks allows me to spend time on other aspects of the account.
Implement scripts in the Google Ads “Tools & Settings” section, at Tools & Settings > Bulk Actions > Scripts.
After copying it into the interface, you must authorize the script. (The message says that the script wants to access your Google account.) After providing access, you can then preview the script to see the outputs. If the preview is acceptable, you will run the script. You can select the run frequency on the overview page. The options are:
- Once,
- Hourly,
- Daily,
- Weekly,
- Monthly.
There are hundreds of Google Ads scripts. In this post, I’ll address three that are especially helpful.
Link Checker
What it does. “Link Checker” from Google reviews your account and sends an alert for ads and keywords with URL errors. For example, if an ad links to a 404 page or a 500 status code page (internal server error), the script will send you an email. The script checks the URLs of all ads, keywords, and sitelinks — live or paused. For accounts with hundreds of URLs, consider running the checker hourly to know quickly if there are errors. Daily or weekly is fine for smaller accounts.
What to customize. There are three sections of the code to update: “Spreadsheet_URL,” “Recipient_Emails,” and “Label.”
- SPREADSHEET_URL. Insert the URL of the sheet that contains the broken links. Copy this document and past the new URL into the script.
- RECIPIENT_EMAILS. Add the email address(es) of whoever should receive the report. For multiple emails, the syntax is “person1@example.com”, “person2@example.com”.
- LABEL. Assign a label to every ad and keyword that has been reviewed by the checker. The name by default is “LinkChecker_Done.” You can change if you prefer.
The script. Download a text file of the “Link Checker” script.
—
Negative Keyword Conflicts
What it does. Accounts can contain hundreds of keywords. It’s common to find a negative keyword blocking a positive one. For example, my ad will not show if I bid on the exact match of “computer monitoring software” and I have “computer” as a negative keyword. The “Negative Keyword Conflicts” script from Google identifies these errors and sends an email alert. If you consistently add keywords, consider running the script hourly. Otherwise, run it daily or weekly.
The script may time out for more than 250,000 keywords (and 50,000 negative). A section of the script can be customized, however, to look only at campaigns that are under the thresholds.
What to customize. The script also requires three updates.
- SPREADSHEET_URL. Insert the URL of the sheet that contains the negative keyword conflicts. Copy this document and paste the new URL into the script.
- RECIPIENT_EMAILS. Add the email address(es) of whoever should receive the report.
- CAMPAIGN_LABEL: You can create a label and assign only the campaigns that you want to check. This helps avoid scripts timing out from large accounts. You could, for example, create a label called “Check Negative Keywords” and assign it to specific campaigns. The script will only review these campaigns. If the field is left black, the script will check all campaigns.
The script. Download a text file of the “Negative Keyword Conflicts” script.
—
Overdelivery
What it does. Two years ago, Google announced that daily budgets could automatically overspend by two times. Google’s rationale is that it knows the busy and idle times of the month. Google claims that the overall monthly budget will still be the same. This script, from Free AdWords Scripts, is for advertisers that want a safeguard.
The script will automatically pause campaigns when they’ve reached a threshold and then re-enable them the next day. For example, the script will pause a campaign at a $102 daily spend if the budget is $100. The script runs hourly. You can also set an over-delivery percentage.
There are a few items to consider when running this script. First, you’ll need to create a daily rule to re-enable the campaigns. Follow these steps:
- Go to the “rules” section of Google Ads.
- Create a new “Campaign rule.” The rule type is “Enable campaigns.”
- The condition is by “label” and will apply the “paused by over-delivery checker script” label.
- The frequency is daily at midnight.
- The “using data from” option does not matter.
- Choose to receive an email notification based on your preferences.
- Save the rule.
The script does not work on Shopping and Video campaigns. It also doesn’t work on campaigns with shared budgets.
What to customize. Aside from the automated rule, the script only requires one update. The “allowedOverdeliveryPercentage = 0.2” line needs to include the threshold to exceed. For example, 0.2 is 20.0 percent, while 0.0 is 0.0 percent. You must include the decimal.
The script. Download a text file of the overdelivery script.