Skip to content
esc close · switch
LYRA/ Tools/ Diagnostic/ Search Terms Management
Diagnostic Early accessPilot

Wasted search terms, found . Negatives, drafted.

Search Terms Management reads your Google Ads search-term report (default 30 days, configurable 1–365), surfaces terms eating spend without converting, and drafts a negative-keyword list you apply via the BatchJob API once you approve. Currently in pilot with 4 customer accounts — request access to join.

Pilot · 4 customer accounts · 30-day default · 1–365 configurable · Negatives applied via Google Ads BatchJob
What we read · input surface

One run, one search-term report.

Each run reads the search_term_view for one account over your chosen window. Filters surface cost-bleeding terms (cost > 0, no conversions) plus low-impression watchlist candidates. The output is a draft negative list, ranked by impressions, ready to stage as a BatchJob.

Run · Sample · pilot account · run #18 Apr 26, 2026 · 14:22 UTC · 30d window
01 · Status 4 Pilot accounts Currently in pilot. Request access via /contact to join the next cohort.
02 · Window 30 d Default lookback Configurable 1–365 days per run. Wider windows surface more candidates; narrower windows are faster.
03 · Output Google Ads BatchJob Drafted negative-keyword list staged as a BatchJob. You approve before it executes.
04 · AI layer Opt-in Lyra Agent · use_ai_evaluation Optional: Lyra Agent classifies candidate intent (competitor, informational, geo-mismatch). Off by default.
The scorecard · generated artefact

Out: a ranked list of waste candidates.

Below is a sample readout. Total terms audited, candidates flagged for action, and the top individual candidates — each with cost, impressions, clicks, and a suggested action.

STM-report · pilot-account · run #18 Apr 26, 2026 · 14:22 UTC 30d window · 1,247 terms audited v.0.4 · pilot · search_term_view
Flagged share
21 / 100
247 of 1,247 candidates ▲ +11 vs run #17 · 30d ago
Candidates by category 247 candidates · top 7 shown
High cost · 0 conv 84
Low CTR drag 102
Wrong intent 61
Healthy 1000
# Check Scope What we found Suggested action Severity
01 Competitor brand · negative candidate wrong_intent · brand Brand · Search 'nike trail running shoes' · 47 clicks, $58 cost, 0 conversions over the 30d window. Add as exact negative across Brand · Search Critical
02 Informational query · negative candidate wrong_intent · informational Generic · Search 'how to clean trail shoes' · 32 clicks, $41 cost, 0 conversions. Informational; not buying intent. Add as phrase negative · 'how to' Critical
03 Wrong-fit size term wrong_intent · audience Trail collection 'kids trail running shoes' · 18 clicks, low CTR. We don't carry kids' inventory. Add 'kids' as broad negative across Trail Critical
04 Geo-mismatch term wrong_intent · geo US · Search 'trail shoes UK shipping' · 12 clicks on a US-only campaign, 0 conv. Add 'UK' or 'shipping UK' as negative High
05 Broad-match drift low_ctr · drift Generic · Search 'running clothing' · 8 clicks, 0 conv, broad-match expansion from 'running shoes'. Tighten match type or add as negative High
06 Low-impression brand-aligned watchlist · low_volume Trail collection 'gore-tex women trail' · 2 clicks, brand-aligned but low volume — leave on, monitor. Watchlist · review next run Medium
07 Informational suspect · high impressions wrong_intent · informational Generic · Search 'best trail shoes 2026' · high impressions, low CTR. Likely top-of-funnel, not converting. Move to watchlist or add as phrase negative Medium
7 of 247 candidates shown · ranked by cost × impressions Output stages as Google Ads BatchJob · you approve before execute
Methodology · how candidates are surfaced

Heuristic filters first. The Lyra Agent is opt-in.

