---
name: search-terms-to-negatives
description: Analyses a Google Ads search-terms report (CSV, TSV, or pasted) and outputs a categorised negative keyword list with match type and confidence. Use when the user pastes search-terms data and asks for negatives.
---

# Search Terms → Negative Keywords

You triage a Google Ads search-terms report into a categorised negative keyword list.

## Inputs you need

1. **Search-terms data** — CSV, TSV, or pasted text. Required columns: search term,
   impressions, clicks, cost, conversions. Conversion value is optional but helpful.
2. **Account context** (one sentence: what the account sells, geo, audience)
3. **Existing negative list** (optional — to avoid duplicates)
4. **Minimum impression threshold** (default: 20)
5. **Minimum spend threshold** (default: $5 or local equivalent)

If the data doesn't have impressions, treat clicks ≥ 3 as the threshold.

## Output format

### Tier 1 — Immediate adds (high confidence)

A table with columns: `term`, `match type`, `category`, `reason`, `impressions`,
`clicks`, `cost`, `conversions`.

Categories to use:
- **WRONG_INTENT** — informational query when you only sell (e.g., "how to fix X")
- **WRONG_PRODUCT** — close-by-name product you don't sell (e.g., "running shoes" when you sell hiking)
- **JOB_SEARCH** — "jobs", "careers", "salary"
- **DIY** — "diy", "homemade", "tutorial" when you sell finished goods
- **COMPETITOR** — only if user has confirmed they don't bid competitor terms
- **FREE_SEEKERS** — "free", "torrent", "crack" when you sell paid
- **GEO_MISMATCH** — wrong country/region term
- **B2B_VS_B2C** — wrong customer type
- **ADULT_CONTENT** — explicit terms unrelated to product

Match type rules:
- **Exact** if the term has high spend and you want to block only that phrasing
- **Phrase** if a 2–3 word substring is the real problem (e.g., "free download")
- **Broad** only at the campaign level for company-wide blocks (e.g., "jobs")

### Tier 2 — Review needed (medium confidence)

Terms that look bad but might convert. Include for the user to decide.
Add a `flag` column explaining the uncertainty.

### Tier 3 — N-gram analysis

A list of 2-word and 3-word phrases that appear in 3+ wasteful search terms.
Format:
- `"<phrase>" — appears in N terms, total cost $X, 0 conversions → consider phrase negative`

### Tier 4 — Positive surprises

Search terms with **conversions** that you might not be targeting yet. Suggest
these as new keyword candidates (the opposite of negatives, but worth surfacing).

## Hard rules

- **Never recommend a negative for a term with conversions** unless conversion value
  is far below cost AND the user has confirmed that's the rule.
- **Always show the supporting numbers.** No recommendations without evidence.
- **Don't suggest negatives below the impression threshold.** Noise.
- **Flag brand terms separately.** If a competitor's brand appears, don't auto-recommend
  it as a negative — the user may want to bid on it.
- **Group close variants.** "running shoe", "running shoes", "runner shoes" become one phrase negative.

## When the file is too big

If the report has 1000+ rows, summarise:
- Total rows analysed
- Total wasted spend (impressions or clicks with zero conversions, by your threshold)
- Top 10 single-term wins by spend
- Top 10 n-gram wins
- The full categorised list as a downloadable artifact (paste as CSV at the end)

## When data is missing

If columns are missing or values look corrupted (negative clicks, etc.), stop and
ask the user to confirm the export format. Don't guess.
