# Quality Score in Google Ads: components and what to improve first

Page: https://alidemirbas.com.tr/en/blog/google-ads-quality-score

2026-11-05 · Growth Marketing · Ali Demirbaş

Google Ads Quality Score is a diagnostic, not a KPI. Learn which area each of its three components points to and how spend share shows where to look first.

Quality Score in Google Ads is a 1–10 diagnostic score shown for each keyword in Search campaigns. It summarises how relevant and useful your ad and landing page are compared with other advertisers on the same search. The useful part is not the number but the status of its three components. A component that reads "Below average" points to the area to investigate, not to the exact cause.

This guide covers how to read the components, where chasing the score misleads, and how spend share shows where to start looking.

## What is Quality Score in Google Ads?

Google's help page describes Quality Score as a diagnostic tool. It gives you a sense of your ad quality against other advertisers on the same searches ([Google Ads Help: About Quality Score for Search campaigns](https://support.google.com/google-ads/answer/6167118?hl=en)). The score runs from 1 to 10, exists only for keywords and applies to [Search campaigns](https://alidemirbas.com.tr/en/blog/google-ads-campaign-types). A high score says your ad and page were judged more relevant to that searcher than competitors'.

### A diagnostic, not a KPI

Google makes two warnings on that page. The first says Quality Score is not a key performance indicator. It should not be optimized or aggregated with your other data. The second says the score is not an input in the ad auction.

So the number in your report is not multiplied by your bid in the auction. It is not a target for tracking account health with a single figure either.

