---
name: improve-expected-ctr
description: >-
  Diagnoses why Google predicts an ad will be clicked less often than competing ads (expected CTR = below average)
  and produces a prioritized gap list plus repaired copy candidates. It audits the RSA for missing persuasion
  elements (value proposition, quantified benefit, proof, differentiation, risk reducer, CTA), reads the
  competitive field through auction insights and a human check of rival ads, verifies extension coverage, and
  generates fill-in assets for approval. Strict prerequisite: ad relevance must NOT be below average, if it is,
  run improve-ad-relevance first, because relevance problems masquerade as competitiveness problems. This is a
  one-time diagnose-and-repair; ongoing optimization afterwards belongs to rsa-testing-with-the-iteration-loop,
  and an average label is a pass, not a trigger to rerun.
---
# Diagnose and Repair Expected CTR

## Purpose
A below-average expected CTR label means Google's models predict searchers will pick a competitor's ad over yours,
position and format held equal. That is a message-strength problem: something persuasive is missing or weaker than
the field. This skill finds exactly what, element by element, against real competitors, and repairs the specific
gaps rather than rewriting blind.

## When to run
- Expected CTR = below average AND ad relevance is already average or better.
- CTR has flatlined despite completed relevance work.
- Competitor ads visibly out-promise yours (stronger offers, proof, urgency) on shared queries.

## When NOT to run
- Ad relevance = below average → `improve-ad-relevance` first; fixing competitiveness on a misaligned ad group
  treats the wrong disease.
- Expected CTR is already average → skip straight to `rsa-testing-with-the-iteration-loop`; average is a pass here.
- The weak component is the landing page label → `improve-landing-page-experience`.
- The underlying offer itself is commoditized, copy cannot out-write a weak offer; route to
  `create-an-irresistible-offer` / `craft-your-offer-angles` and return.

## Prerequisites
- Ad relevance repair completed (label not below average) for the target ad group.
- Current RSA assets accessible; auction insights available for the campaign.
- A user willing to eyeball competitor ads (transparency-center lookups are outside VigilDog).

## Procedure
1. **Confirm the entry gate.** `gads_run_gaql_query` on the ad group's criteria `quality_info`: verify ad
   relevance ≥ average and expected CTR = below average for the keywords in scope. Gate fails → route and stop.
2. **Inventory the ad.** `gads_list_ads` for the ad group, `gads_get_ad` for the primary RSA. List every headline
   and description verbatim.
3. **Run the cold-read check.** Read the assembled ad as a stranger would in a few seconds: is it clear what is
   offered, why it matters, why to trust it, what to do next, why this brand over the next result, and why now?
   Two or more unanswerable questions = the priority gaps are already identified.
4. **Tag every asset by persuasion role.** Assign each headline/description one role: keyword anchor, value
   proposition, quantified benefit, social proof, differentiator, risk reducer, or call to action. The tag table
   exposes the holes: roles with zero assets are hard gaps; roles filled with vague filler ("great service",
   "quality solutions") are soft gaps. Self-referential framing ("we offer…") and zero numbers anywhere are both
   automatic soft-gap flags.
5. **Read the competitive field.** `gads_get_auction_insights` for the campaign: rank rivals by overlap rate to
   find who the models compare you against. HUMAN STEP (outside VigilDog): the user searches the main keywords or
   checks Google's ad transparency lookup and captures the top 3–4 rival ads. Classify each rival angle:
   everyone-has-it (table stakes you must match), they-have-you-don't (gap), you-have-they-don't (amplify, your differentiation), everyone-vague (be the specific one).
6. **Audit extension coverage.** `gads_list_extensions` for the campaign/ad group: sitelinks (4+), callouts (4+),
   structured snippets, and any image/price/promotion assets that fit the vertical. Extensions expand real estate
   and carry proof and offers the RSA cannot fit; missing coverage routes to `set-up-ad-extensions` or
   `review-and-optimize-ad-extensions`.
7. **Build the prioritized gap list.** Merge steps 3–6 into one table: gap, severity (high = missing role or
   competitive table-stakes; medium = weak/vague asset; low = polish), and fix route. If the audit shows the offer
   itself is the weak layer, no differentiator exists to write about, stop and route to
   `create-an-irresistible-offer`; copy repairs cannot compensate.
