Skip to content

Weekly

Find keywords spending with no conversions

Each week you get the keywords that cost money for a month without converting, and can have them paused.

Runs
Weekly
Apps
Google Ads
AI
Not needed
Access
read (read+write to pause)

Send this to your assistant

Create a ClickRuntime automation: every Monday, find Google Ads keywords that spent over $50 with no conversions in the last 30 days and email me the list.

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 B2B software company has 600 keywords across its search campaigns. Over a quarter, about eighty of them spend a few dollars here and a few dollars there and never produce a trial signup. No single keyword looks alarming, so the list keeps growing. Added together the spend is real money, and nobody has time to sort the account by cost and filter for zero conversions each week.

Each week, ClickRuntime queries the keyword view in Google Ads, finds keywords that spent above your threshold with zero conversions over the window, and emails the list. If you want, it can go a step further and set those keywords to paused in the account.

Some people choose the list-only version for the first month, then switch to pausing once they trust the filter.

What you get out of it

  • Slow leaks get plugged

    Many small losers add up to a meaningful monthly sum. Weekly detection means each one is dealt with after a few dollars, not after a full quarter of spend. Catching them early matters most for accounts that add keywords regularly.

  • Budget moves to keywords that work

    Pausing zero-converters frees daily budget for the terms that do produce signups. The same spend buys more conversions, without needing a bigger overall budget. Every dollar saved on dead keywords becomes available for the winners the same week, with no change to the overall budget.

  • Pausing is reversible

    Paused keywords keep their history and can be turned back on. That makes the automatic option low risk compared with deleting, since you can restore a keyword if it turns out to be seasonal.

  • A consistent standard across accounts

    A written rule such as "over $50, no conversions in 30 days" is applied the same way every week. Decisions stop depending on who happened to review the account or how tired they were.

  • Cleaner data for future decisions

    A tighter keyword list makes campaign reports easier to read. Your review time shifts from clearing out noise to testing new ideas, which is where growth comes from. It also makes handoffs to a new account manager much easier.

How it works

What happens, step by step

  1. Every week, ClickRuntime looks at your Google Ads keywords over the last 30 days.

  2. It picks out the ones that cost money but brought no conversions.

  3. If you have turned on pausing, it pauses those keywords in Google Ads for you.

  4. You get an email listing each keyword, its ad group and how much it spent.

Before it runs live

  • Connect Google Ads

What you get

RunsWeekly
Find keywords spending with no conversionstoday, 9:00Succeeded
Email · 4 keywords with no conversions in 30 daysfree crm template (Generic – Search): $184.20 northwind alternative (Competitors): $96.75

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
  • Add an AI step, for example to summarize, sort or draft a reply
  • 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.
pause_zero_conversion_keywords.pyexample
from clickruntime import on_trigger, credentials, http, 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", [])]


MIN_COST = 50
PAUSE = False  # set True to pause them automatically

@on_trigger
def run(event):
    rows = gaql("SELECT ad_group_criterion.resource_name, ad_group_criterion.keyword.text, campaign.name, "
                "metrics.cost_micros, metrics.conversions FROM keyword_view "
                "WHERE segments.date DURING LAST_30_DAYS AND ad_group_criterion.status = 'ENABLED'")
    waste = [r for r in rows if float(r["metrics"].get("conversions", 0)) == 0
             and int(r["metrics"].get("costMicros", 0)) / 1e6 >= MIN_COST]
    if not waste:
        return {"keywords": 0}
    if PAUSE:
        http.post(f"https://googleads.googleapis.com/v21/customers/{CUSTOMER_ID}/adGroupCriteria:mutate",
                  headers={"Authorization": f"Bearer {credentials.connection('google', 'ads')}",
                           "developer-token": credentials.secret("GOOGLE_ADS_DEVELOPER_TOKEN")},
                  json={"operations": [{"update": {"resourceName": r["adGroupCriterion"]["resourceName"], "status": "PAUSED"},
                                        "updateMask": "status"} for r in waste]})
    lines = [f"{r['adGroupCriterion']['keyword']['text']} ({r['campaign']['name']}): ${int(r['metrics']['costMicros']) / 1e6:,.2f}" for r in waste]
    notify.email_me(f"{len(waste)} keywords with no conversions in 30 days" + (" (paused)" if PAUSE else ""), "\n".join(lines))
    return {"keywords": len(waste), "paused": PAUSE}

FAQ

Common questions

What threshold should I use before a keyword is flagged?
A rule of thumb is to wait until a keyword has spent two to three times your target cost per acquisition without converting. If a conversion costs about $40, flag at $100 or more. Higher-value products can justify a longer wait.
Will it pause brand keywords that rarely convert?
It can, so brand terms are usually excluded by name or by campaign. Brand traffic is cheap and protects against competitors, and it often converts later through other channels. Telling the setup which campaigns to ignore avoids pausing the wrong things.
How are conversions with long delays handled?
Keywords for products with a long consideration period can look like zero-converters simply because the sale has not happened yet. For those, use a longer lookback window, such as 60 or 90 days, so a keyword gets a fair chance before it is flagged.
What permissions does it need?
read (read+write to pause). Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's 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 “Find keywords spending with no conversions” from your assistant

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