# Find wasted search spend

> Pull the search terms you paid for, join them to your keyword set, and list what converted nothing.

[Guides](https://www.getmcpads.com/guides)

## For you

## The way this normally goes

- Open the search terms report and set the date range.
- Export it, because the interface will not sort spend against conversions the way you need.
- Export keyword performance separately.
- Join the two in a spreadsheet on the keyword column.
- Read the result and decide what to add as a negative.

## The way it goes with an assistant

- Ask for it in one sentence.
- The assistant reads the search term report and keyword performance in the same turn.
- It returns the terms with spend, no conversion, and no match in your keyword set.
- You decide what becomes a negative. The gateway does not add negatives.

## Prompts to start from

### Finding it

```text
Show me search terms we paid for last month that we would never have bid on.
Which search terms cost more than 50 EUR and converted nothing?
Group last quarter's search terms by intent and show spend against conversions for each group.
Are we paying for competitor brand terms, and how much?
```

### Deciding what to do

```text
Which of these terms are close enough to our keywords to be worth keeping?
Rank the wasted terms by what we would save over a month at the current rate.
Which campaigns do these terms come from, and what are their budgets?
```

## Tools this uses

| Tool | Why |
| --- | --- |
| `google_ads_get_search_terms` | The search term report, over the period asked for. |
| `google_ads_get_keyword_performance` | What you actually bid on, to separate a match from a stray. |
| `google_ads_get_budgets` | Puts the wasted spend against the budget it came out of. |
| `google_ads_run_gaql` | When the question needs a field the specialised tools do not carry. |

## What it will not do

- Adding a negative keyword is not exposed. The gateway changes status, budgets, names, schedules and ad group bids, and nothing else.
- The search term report only reports terms that reached the reporting threshold. Terms below it exist and are not listed, by Google's design.

## For your agent

This job reads one source, across 4 tool calls. It changes nothing, so it works on every plan.

## Sequence

| Step | Tool | Purpose |
| --- | --- | --- |
| 1 | `google_ads_get_search_terms` | The search term report, over the period asked for. |
| 2 | `google_ads_get_keyword_performance` | What you actually bid on, to separate a match from a stray. |
| 3 | `google_ads_get_budgets` | Puts the wasted spend against the budget it came out of. |
| 4 | `google_ads_run_gaql` | When the question needs a field the specialised tools do not carry. |

> **Note** Tools not announced in your list are reachable through `search_tools`, then `describe_tool` for the schema, then `run_tool` to execute. `run_tool` runs the same plan check and account allowlist as a direct call.

## Constraints that will refuse you

- Only the ad accounts the account owner ticked are reachable. Call `list_accounts` first rather than guessing an identifier.
- Adding a negative keyword is not exposed. The gateway changes status, budgets, names, schedules and ad group bids, and nothing else.
- The search term report only reports terms that reached the reporting threshold. Terms below it exist and are not listed, by Google's design.

## What the person is likely to ask

```text
Show me search terms we paid for last month that we would never have bid on.
Which search terms cost more than 50 EUR and converted nothing?
Group last quarter's search terms by intent and show spend against conversions for each group.
Are we paying for competitor brand terms, and how much?
Which of these terms are close enough to our keywords to be worth keeping?
Rank the wasted terms by what we would save over a month at the current rate.
Which campaigns do these terms come from, and what are their budgets?
```

---

This page as HTML: https://www.getmcpads.com/guides/wasted-search-spend
Every page under /guides and /docs is available as Markdown: append `.md`, or send `Accept: text/markdown`.