The core pipeline is rule-based: read search_term_view, filter by cost / impressions / status, rank. Optional Lyra Agent layer classifies candidate intent only when you flip the use_ai_evaluation flag. Most pilot runs use the heuristic-only path.

01 · Lookback windowConfigurable

30-day default, 1–365 configurable.

Wider windows surface more candidates; narrower windows are faster and reflect recent shifts. Configurable per run via query parameter.

Default 30 days
Range 1–365 days
02 · Filter logicHeuristic

Cost + status + impression filters.

Status='NONE' (not yet a keyword), cost > 0 (waste signal), OR cost = 0 with impressions > 0 (volume signal). Output ranked by impressions descending.

Critical Cost > 0, 0 conv, ≥ N clicks
High Low CTR drag
Medium Volume watchlist
03 · Lyra Agent layerOpt-in

Intent classification on demand.

When use_ai_evaluation=True, the Lyra Agent reads candidate terms and classifies intent (competitor, informational, geo-mismatch, audience-mismatch). Off by default — the heuristic filters do most of the work.

Default Off
Layer Post-filter, pre-output
04 · BatchJob outputDirect

Negatives applied via Google Ads BatchJob.

Approved candidates are staged as a BatchJob and applied to your campaigns when you confirm. Real Google Ads negatives, not a CSV export.

API Google Ads BatchJob
Approval Required before execute
05 · Pilot scopeLimited

4 customer accounts today.

Pilot is intentionally narrow. Each pilot account helps us tune filter thresholds and validate the Lyra Agent intent layer. Slots open as we scale.

Pilot 4 customers
Access Request via /contact
06 · CadenceOn-demand

Run when you need it.

No scheduled cron. Run on demand — typically weekly during the pilot — and stage the output as a BatchJob when ready.

Default Operator-triggered
Cron Not yet scheduled
Case · DTC apparel · $42k/mo blended spend · 60-day window
The negatives sweep surfaced 312 wasted queries. ROAS climbed to 3.4× within 38 days; monthly waste recovered: $6,820.
IH In-house strategist · DTC apparel $42k/month blended spend · anonymized
Wasted queries surfacedFirst sweep run 312
Blended ROAS lift60 days after the sweep +62%
Monthly waste recoveredNegatives + reverted auto-applies $6.8k
Weekly review cadenceAfter the sweep landed 20 min
Frequently asked

The questions every pilot conversation starts with.

How do I get access to the pilot?

Reach out via /contact and tell us about your account scale + the search-term volume you're working with. Pilot slots open as we scale the underlying Lyra Agent intent-classification layer; we onboard new accounts in cohorts.

How is this different from the search-term report Google already gives me?

Google's report is a flat list. We rank candidates by cost × impressions, filter against your existing negative-keyword set, and stage the output as a Google Ads BatchJob — so going from "I found a wasted term" to "the negative is applied" is a single click instead of a manual edit per ad group.

What does "intent classification" actually do?

When you flip use_ai_evaluation=True at run time, the Lyra Agent reads each flagged candidate and labels it: competitor brand, informational query, geo-mismatch, audience-mismatch, or healthy. The labels show in the report and help you decide which match type to use for the negative. Off by default; the heuristic filters do most of the work.

Can I run this across an MCC in one sweep?

Not yet. Each run is scoped to one customer. The Lyra Agent in chat can sequence runs across your portfolio if you ask — same effective outcome, slower than a true MCC sweep.

What happens to negatives I want to undo?

Approved BatchJobs apply the negatives to your campaigns. Reverting means removing them in Google Ads or Editor — there's no one-click undo from inside Lyra. We log every applied batch so you can trace what was added when.

14-day free trial · No credit card · Cancel in one click

Run the audit.
Keep the findings.

Connect your account and let Lyra run its 18 tools for 14 days. If the projected waste recovery isn't worth at least 10× the $49, don't pay. You keep every insight either way.

Read-only connect · write access opt-in per tool · SOC 2 in progress · GDPR + CCPA compliant