8. **Generate repair assets.** `gads_generate_rsa_copy` seeded with the gap list: request one asset per missing
   role, a numbers-bearing benefit, a proof point (ratings, customer counts, years), a risk reducer (guarantee,
   free trial, no-card signup), a sharpened CTA (verb + outcome, not "learn more"), and differentiation the field
   lacks. Keep the keyword anchor assets from the relevance work untouched.
9. **Deploy with approval.** Present the gap list and candidate assets. On explicit user approval, apply through
   the ad-update flow, after `gads_policy_guardrail` (before the session's first Google Ads write), preview
   every change (validate_only default), then commit. Where the account team prefers a fresh ad build instead,
   route execution to `write-compelling-rsas`.
10. **Validate on the label's clock.** Absolute CTR should trend up within ~7 days; the expected CTR label
    typically moves in 14–21 days (re-pull via `gads_run_gaql_query`). CTR up but label static → wait, labels
    lag. CTR flat after 14 days → re-run the diagnosis; a gap was missed or the offer layer is the constraint.
    CTR down → check for confounders (bids, competition, page changes) before blaming the copy. Done = label off
    below-average and holding 14 consecutive days; then hand ongoing improvement to
    `rsa-testing-with-the-iteration-loop`, this skill is not a loop.

## Decision rules
- **Entry gate is absolute:** ad relevance below average disqualifies this skill; sequence is relevance →
  competitiveness → landing page.
- **Cold-read threshold:** failing 2+ of the six reader questions defines the high-priority gaps.
- **Role coverage standard:** every RSA needs at least one asset each for value proposition, benefit, proof,
  differentiation, risk reduction, and CTA, plus the keyword anchor. Missing role = high-severity gap.
- **Competitive classification drives emphasis:** match table stakes, close they-have gaps, amplify what only you
  can claim, get specific where the field is vague.
- **Offer escape hatch:** nothing distinctive to say → fix the offer, not the phrasing.
- **Extension minimums:** 4 sitelinks, 4 callouts, 1+ structured snippet before judging copy alone.
- **Timelines:** CTR movement ~7 days; label 14–21 days; declare done at 14 stable days. Average = pass; chasing
  above-average has poor returns compared to moving to systematic testing.

## Common failure modes
- **Skipping the relevance gate.** Below-average relevance drags predicted CTR down; repairing persuasion on a
  misaligned group wastes the rewrite.
- **Rewriting everything instead of the gaps.** Wholesale rewrites destroy the assets that were working and make
  the result unreadable; this skill repairs surgically.
- **Copy that describes the company instead of the outcome**, "we provide solutions" survives every lazy
  rewrite; the role-tagging pass exists to catch it.
- **No numbers anywhere.** Quantified claims (counts, ratings, timeframes, savings) are the cheapest
  competitiveness upgrade and the most commonly absent.
- **Ignoring the competitor read.** Your ad competes contextually; a decent ad in a strong field still earns
  below-average predictions.
- **Rerunning this skill as a routine.** It is a one-time repair; iteration lives in the testing loop, and
  re-diagnosing a passing ad group churns assets for nothing.

- **Confusing extensions with copy fixes.** A persuasive RSA under bare extensions still loses screen real estate
  to a fully-assetted competitor; the coverage audit is part of the competitiveness diagnosis, not an afterthought.

## What done looks like
- Every persuasion role has at least one credible asset; vague filler replaced with specifics and numbers.
- Extension minimums met and approved.
- Expected CTR label off below-average and stable for 14 consecutive days.
- The ad group handed to `rsa-testing-with-the-iteration-loop`, not queued for another pass of this skill.

## Related skills
- Prerequisite: `improve-ad-relevance` (must not be below average); dispatched by `improve-quality-score`.
- Offer-layer routes: `create-an-irresistible-offer`, `craft-your-offer-angles`.
- Execution partners: `write-compelling-rsas` (fresh builds), `set-up-ad-extensions` /
  `review-and-optimize-ad-extensions` (coverage gaps).
- Successor: `rsa-testing-with-the-iteration-loop` (ongoing optimization once the label passes);
  `improve-landing-page-experience` if that component is next.