These two warnings frame the rest of this guide. Instead of raising the score like a conversion goal, you fix the ad, keyword group or page that a weak component points to. You judge the business result with conversion, cost and revenue metrics. The [guide to performance marketing metrics](https://alidemirbas.com.tr/en/blog/performance-marketing-metrics-decisions) explains which metric answers which decision.

### Quality Score vs Ad Rank

Ad Rank is the set of values that decides whether your ad can show and where it appears. Google says it combines your bid with "auction-time quality". That quality can include expected clickthrough rate (CTR), ad relevance and landing page experience, measured for that search ([Google Ads Help: About Ad Rank](https://support.google.com/google-ads/answer/1722122?hl=en)). Ad Rank is recalculated on every search, while Quality Score is a backward-looking summary of that assessment.

In practice, quality in single auctions can shift with device, location and time while the score stays flat. Google notes that devices, user location, time of day and assets may not be captured by Quality Score. The score tells you where to look, not what happened in one auction.

## The three Quality Score components

Quality Score combines three components, and Google rates each against competitors as above average, average or below average. The benchmark is the last 90 days of ads shown for the identical search. According to Google's "5 ways" page, the components help you see what to update ([Google Ads Help: 5 ways to use Quality Score](https://support.google.com/google-ads/answer/6167130?hl=en)). The options are ad text, keyword selection or landing page content.

### Expected clickthrough rate

Expected CTR is the likelihood that your ad will be clicked when shown. It is a prediction rated against other advertisers, not the CTR column in your reports. That column is the clicks you actually got divided by impressions ([Google Ads Help: Clickthrough rate (CTR)](https://support.google.com/google-ads/answer/2615875?hl=en)).

When expected CTR is low, check the ad text first. The offer may not be compelling, or its details may not match the intent behind the keyword. Google suggests highlighting a unique benefit and testing calls to action that connect to the landing page.

The same page adds a caveat. A more specific ad can bring a lower CTR but a higher conversion rate. So raising expected CTR should not be a goal on its own.

Judge new ad text by cost per conversion as well. You can check whether a gap between two ads is chance with the [A/B test significance calculator](https://alidemirbas.com.tr/en/calculators/ab-test).

### Ad relevance

Ad relevance shows how closely your ad matches the intent behind a search. When it is low, first check whether the ad text answers the searches in the group. Google suggests matching the ad's language more directly to search terms. Splitting the ad group fits only when it holds keywords that a single ad cannot serve.

A common mistake sits here. Google says moving an ad group with the same ads and keywords to another campaign or account does not change ad quality. A change can only come when a keyword moves into an ad group with new ad text. Restructuring does nothing unless the ad text is rewritten for the keywords.

### Landing page experience

Landing page experience is how relevant and useful your landing page is to people who click your ad. In Google's example, someone who searches "flannel shirts" and clicks a "flannel shirts" ad should land on your flannel inventory. The page should follow through on the ad's offer, work well on mobile and [load fast](https://alidemirbas.com.tr/en/blog/landing-page-speed-google-ads).

Google notes two more details. The exact search phrase does not need to appear on the page. Conversion rate does not affect the landing page status, but it can serve as a proxy for page experience. To compare conversion rate before and after a page change with the same definition, use the [conversion rate calculator](https://alidemirbas.com.tr/en/calculators/cr).

## Where to see Quality Score

Quality Score is not in the default table, so you add it as columns in the keyword report. Go to Keywords in the Campaigns menu and select the columns icon. Under "All columns", open the Quality score section and add Quality Score, Landing Page Exp., Exp. CTR and Ad Relevance.

### Current and historical columns

The current columns show today's status. For historical Quality Score, Google offers Quality Score (hist.), Landing Page Exper. (hist.), Ad Relevance (hist.) and Exp. CTR. (hist.). These give the score for the reporting period you are viewing, and a daily segment shows how it changed.

The split matters when you track a fix. Compare the period before and after the date you changed the ad or page, using the historical columns. The current column only shows the latest status, so it cannot tell you when it changed.

### When the score column shows a dash

A `—` in the Quality Score column means there are not enough searches that exactly match the keyword to calculate a score. The score is based on historical impressions for exact searches of that keyword. Changing the match type therefore does not change the score. It can only help the keyword enter more auctions and collect data.

### Pulling it with the Google Ads API and scripts

Instead of checking keywords one by one, you can pull scores and components with one query. In the Google Ads API v26 field reference, current values sit under `ad_group_criterion.quality_info`.

The fields are `quality_score` (1–10, empty without enough data), `search_predicted_ctr`, `creative_quality_score` and `post_click_quality_score`. They match the Exp. CTR, Ad Relevance and Landing Page Exp. columns ([Google Ads API: ad_group_criterion fields](https://developers.google.com/google-ads/api/fields/v26/ad_group_criterion)). Historical values are `metrics.historical_quality_score` and three `metrics.historical_*` fields.

The script below only reads data and writes to the log, so it changes nothing in the account. It lists enabled keywords with impressions in the last 30 days, in Search campaigns and ad groups that are also enabled. A paused campaign or ad group can still hold an enabled keyword, so all three statuses are checked. It then sums the spend share of keywords rated "Below average" on each component.

The code was not run in a real account. Each log row carries the criterion ID and match type, so the same keyword text in two match types stays apart. The [Google Ads scripts guide](https://alidemirbas.com.tr/en/blog/google-ads-scripts-guide) shows how to add a script and test it in preview mode.

*Script that logs spend share by component. Preview it before running it in a real account.*

```javascript
// Quality Score and its components: read-only, logs results.
function main() {
  const query =
    'SELECT campaign.name, ad_group.name, ' +
    'ad_group_criterion.criterion_id, ' +
    'ad_group_criterion.keyword.text, ' +
    'ad_group_criterion.keyword.match_type, ' +
    'ad_group_criterion.quality_info.quality_score, ' +
    'ad_group_criterion.quality_info.search_predicted_ctr, ' +
    'ad_group_criterion.quality_info.creative_quality_score, ' +
    'ad_group_criterion.quality_info.post_click_quality_score, ' +
    'metrics.impressions, metrics.cost_micros ' +
    'FROM keyword_view ' +
    "WHERE campaign.advertising_channel_type = 'SEARCH' " +
    "AND campaign.status = 'ENABLED' " +
    "AND ad_group.status = 'ENABLED' " +
    "AND ad_group_criterion.status = 'ENABLED' " +
    'AND metrics.impressions > 0 ' +
    'AND segments.date DURING LAST_30_DAYS';

  const fields = {
    ctr: 'searchPredictedCtr',
    relevance: 'creativeQualityScore',
    landingPage: 'postClickQualityScore'
  };
  const below = {ctr: 0, relevance: 0, landingPage: 0};
  const unknown = {ctr: 0, relevance: 0, landingPage: 0};
  let totalCost = 0;
  let noScoreCost = 0;

  for (const row of AdsApp.search(query)) {
    const criterion = row.adGroupCriterion;
    const info = criterion.qualityInfo || {};
    const cost = Number(row.metrics.costMicros) / 1000000;
    totalCost += cost;

    console.log([
      row.campaign.name,
      row.adGroup.name,
      criterion.criterionId,
      criterion.keyword.text,
      criterion.keyword.matchType,
      info.qualityScore,
      info.searchPredictedCtr,
      info.creativeQualityScore,
      info.postClickQualityScore,
      cost.toFixed(2)
    ].join(' | '));

    if (info.qualityScore === undefined || info.qualityScore === null) {
      noScoreCost += cost;
      continue;
    }
    for (const key in fields) {
      const value = String(info[fields[key]]);
      if (value === 'BELOW_AVERAGE') {
        below[key] += cost;
      } else if (value !== 'AVERAGE' && value !== 'ABOVE_AVERAGE') {
        unknown[key] += cost; // UNKNOWN, UNSPECIFIED or missing
      }
    }
  }

  const share = (x) => totalCost > 0 ? (100 * x / totalCost).toFixed(1) + '%' : 'n/a';
  console.log('Total cost: ' + totalCost.toFixed(2));
  console.log('No score cost share: ' + share(noScoreCost));
  for (const key in fields) {
    console.log(key + ' below average: ' + share(below[key]) +
      ', unknown: ' + share(unknown[key]));
  }
}
```

The script reports spend in account currency, with unscored keywords on their own line. The API can also return `UNKNOWN` or `UNSPECIFIED` for a component, so the script counts those as unknown, not as "not low". It was not confirmed that values arrive as text such as `BELOW_AVERAGE`, so each row also logs the raw values. Check the first rows in preview.

## Why chasing the 1–10 score misleads

Treating Google Ads Quality Score as a target runs against Google's advice on its ad quality page. The score is there to find weak ads, not to be pushed up for its own sake. Once the number is the goal, attention drifts to low-spend keywords or to brand keywords that already score high. Three situations cause this often.

### Low-volume keywords

For a rarely searched keyword, the score rests on a few impressions from exact searches in the last 90 days, or it never forms. Such a keyword may score 3, yet fixing it changes little if its share of spend is small. Sort the report by spend and group the unscored keywords on a separate line.

### Brand vs non-brand searches

On a brand search, the user is often already looking for you, and your ad and page can match that directly. If these keywords score high, that score can hide problems on non-brand searches. Label brand keywords from your own list and read every account twice: with brand and without. The example below shows why averages mislead without that split.

### Smart Bidding accounts

Smart Bidding, as Google defines it, sets bids for conversions or conversion value in every auction. Target CPA (cost per acquisition), Target ROAS ([return on ad spend](https://alidemirbas.com.tr/en/calculators/roas)), Maximize conversions and Maximize conversion value are all Smart Bidding strategies. Google also says reported conversions do not affect ad quality.

Under automated bidding, the keyword's maximum cost per click (CPC) bid no longer caps what you pay. Some strategies have their own cap, though. A portfolio Target CPA strategy can take a max bid limit, used in Search auctions only ([Google Ads Help: About Target CPA bidding](https://support.google.com/google-ads/answer/6268632?hl=en)).

What follows is this guide's inference, not Google's statement. When CPC rises under Smart Bidding, the first suspect may be [the strategy's target](https://alidemirbas.com.tr/en/blog/google-ads-bidding-strategies-guide) and conversion volume, not Quality Score.

Check first whether the score dropped in the historical columns. If it did not, auction-time quality may still have changed, since the score does not capture every factor. Examine bid targets, competition, and the query and device mix together.

### What Quality Score says about CPC, and what it does not

Actual CPC, per Google, is the minimum needed to clear Ad Rank thresholds. It must also beat the Ad Rank of the competitor just below you ([Google Ads Help: Actual cost-per-click](https://support.google.com/google-ads/answer/6297?hl=en)). That calculation combines auction-time quality, bid, thresholds, competition, search context and expected asset impact.

Google says higher quality ads can often lead to lower CPCs. With low quality, actual CPC can sit close to max CPC even when competition is low.

Quality Score gives you a direction, not an amount. Google publishes no CPC discount per score point. Tables such as "Quality Score 10 halves your CPC" are third-party estimates, not Google's.

Under automated bidding, the keyword's max CPC bid does not cap what you pay. Track how CPC actually moves from spend and clicks with the [CPC calculator](https://alidemirbas.com.tr/en/calculators/cpc).

## Hypothetical example: what to investigate first

This hypothetical example uses illustrative data: 30 days of Search campaigns for a running-shoe store. It shows how an average and a spend share point to different places in the same data.

### The example account

The example has eight keywords. The first table gives score, impressions and spend. The second gives the component statuses.

#### Keywords, impressions and spend

*Quality Score, impressions and spend of the keywords in the hypothetical example.*

| Keyword | Quality Score | Impressions | Spend |
| --- | --- | --- | --- |
| brand name | 10 | 40,000 | $600 |
| running shoes | 5 | 25,000 | $3,000 |
| men's running shoes | 6 | 12,000 | $1,600 |
| trail running shoes | 4 | 6,000 | $900 |
| waterproof running shoes | 7 | 8,000 | $700 |
| running shoes sale | 3 | 900 | $80 |
| carbon plate running shoes | 3 | 500 | $60 |
| running shoe size guide | none | 300 | $40 |

Total spend in the example is $6,980. The last keyword has no score, so it stays out of the averages but remains in the denominator of the spend shares.

#### Component statuses

*The same keywords on the three components.*

| Keyword | Exp. CTR | Ad relevance | Landing page |
| --- | --- | --- | --- |
| brand name | Above | Above | Above |
| running shoes | Average | Average | Below |
| men's running shoes | Average | Above | Below |
| trail running shoes | Below | Below | Average |
| waterproof running shoes | Above | Above | Average |
| running shoes sale | Below | Below | Below |
| carbon plate running shoes | Below | Average | Below |

### What the average score hides

Two rules of thumb come up often: "an average score above 7 means a healthy account" and "start with the lowest-scoring keyword". In the example, the impression-weighted average is 7.37, so the first rule calls the account healthy. Yet the brand keyword, which has the most impressions, pulls that average up. Without brand, the same average drops to 5.37.

In the example, the second rule sends you to the two keywords scoring 3. Together they cost $140, or 2.0% of spend.

The table below reads the same data component by component. Google advises against aggregating the score, so the averages here only show why they mislead. The component shares count how much spend each fix would touch.

*Average scores with and without brand keywords.*

| Measure | With brand | Without brand |
| --- | --- | --- |
| Simple average score | 5.43 | 4.67 |
| Impression-weighted score | 7.37 | 5.37 |
| Spend-weighted score | 5.69 | 5.29 |
| Landing page "below" share | 67.9% | 74.3% |
| Exp. CTR "below" share | 14.9% | 16.3% |
| Ad relevance "below" share | 14.0% | 15.4% |

In the example, 67.9% of spend sits on keywords whose landing page is "Below average". That is $4,740, mostly from two generic keywords.

One keyword can have more than one weak component, so the shares need not sum to 100%. Here they sum to 96.8% with brand and about 106% without. Under these assumptions, the landing page is the first area to investigate.

### If the assumptions change

The input that drives the decision is the component status of "running shoes", the largest keyword by spend. In the table below, every other keyword and all spend stay fixed. Only that keyword changes: landing page "Average", ad relevance "Below average".

*Where to look first when the assumptions change.*

| Scenario | Landing page share | Ad relevance share | Look first at |
| --- | --- | --- | --- |
| Base | 67.9% | 14.0% | Landing page |
| Without brand | 74.3% | 15.4% | Landing page |
| "running shoes" changes | 24.9% | 57.0% | Ad relevance |

In the third scenario, that keyword still scores 5 and every average stays the same. Yet the first area to investigate moves from the landing page to ad relevance. The same average score can point to two different problems.

This holds only for the example's assumptions. Only your own data shows which component leads in your account.

## Steps to improve a weak component

Improving a weak component means changing the experience it points to, not the score. The steps below apply the example's count to your own account and measure the result.

### Step 1: Define what you count

Count over a single period, for example the last 30 days. The unit is the keyword: enabled keywords in enabled Search campaigns and ad groups, with impressions in that period. Spend is the cost over those 30 days, and component status is the current status when the query runs.

Keep unscored keywords separate but leave their spend in the denominator. Label brand keywords from your own list and run the count twice, with and without brand.

### Step 2: Use spend share to decide where to look

For each component, compute the spend share of keywords rated "Below average". That share shows where to start investigating. A low component does not prove the spend is wasted or say what a fix will return.

Decide the fix order by how concrete the problem is, how feasible the fix is and the business outcome. A page problem on a large share may take long to fix. A clear ad text mismatch on smaller spend can be fixed quickly.

Google says an "Average" status may also indicate an opportunity to improve. When the shares are small, weigh that against conversion and cost metrics rather than the score.

### Step 3: Verify the problem, then choose the fix

A component names an area, not a cause, so verify the problem first and then choose the action:

- Low ad relevance: check whether the ad text answers the searches in the group. If only the text is off, rewrite it in the language of the keywords. Split the group into themes only when it holds keywords one ad cannot serve.
- Low expected CTR: check whether the offer is compelling and its details match the keyword's intent. If not, rewrite the ad and compare new and old text on cost per conversion.
- Low landing page experience: check that the page shows the product or offer from the ad and loads fast on mobile. If not, send users to the matching page or fix the page.

When landing page fixes involve design and offer decisions, testing them is safer than changing everything at once. The [complete guide to A/B testing](https://alidemirbas.com.tr/en/blog/what-is-ab-testing-complete-guide) explains the control and variant setup. To find conversion blockers on the page, see the [conversion rate optimization guide](https://alidemirbas.com.tr/en/blog/conversion-rate-optimization-guide).

### Step 4: Track the result with historical columns and business metrics

Note the date of the change and compare the periods before and after with the historical columns. Components rest on Google's 90-day comparison, so a status can take time to change. A better score alone is not success. The real measure is how conversion rate, CPC and cost per conversion change on the same keywords.

A before-and-after comparison cannot separate changes in bids, competition or season during the same period. A test that compares the fixed and unfixed versions over the same period is the way to isolate the change. The [guide to control groups](https://alidemirbas.com.tr/en/blog/control-group-ab-testing) explains how to set that baseline.
