# Review Quality Score components across keywords

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

Quality Score components via GAQL, aggregated to where the fix lives.

**Intent.** Where QS is lost: expected CTR, relevance, or landing experience.

## When to use

- CPCs drifting up at stable bids.
- Structural reviews.

## When not to use

- Chasing QS as a goal: it is a symptom map, spend efficiency is the goal.

## Sources

Required: Google Ads

## Preconditions

- The account is ticked in the dashboard, confirmed via list_accounts.

## Inputs

- `window`: Analysis window. Default: last 30 days.

## Procedure

1. Query QS components per keyword. — tools: `google_ads_run_gaql`
2. Aggregate by component and by ad group. — tools: `google_ads_get_keyword_performance`

## Decision rules

- **When** One component drags across an ad group → **conclude** One fix class: copy for relevance, page for experience, both for expected CTR.

## 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

- Historical QS fields differ from current: name which the table shows.

## Output

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