What it is.
The script walks your ads, keywords, and campaign or ad group sitelinks, checking that each URL returns something other than a "Page not found". Results write to a Google Sheet and an email arrives after each pass.
You schedule it Hourly and control how often a full sweep happens with the "Days between analyses" setting, because it works through the account in slices to stay inside Apps Script time limits.
The validation settings are worth tuning. "Valid Response Codes" decides which HTTP replies count as healthy, a failure string catches pages that load fine and still show an error, and a custom JavaScript function handles anything stranger than that.
What you get.
- A Google Sheet listing every URL checked and the response it returned.
- Email alerts you can set to fire per execution, per completed sweep, or only on errors.
- Coverage of ad final URLs, mobile final URLs, keyword URLs, and sitelinks.
- A "Valid Response Codes" setting, so you decide which HTTP codes count as healthy.
- Optional custom JavaScript for pages that load fine and still show an error message.
How to set it up.
Open Tools, then Bulk actions, then Scripts in your Google Ads account and create a new script.
Copy the template spreadsheet linked from the solution page, then paste its URL into the script's spreadsheet_url variable.
Set recipient_emails to the people who should hear about a broken link.
Choose which entity types get checked and whether paused ads and keywords are included.
Schedule the script Hourly and control sweep frequency with the "Days between analyses" setting.
Authorize it once, preview a run, and read the sheet before you trust the email.
Use cases
Catch a dead landing page
Run it daily so a broken URL surfaces before the spend does.
Alert only on a problem
Set the email to fire on failures so the inbox stays quiet otherwise.
Prove coverage after a migration
Check every ad URL once the site has moved and read the response per row.
Best for
Accounts with many landing pages
Every product page, pricing test, and campaign URL is one deploy away from breaking, and paid traffic keeps arriving either way.
Post-migration cleanup
A site move breaks ad URLs quietly, because Google Ads keeps serving whatever sits in the ad.
Teams with no monitoring
Nobody has to remember to check, and the email arrives whether or not anything broke.