# Google Ads Negative Keywords

> Mine negative keyword candidates from Google Ads search terms (terms with impressions + clicks + cost but zero conversions + low CTR). Can optionally bulk-apply negatives to an ad group with explicit confirmation. Triggers on prompts about wasted spend, negative keyword lists, or search term cleanup.

- Skill: `foxgeeek/google-ads-negative-keywords` (Agent Skill)
- Install (CLI): `npx skillmds@latest add foxgeeek/google-ads-negative-keywords`
- Raw SKILL.md: https://api.skillmd.com/api/skills/foxgeeek/google-ads-negative-keywords/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: foxgeeek (https://skillmd.com/u/foxgeeek)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/foxgeeek/google-ads-negative-keywords

---


# Google Ads — Negative Keywords

## When to use

- "Acha termos que estão queimando budget"
- "Mine negatives from the last 30 days"
- "Onde estou gastando sem converter?"

## Inputs

- `--account` — account ref
- `--campaign` — optional scope
- `--lookback` — days (default 30)
- `--min-impressions` — default 50
- `--max-ctr` — max CTR % (default 1.0)
- `--min-spend` — default 5
- `--apply` — opt-in bulk apply
- `--ad-group <resource>` — required with `--apply` (e.g., `customers/1234/adGroups/56789`)

## Filter logic

A search term becomes a candidate if **all** hold:

- `impressions >= min-impressions`
- `ctr <= max-ctr`
- `cost >= min-spend`
- `conversions == 0`

## Output

- Summary cards: candidate count, wasted spend, filters applied
- Table: term, campaign, impr, clicks, CTR, cost
- If `--apply`: confirmation prompt → bulk create EXACT-match negatives in target ad group

## Invocation

```bash
# Report only
adskills google negatives --account acme --lookback 30

# Apply as EXACT negatives to specific ad group
adskills google negatives --account acme \
  --apply --ad-group customers/1234567890/adGroups/9876543210
```

## Guardrails

- `--apply` always prompts for "yes" — no auto-mutation
- EXACT match type only (safer than PHRASE/BROAD for first pass)
- Bulk apply target is one ad group per invocation — safer audit trail

