---
name: improve-quality-score
description: >-
  The routing playbook for low Quality Score: it does not "optimize QS" directly, because QS is an output, it
  ranks the account's keywords by impression-weighted severity ((10 − QS) × impressions), then walks the three
  components in fixed order and dispatches exactly one fix at a time: ad relevance below average stops everything
  and routes to improve-ad-relevance; then expected CTR to improve-expected-ctr; then landing page experience to
  improve-landing-page-experience. Includes the validation windows for each component and the exit into
  rsa-testing-with-the-iteration-loop once all three pass. Use it when QS < 7 keywords carry real impressions or
  CPCs are inflated by weak Ad Rank. Not for one already-diagnosed component (go straight to that skill) and not a
  creative testing framework, chasing QS beyond healthy levels is explicitly ruled out of scope.
---
# Quality Score Constraint Router

## Purpose
Quality Score is Google's confidence readout, assembled from three predictions: the ad matches the intent
(ad relevance), users will click it (expected CTR), and the page delivers on the click (landing page experience).
You cannot edit the score, only the three inputs, and only in order, because each one confounds the next: weak
relevance suppresses predicted CTR, and a weak ad makes page metrics unreadable. This skill finds the highest-value
broken keyword theme, identifies its first broken component, and routes one fix at a time until all three pass, at which point the payoff is lower CPCs and better Ad Rank, not the number itself.

## When to run
- Keywords with QS below 7 are carrying meaningful impression volume.
- CPCs are drifting up or impression share lost to rank is climbing without bid changes, Ad Rank erosion.
- Routed here from keyword triage (`analyze-and-optimize-keyword-performance`) or the optimization cycle when
  expensive keywords show quality-component causes.
- After structural changes (`review-and-optimize-campaign-structure`) that may have disturbed keyword-ad-page
  alignment.

## When NOT to run
- The weak component is already known → go straight to `improve-ad-relevance`, `improve-expected-ctr`, or
  `improve-landing-page-experience`.
- All components already read average or better → `rsa-testing-with-the-iteration-loop`; this playbook has
  nothing to fix.
- The keyword's problem is economics or intent, not quality (irrelevant queries, wrong audience) →
  `analyze-search-term-reports` / `analyze-and-optimize-keyword-performance`.
- QS is 7+ and someone wants 10. Do not, past healthy, QS chasing trades real conversion performance for a
  vanity metric.

## Prerequisites
- Keyword-level QS and the three component labels available (pulled in step 1).
- 30+ days of impression data so the weighting means something.
- Willingness to fix ONE theme at a time, this playbook's discipline is sequencing, and parallel fixes destroy
  attribution.

## Procedure
1. **Pull the QS landscape.** `gads_get_keyword_performance` plus `gads_run_gaql_query` on the ad group criterion
   `quality_info` fields: overall QS, ad relevance label, expected CTR label, landing page experience label, with
   impressions, clicks, cost, and CPC per keyword.
2. **Rank by impression-weighted severity.** Compute (10 − QS) × impressions per keyword and sort descending. A
   QS 4 keyword with 20,000 impressions outranks a QS 2 keyword with 300, the weighting turns "worst scores"
   into "biggest CPC savings." Group the top entries by ad group/theme, and pick the single highest-priority
   theme for this pass. Do not run the playbook across dozens of keywords at once: fix one theme, validate,
   replicate.
3. **Gate 1, ad relevance.** Read the theme's ad relevance labels. Below average → STOP HERE and route the theme
   to `improve-ad-relevance` (structural repair: coverage audit, split/route, semantic distribution). Nothing
   downstream is trustworthy while relevance is broken. Average or above → proceed.
4. **Gate 2, expected CTR.** Below average → STOP and route to `improve-expected-ctr` (competitiveness repair:
   persuasion-role gaps, competitive field, extensions). Pull `gads_get_auction_insights` first for context, a
   new aggressive competitor or position mix shift depresses CTR expectations without any fault in the ad, so
   compare like-for-like before declaring the copy weak. Average or above → proceed.
