Google Ads

4 Google Ads Scripts to Free Up Time

I’ve twice addressed my fondness for Google Ads scripts for automating everyday tasks. Scripts are code snippets that work behind the scenes for functions such as:

  • Identifying URL errors,
  • Finding negative keyword conflicts,
  • Notifying when an account receives no impressions in a certain period.

Scripts free up time for account strategy and critical optimizations. Here are four more of my go-to scripts.

Change History Alerts

What it does. Frequently multiple users have access to a single Google Ads account. It’s easy for one user to miss tweaks by another, requiring constant reviews of change history. For example, someone could alter a setting or pause a keyword, affecting the entire account. “Change History Alerts” shows the change, the date, and the user. I run the script daily.

What to customize.

  • SPREADSHEET_URL. Create a Google Sheet and paste its URL.
  • EMAIL_ADDRESSES. Add the email addresses (comma separated) of the report recipients.
  • IGNORE_USERS. Add the email addresses of users whose changes do not require reporting.
  • SEND_EMAIL. Set as “true” to receive an alert when someone not on the ignored users list makes a change.
  • EMAIL_SUBJECT. Keep the default subject line in the notification or update it.
  • EMAIL_BODY. Keep the default body message in the notification or update it.
  • PERIOD. The default setting is “yesterday” for daily runs. Change it as needed.

The script. Copy the “Change History Alerts” script.

Performance Max Search Terms and Categories

What it does. For years Google didn’t share search queries that triggered ads in Performance Max campaigns. It does now but requires users to dig through the Insights report. “Performance Max Search Terms and Categories” provides this info in an easy-to-read Google Sheet to then segment, filter, and format. Add queries that convert well as keywords in search campaigns. Request as negative keywords queries with many clicks but few conversions.

What to customize.

  • MINIMP. The minimum impressions for including a search term or category. Larger accounts require a higher threshold to avoid entities with little activity. The script defaults to 10 impressions.
  • SPREADSHEET_URL. Create a Google Sheet and paste its URL, or leave the field blank and the script will generate a new spreadsheet every time it runs.
  • REPORTLASTNDAYS. The data lookback window. The default is 30 days.

The script. Copy the “Pmax Search Terms and Categories” script.

Performance Max Insights

What it does. This script provides the most comprehensive Performance Max data, showing:

  • Percentage of spend by channel (Shopping, Video, Display, and Search/Other),
  • Cost and conversion metrics by campaign and network,
  • Performance by asset group.
Chart from Performance Max Insights script

Performance Max Insights reports the spend percentage by Shopping, Video, Display, and Search/Other. Click image to enlarge.

Performance Max advertisers have little control over where ads appear and the included products, but this script provides transparency. For example, a retailer with a product feed should expect more Shopping ads. If the spend percentage for Shopping is high, the campaign works as intended. If half goes to Display and is not converting, advertisers should reevaluate Performance Max.

What to customize.

The script default to the last 30 days. The paid version allows for longer date ranges.

The script. Download the “Performance Max insights” script.

RSA Checker

What it does. “RSA Checker” finds ad groups without active responsive search ads. Google classifies all newly created ads as RSAs. This script was more impactful during the transition of expanded text ads to RSAs, yet it still has value. I’ll run this script weekly on new accounts to identify ad groups that haven’t transitioned to RSAs. The script will also alert if no RSA is present due to Google rejecting an ad.

What to customize.

  • CHECKPAUSEDCAMPAIGNS. Set to “true” to check paused campaigns for RSAs.
  • CHECKPAUSEDADGROUPS. Set to “true” to check paused ad groups for RSAs.
  • CHECKPAUSEDADS. Set to “true” to check paused ads for RSAs.
  • ALERTONNEWENTITIESONLY. Set to “false” to receive emails only when new ad groups have no RSAs.
  • RECIPIENTEMAILS. Add the email address(es) of recipients.
  • LABELNAME. The label assigned to ad groups without RSAs. The default is “no_rsa_present.”

The script. Get the “RSA Checker” script.

Matthew Umbro
Matthew Umbro
Bio


x