Weekly
Get negative keyword suggestions
AI reviews your recent search terms each week and suggests negatives for you to add.
- Runs
- Weekly
- Apps
- Google Ads
- AI
- Yes, uses the built-in AI allowance
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every Friday, have AI read last week's Google Ads search terms for my 'Running shoes' campaigns and email me suggested negative keywords with a reason for each.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A dentist in a mid-sized city bids on "emergency dentist" and watches the search terms report fill with "dentist jobs", "dental school application" and "free dental clinic". Each of those clicks costs a few dollars and none will ever book. Reading the report line by line is dull enough that it gets done once a quarter, so for months the budget leaks into searches that were never going to pay back.
Each week, ClickRuntime pulls the search terms that triggered your ads and hands them to its built-in AI, which flags the ones that look irrelevant to what you sell. The flagged terms arrive by email as suggested negative keywords, with a short reason for each. Nothing is added to your account unless you decide to add it.
Because the AI sees the actual terms, it handles patterns like job seekers, students and DIY searchers that a fixed list would miss.
What you get out of it
Wasted spend traced to specific queries
Each suggested negative is a search term that cost money and does not match your offer. Blocking "dentist jobs" once stops that waste every week afterward, which compounds across months of budget.
Hours saved on report reading
Scanning hundreds of terms by eye is slow and easy to skip. The AI pre-sorts them so you only review a short list of likely mismatches, which turns an hour of tedium into five minutes.
Your judgment stays in control
Suggestions arrive by email rather than being applied automatically. That matters because some odd-looking terms convert, and you know your business well enough to keep a few the AI would block.
Click quality improves over time
As negatives accumulate, a larger share of clicks come from people who want what you sell. Conversion rate and cost per lead tend to move in the right direction without raising the budget.
Spots messaging mismatches too
If many irrelevant terms share a theme, such as free services or competitor names, it points at ad copy or match types that are too broad. You fix the cause as well as the symptoms.
How it works
What happens, step by step
Every week, ClickRuntime pulls the Google Ads search terms that cost money without converting.
AI reads them alongside a description of your business and flags the ones that do not fit, such as people looking for something free.
You get an email with each suggested negative keyword and a short reason, ready for you to add in Google Ads.
Before it runs live
- Connect Google Ads
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Google Ads steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, ai, notify
CUSTOMER_ID = "1234567890"
def gaql(query):
headers = {"Authorization": f"Bearer {credentials.connection('google', 'ads')}",
"developer-token": credentials.secret("GOOGLE_ADS_DEVELOPER_TOKEN")}
batches = http.post(f"https://googleads.googleapis.com/v21/customers/{CUSTOMER_ID}/googleAds:searchStream",
headers=headers, json={"query": query}).json()
return [row for b in batches for row in b.get("results", [])]
BUSINESS = "B2B invoicing software for small agencies"
@on_trigger
def run(event):
rows = gaql("SELECT search_term_view.search_term, metrics.cost_micros, metrics.conversions "
"FROM search_term_view WHERE segments.date DURING LAST_7_DAYS AND metrics.conversions = 0 "
"ORDER BY metrics.cost_micros DESC LIMIT 200")
terms = "\n".join(f"{r['searchTermView']['searchTerm']} (${int(r['metrics'].get('costMicros', 0)) / 1e6:.2f})" for r in rows)
if not terms:
return {"suggestions": 0}
suggestions = ai.generate(f"Business: {BUSINESS}\nSearch terms with spend and no conversions:\n{terms}",
system="List the irrelevant terms as negative keyword suggestions, one per line with a 3-word reason.",
max_output_tokens=500).text
notify.email_me("Negative keyword suggestions", suggestions)
return {"terms": len(rows)}FAQ
Common questions
How does the AI decide a search term is irrelevant?
Will it suggest negatives for terms that already converted?
Should the negatives be exact, phrase or broad match?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a monthly ads review with recommendations
On the 1st you get last month against the month before, with written takeaways and suggestions.
See how it worksGet last week's results per campaign
Every Monday you see spend, clicks, conversions and cost per conversion for each campaign.
See how it worksCatch campaigns that overspend
You get an email when a campaign spent far more yesterday than it usually does.
See how it worksKeep exploring
Set up “Get negative keyword suggestions” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.