agentleFS
riz1k9riz1k9/claude-ad-skills/quality-score-fixer/SKILL.md

quality-score-fixer

Skill0 starsChanged 3 months agoMITView on GitHub

Finds which specific component of Quality Score (expected CTR, ad relevance, or landing page experience) is dragging a valuable keyword down, then designs the smallest single-variable test that would fix it. Use whenever someone mentions Quality Score, ad relevance, expected CTR, landing page experience, ad rank, first page bid estimates, or expensive clicks on Google Ads or Microsoft Ads specifically — including "why is my CPC so high" when the platform is search. Quality Score does not exist on Meta, TikTok, or LinkedIn; for rising costs there, the issue is auction or creative, not this.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Structure beats copy, most of the time: When Ad Relevance is the weak link across many keywords, the account architecture is the problem.

    line 81

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Quality Score Fixer

Quality Score is not one number to raise — it's three separate diagnoses wearing a trench coat. A keyword scoring 4/10 because of landing page experience needs a completely different fix from one scoring 4/10 because of expected CTR, and the generic advice ("write better ads, improve your landing page") wastes effort on the two components that were already fine.

The work is: find the keywords where a fix is worth money, identify which single component is below average, and design the smallest test that moves it.

Getting the data

Quality Score and its three components are only visible in Google Ads and Microsoft Ads at the keyword level, and the component columns are hidden by default.

  1. Connected account — pull keyword-level data including Quality Score, Exp. CTR, Ad Relevance, and Landing Page Exp., plus impressions, clicks, cost, conversions, and average CPC.
  2. File or paste — tell them exactly how to get it: Google Ads → Campaigns → Audiences, keywords and content → Search keywords → Columns → Modify columns → Quality Score → add Quality Score, Exp. CTR, Ad relevance, Landing page exp. → download. Without those three component columns you can see the symptom but not the cause, so ask for them rather than guessing.
  3. Also useful, and worth requesting: the ad copy in the relevant ad groups and the landing page URLs. The diagnosis points at them, and you can inspect a landing page directly if browsing is available.

Step 1 — Only fix what's worth fixing

Quality Score on a keyword with 40 impressions is statistical noise, and improving a 3/10 on a keyword nobody searches changes nothing. Rank keywords by money at stake, not by how bad the score is:

Prioritize keywords that have meaningful spend or conversion volume and a score of 6 or below. Size the opportunity as spend at stake — the total monthly spend sitting on those keywords — not as a computed savings figure. Quality Score is a reported 1–10 diagnostic built from exact-match query history, while the live auction uses real-time ad quality inside Ad Rank, so the relationship between the reported score and CPC is directional, not a formula. State the mechanism instead: a Below-average component means you pay more per click for the same position, so fixing it should reduce CPC on that spend — by a modest and unpredictable amount. Google publishes no mapping, and any specific percentage is invented.

Explicitly set aside: low-volume keywords, brand keywords (which score well almost automatically), and anything with fewer than ~1,000 impressions.

Step 2 — Diagnose the weakest link

Each component reads "Above average", "Average", or "Below average". The one marked Below average is the fix. If two are, start with the one below.

Expected CTR — Below average Google predicts people won't click this ad for this query. Causes, in likelihood order: the ad doesn't contain the searcher's actual words; the offer is weaker than competitors'; ad position history is poor; the keyword is too broad for any single ad to satisfy. Fix direction: rewrite headlines to mirror query language, lead with the differentiator, add the missing specificity (price, location, speed, guarantee).

Ad Relevance — Below average The ad group's ads don't closely match the keyword. Almost always a structure problem, not a copywriting one: an ad group holding 40 loosely related keywords cannot have ads relevant to all of them. Fix direction: split the ad group into tighter themes so each has 5–15 closely related keywords, then get the keyword into Headline 1 and into the display URL path fields. This is the single highest-leverage fix in most accounts.

Landing Page Experience — Below average The page doesn't deliver what the ad promised, or is slow, thin, hard to use on mobile, or untrustworthy. Fix direction, in order of effect: make the page's headline echo the ad's promise and the keyword; put the primary action above the fold; cut load time (this one is measurable — check it); ensure the specific product/service named in the ad is actually on the page rather than a generic homepage. Sending paid traffic to a homepage is the most common and most expensive version of this problem.

Step 3 — Design the smallest test

Two constraints make a test readable:

  • Change one variable. Rewriting the ad and the landing page teaches nothing about which worked.
  • Give it enough traffic and time. Quality Score updates on accumulating impression data — expect 2–4 weeks on a keyword with reasonable volume before the component moves, longer on thin volume. Say the date to check back.

Be concrete. Not "improve ad relevance" but: "Split ad group 'Plumbing Services' — move the 12 'emergency' keywords into their own group, write 3 RSAs with 'Emergency Plumber' in Headline 1, keep the same landing page so the test stays clean. Check the Ad Relevance column on 15 March."

What to produce

QUALITY SCORE DIAGNOSIS — [account], [date range]
[n] keywords scoring ≤6 with meaningful volume · [total spend] at stake

PRIORITY FIXES

1. [keyword] — QS [n]/10 · [spend] · avg CPC [x]
   Weak link: [component] (Below average)
   Why: [specific cause you can see in the ad copy / structure / page]
   Test: [one concrete change]
   Expected: [what should move, and roughly when]

…

NOT WORTH FIXING NOW
  [n] keywords with low scores but under [threshold] impressions — noise, ignore

Group keywords that share a root cause into one fix — twelve keywords in the same badly structured ad group are one job, not twelve.

Judgment worth applying

Quality Score is a diagnostic, not a KPI. Nobody gets paid for a 10/10. It matters only through CPC and impression share, so always frame recommendations in money — "this should cut CPC on ~$3,400/month of spend" — rather than in score points.

Estimated savings are estimates. Google has never published the score-to-CPC mapping precisely, and auction dynamics move independently. Give ranges and say the mechanism, not a spuriously exact figure.

Structure beats copy, most of the time. When Ad Relevance is the weak link across many keywords, the account architecture is the problem. Tightening ad groups usually lifts expected CTR as well, because a focused ad can finally speak to a focused set of queries.

Landing page fixes need someone else. They usually involve a developer or a CMS and a longer cycle than ad edits. Flag which recommendations the person can do today versus what needs scheduling, so the list is actionable rather than aspirational.

Historical scores are sticky. A keyword with a long poor history improves slowly even after a good fix — sometimes starting fresh with a new keyword in a new, well-structured ad group is faster than rehabilitating the old one.

Never edit a live account. Even with write access, produce the diagnosis and the test design and let the person apply it. If you do apply anything, apply only the specific items they explicitly approved, one at a time — a general "looks good" is not approval — then state exactly what was changed.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.