# Build a search terms dashboard in Claude

> Tier: recipe. Operating recipe: real tool sequence, core rules, known traps.

Builds the Get MCP Ads Search terms template as a Claude dashboard: the top search terms by spend across Search (Dynamic Search Ads and AI Max included), Shopping and Performance Max, each with campaign, ad group, match type, matched keyword, keyword and negative status, brand or non-brand, spend, conversions, value, CTR, CPC, CPA and ROAS, against an equivalent comparison period; spend by campaign type, match type and brand, terms spending without converting, words and word pairs, Performance Max search categories, and what Google does not list reconciled to the campaigns' own totals.

**Intent.** A live page showing which real searches the Google Ads money goes to and what they return, so the team can add negatives, promote terms to keywords, tighten match types and weigh brand against non-brand spend.

## When to use

- Someone asks where their Google Ads search money goes, which negatives to add, which search terms to turn into keywords, how much broad match or AI Max spends on irrelevant searches, or for a search terms report they can keep in Claude.
- Before a negative keyword or match type cleanup, and to check afterwards what changed.

## When not to use

- Adding negatives or keywords: the dashboard reads only; changes go through the Google Ads tools with preview and confirmation.
- One search term's figures: answer in the conversation.
- Hosts without Claude's Dashboard artifact type: answer in the conversation with the matching reports instead.

## Sources

Required: Google Ads
Optional: Search Console

## Preconditions

- The organisation is on Team or Enterprise: ready-made dashboards are not offered on Free or Pro.
- The account is among the chosen accounts, confirmed via list_accounts.

## Inputs

- `brand_terms`: Only when the person names them: otherwise detect_brand_terms finds the advertiser's own brand names.

## Procedure

1. Resolve the client's workspace and its Google Ads account with list_accounts.
2. Detect the brand without asking first: detect_brand_terms with the workspace and that Google Ads account returns the brand terms, their evidence and a hand-over line. If it finds none, build without them. — tools: `detect_brand_terms`
3. Fetch the search-terms template with the Google Ads account (accounts, with its currency) and the brand_terms found. — tools: `get_dashboard_template`
4. Create a Dashboard artifact, write every document exactly as given in one batch, read its check, hand over with the lines given.
5. In the hand-over, say which brand terms split brand from non-brand and why, and that the person can ask to add or remove one.

## Decision rules

- **When** The template is refused with PLAN_REQUIRED → **conclude** Say the dashboards come with Team and Enterprise and that only the account owner changes the plan; answer the question in the conversation meanwhile.
- **When** The person asks which negatives to add → **conclude** Start from the terms flagged no_conversions and the n-grams spending without converting, within one campaign type; check is_keyword and is_excluded first (they are today's state), and prefer a phrase negative on a word pair over many exact negatives. Then propose the change through the Google Ads tools, with preview.
- **When** The person asks which terms to promote to keywords → **conclude** Take converting terms with is_keyword no, triggered by broad match, AI Max or Dynamic Search Ads, and say which ad group they would join; Performance Max and Shopping terms have no keyword to promote from.
- **When** A large part of spend is unlisted → **conclude** Say Google lists a term only when enough people searched it; the unlisted part is real spend on searches nobody can name, so judge shares on the listed spend and use the Performance Max search categories, which cover every search, for themes.
- **When** The person asks to add or remove a brand term → **conclude** Rebuild with get_dashboard_template and the new brand_terms: the advertiser's own names and spellings only.
- **When** A reader sees a source fail to load → **conclude** Their own Get MCP Ads access decides: check that their connection covers this client's workspace and that their plan includes dashboards before changing the dashboard.

## Evidence requirements

- Every figure carries its account, metric and window.
- Anything below a readable sample size is reported as unjudged, not as zero.

## Human approval boundary

- The readout changes nothing. Any change it motivates goes through Safe Writes: preview, human confirmation, then apply.

## Failure modes

- Editing the template's page or queries by hand loses the provenance of each figure: ask for changes by name instead.
- Adding n-gram rows together: a term counts in every word and word pair it holds.
- Calling a term new because it has no comparison figure: it may have been under Google's privacy threshold or below the rows read then.
- Spreading the unlisted spend over the listed terms, or reading a share of listed terms as a share of all search spend.

## Output

- **Readout**: The figures, with windows and accounts named.
- **Flags**: What deserves a deeper skill or a human decision.

## Related

- Skill: [google-ads-search-terms-mining](https://www.getmcpads.com/skills/google-ads-search-terms-mining.md)
- Skill: [google-ads-negative-conflict-check](https://www.getmcpads.com/skills/google-ads-negative-conflict-check.md)
- Skill: [brand-search-dashboard](https://www.getmcpads.com/skills/brand-search-dashboard.md)
- Skill: [performance-max-dashboard](https://www.getmcpads.com/skills/performance-max-dashboard.md)
