How to Set Up a Full Google Ads Policy Checker Script Using GAQL
If your firm runs Google Ads and you’re not checking for disapprovals or policy limits across keywords, image assets, or ads, you’re missing major issues that could block impressions. Google doesn’t always alert you, and that means wasted spend and missed leads.
This post shows you how to drop a free, comprehensive policy violation script right into your account. It uses Google’s current standard: GAQL (Google Ads Query Language) and AdsApp.search()
.
This script checks:
- Disapproved or limited ads
- Disapproved or limited keywords
- Disapproved or limited lead forms
- Disapproved or limited call assets (phone # extensions)
- Disapproved or limited image, sitelinks, promotion, structured snippet and call-out asset ad policies .
You’ll get an email alert if anything’s wrong, and you can run it on a schedule to stay ahead of policy problems.
Step-by-Step: How to Set It Up
- Go to Google Ads > Tools & Settings > Scripts
- Click the + to create a new script
- Paste in the full code from the section below
- Replace the email at the top:
var RECIPIENT_EMAILS = '[email protected]';
- Hit Authorize, then Preview, then Run
- Click Schedule to automate it (daily is good, but hourly is the way to go with this one IMO)
That’s it. Now you’ll get alerts when an image, ad, or keyword hits a policy block.
Why This Script Works Better Than the Old Style
This isn’t the old .get()
method. Google now prefers AdsApp.search()
with GAQL. Here’s why:
- Faster, even in large accounts
- Checks multiple levels in one query
- Gets you more detail on why something is disapproved
- Matches Google’s Ads API, so it’s future-proof
Most scripts online don’t check image assets or asset links at all. This one does.
Pro Tip: Want to Exclude Campaigns?
Just add campaign names to this line:
var EXCLUDED_CAMPAIGN_NAMES = ['Your Brand Campaign', 'Test Display'];
Final Notes
This is the script I use on client accounts. It’s updated, lightweight, and tested. If your internal marketing team wants help customizing it or adding webhook alerts, I can set it up for you.
If you need help, feel free to reach out.