5. **Gate 3, landing page experience.** Below average → STOP and route to `improve-landing-page-experience`
   (message match, speed, mobile, trust). Note that conversion rate operates as a practical proxy here: pages
   that convert are pages Google reads as delivering on the promise. Average or above → all three components
   pass; this theme's quality constraint is resolved.
6. **Execute the routed fix, one component only.** The component skills own their procedures; where the fix is
   copy-level this playbook's execution surface is: `gads_generate_rsa_copy` for candidate assets, then
   `gads_update_ad` on the existing RSA or `gads_create_responsive_search_ad` for a rebuilt one. All writes:
   after `gads_policy_guardrail` (before the session's first Google Ads write), preview first (validate_only
   default), commit only on explicit user approval. `gads_get_ad_strength` may be consulted as a coverage sanity
   check on new builds, it measures asset diversity, never conversion quality, and is not a success metric.
7. **Validate on the component's clock,** re-pulling labels via `gads_run_gaql_query`:
   - Relevance fixes: label movement in 7–14 days (CTR firms up first).
   - Expected CTR fixes: 7–21 days (raw CTR moves within a week; the label lags).
   - Landing page fixes: 14–30 days (the slowest signal).
   Alongside labels, track the outcomes that matter: CPC trend down, impression share lost to rank down without
   bid increases, CTR up, conversion rate up. Label stuck but outcomes improving → wait; labels lag reality.
8. **Loop or exit.** Component now passing → return to step 3 for the next gate on the same theme. All three
   passing and QS ≥ 7 stable for ~14 days → done with this theme: record the end state (QS, CPC, IS-rank
   deltas), pick the next theme from the step-2 ranking, and hand the finished theme to
   `rsa-testing-with-the-iteration-loop` for ongoing creative optimization, continuous improvement lives there,
   not in re-running this router.

## Decision rules
- **Fixed gate order, no skipping:** relevance → expected CTR → landing page. Each gate below average halts the
  walk and routes; never open two gates at once.
- **Priority formula:** (10 − QS) × impressions, worked strictly top-down. High-impression mediocrity beats
  low-impression disaster.
- **One theme per pass, one component per fix.** Parallel work destroys the ability to attribute movement.
- **"Average" passes every gate.** Below-average is the fix trigger; average-to-above-average conversion is
  optional polish with poor returns.
- **Validation windows:** 7–14 / 7–21 / 14–30 days by component; declare stability only after ~14 consecutive
  days.
- **Success metrics are CPC, IS lost (rank), CTR, CVR**, QS is the instrument panel, not the destination. A QS
  gain that degrades conversion-per-impression economics is a loss.
- **Ad strength is not QS** and correlates poorly with performance; use it only as an asset-coverage checklist.

## Common failure modes
- **Fixing CTR on broken relevance:** the most common wasted month in Search, persuasion polish cannot repair a
  structural mismatch, and the label will not move.
- **Redesigning landing pages first** because pages are tangible; page metrics are unreadable behind a weak ad.
- **Blitzing twenty keywords simultaneously:** attribution dies, and half-finished fixes churn assets account-wide.
- **Treating QS as the KPI,** celebrating an 8 that came with worse conversion economics; the score exists to
  buy cheaper auctions, nothing else.
- **Impatience with lagging labels**, re-fixing something that was already working because the label had not
  caught up, restarting the clock each time.
- **Starting creative testing mid-repair:** tests on an unstable foundation measure the repair, not the
  creative; sequence strictly.
- **Ignoring auction context:** a competitor surge reads as "our CTR got worse"; check auction insights before
  prescribing copy surgery.
- **Skipping the write-down at theme completion:** without recorded before/after CPC and IS-rank numbers, the
  next theme's business case rests on anecdote.

## Related skills
- Routes to (the three components, in order): `improve-ad-relevance`, `improve-expected-ctr`,
  `improve-landing-page-experience`.
- Fed by: `analyze-and-optimize-keyword-performance` (QS overlay), `run-search-campaign-optimization-cycle`
  (bi-weekly QS phase), `review-and-optimize-campaign-structure` (post-restructure QS clusters).
- Exit: `rsa-testing-with-the-iteration-loop` once all components pass.
- Context: `analyze-auction-insights` for competitive confounders.
