AI Max NegativeIQ
Stop guessing which search terms are wasting your budget. Let AI tell you.
A free, open-source tool that connects your Google Ads account to AI, classifies every search term, protects what's converting, and tells you exactly what to add as a negative. Built for Search campaigns. V2 is in development.
€0
Free, forever. No upsell, no email gate.
Google Ads
+ Sheets + AI
Runs entirely inside your accounts.
Your search terms, intelligently classified by AI.
Most Google Ads accounts are leaking budget on search terms that will never convert — job seekers, competitors, irrelevant queries. Manually reviewing them is slow, error-prone, and doesn't scale. AI Max NegativeIQ automates the entire process.
Every day, the Fetcher pulls your latest search terms into a Google Sheet. The Analyzer sends them to an AI — which classifies each one based on your industry, your business, and your conversion data. Not generic rules. Actual context.
Every term gets a classification, a confidence score, and a one-line explanation. You review, correct if needed, and push negatives back into your account in one click.
Conversion protection — always on
Any term that has driven a conversion is automatically protected — never flagged.
| Search Term | Class | Conf |
|---|---|---|
| buy running shoes online | ✓ Relevant | 0.97 |
| running shoes jobs | ✗ Junk | 0.99 |
| nike air max price | ⚑ Competitor | 0.94 |
| how to clean sneakers | ✗ Info | 0.81 |
| red sneakers size 9 | 🛡 Protected | — |
Example output. Your real data, your real account.
Three components. One complete system.
The Fetcher
Google Ads → Scripts
Runs daily. Pulls every search term from your Search campaigns, deduplicates them, and aggregates clicks and conversions over a 30-day window. Writes everything to your Google Sheet automatically.
The Analyzer
Google Sheets → Apps Script
The intelligence layer. Sends search terms to AI in scalable batches. Each term returns with a classification, a 0–1 confidence score, and a plain-language explanation. Config-driven: define your industry once.
The Google Sheet Template
Your dashboard
Four tabs, all automated. SearchTerms is your working surface — color-coded by classification, confidence-scored, with a one-click export. Config is the only thing you touch per account. Negative_Export holds validated negatives ready to push. Expansion_Ideas captures search terms worth building new campaigns around.
How long will AI-Classify take on your account?
Google Apps Script has a 6-minute execution limit. Drag the sliders to see how your keyword count and batch size affect runtime — and whether you'll need more than one run.
Interactive runtime and cost calculator
Inputs
Runtime estimate
Batches
20
of 15 terms
Duration
50s
6 min GAS limit
Runs needed
1
press AI-Classify 1x
Status
Safe
fits in one run
Cost estimate · gpt-4o-mini
Input tokens (est.)
—
~400 per batch
Output tokens (est.)
—
~120 per batch
Total cost
—
gpt-4o-mini rates
Batch size vs runtime (your keyword count)
Up and running in minutes.
The Config and API key are a one-time effort. If you can paste text and click a button, you can run this.
Copy the Google Sheet template
Open the template from GitHub, make a copy, and fill in the Config tab — your industry, business name, and 5–8 example classifications.
Add the Fetcher to Google Ads
Tools → Scripts → New. Paste the Fetcher code, replace the Sheet URL, authorize it, and set it to run daily.
Add the Analyzer to your Sheet
Extensions → Apps Script. Paste the Analyzer code, save, and authorize. A new menu item appears in your Sheet.
Run the setup menu
Click AI Max NegativeIQ → Prepare Layout. Styles all four tabs, adds color coding, and sets up dropdowns.
Let it run — then review
Next day, classify all new terms, review the AI's suggestions, validate, and push negatives to your account in one click.
It's real code. Here's a slice.
// Pull search terms from Google Ads → Sheet
function fetchSearchTerms() {
// Only pull terms with real traffic
const query = `SELECT
search_term_view.search_term,
metrics.clicks,
metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.clicks > 0
`;
// Deduplicate — aggregate across campaigns
AdsApp.search(query).forEach(row => {
// ... aggregate logic
});
// Write new terms to Sheet
writeNewTermsToSheet(seen, sheet);
}
// Full source on GitHub ↓
🐒
Free. Open source.
No email required.
If it saves you money, a GitHub star goes a long way. It helps other Google Ads specialists find the tool.
Buy me a coffee ☕
The tool is free and always will be. But if it saved you wasted spend, a coffee goes a long way — and makes the next script happen faster.
Scan to buy
a coffee
Want this running on your account today?
I can set this up, customize the Config for your industry, and have it classifying your search terms by tomorrow. That's what I do.
Running Performance Max? v2 is on its way.
The current version covers Search campaigns. A PMax variant is in development — drop me a message to be notified.