Skip to content

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.

Paste it into your assistant. It tells you what it will send or change before it runs live.

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

  1. Every week, ClickRuntime pulls the Google Ads search terms that cost money without converting.

  2. AI reads them alongside a description of your business and flags the ones that do not fit, such as people looking for something free.

  3. 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

RunsWeekly
Get negative keyword suggestionstoday, 9:00Succeeded
Email · Negative keyword suggestionsfree invoice template – wants free download acme crm login – existing Acme customers

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
ai_negative_keyword_suggestions.pyexample
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?
It compares each term with the business context in your campaigns, such as the keywords you bid on and your ad text, and flags terms whose intent clearly differs. It is a judgment call, not a guarantee, which is why you get a list to review instead of automatic changes.
Will it suggest negatives for terms that already converted?
You can ask it to skip any term with conversions in the period, which is a sensible safeguard. Without that rule it may flag a term that looks odd but produced a lead, so most people set a conversion exclusion from the start.
Should the negatives be exact, phrase or broad match?
The email proposes terms and you choose the match type when adding them. Exact match is safest for single odd queries, while phrase match works for recurring themes like "jobs" or "free". Broad match negatives can block too much, so use them carefully.
What permissions does it need?
read. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it runs (weekly). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get negative keyword suggestions” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.