---
title: "Build a Daily Negative Keyword Shortlist Without Paying an Agency to Check It"
description: "Use a Google Ads Script to flag costly, zero-conversion search terms, check landing-page engagement, and apply reviewed negatives across Search and Performance…"
url: "https://groas.com/post/set-up-automated-negative-keyword-exclus"
image: "https://groas.com/media/blog/ba7859dd337cad0f01f295d132ebfffba773f4a4d16c2031a796ff5b86fcbc9b.png"
published: "2026-09-28T05:20:09.323Z"
modified: "2026-09-30T23:01:32.438Z"
---

[Google Ads Best Practices](https://groas.com/category/google-ads-best-practices) · September 28, 2026 · 9 min read

# Build a Daily Negative Keyword Shortlist Without Paying an Agency to Check It

[Alexander PerelmanHead Of Product @ groas](https://groas.com/author/alexander-perelman)

Updated September 30, 2026

![Cover image for: Build a Daily Negative Keyword Shortlist Without Paying an Agency to Check It](https://groas.com/media/blog/ba7859dd337cad0f01f295d132ebfffba773f4a4d16c2031a796ff5b86fcbc9b.png)

In this article

1. [Step 1: Find the queries consuming spend](#step-1-find-the-queries-consuming-spend)
2. [Step 2: Set a threshold before a term reaches the list](#step-2-set-a-threshold-before-a-term-reaches-the-list)
3. [Step 3: Choose the narrowest negative that fixes the problem](#step-3-choose-the-narrowest-negative-that-fixes-the-problem)
4. [Step 4: Apply reviewed negatives to Search](#step-4-apply-reviewed-negatives-to-search)
5. [Step 5: Cover Performance Max without blocking a good offer](#step-5-cover-performance-max-without-blocking-a-good-offer)
6. [Step 6: Schedule a daily shortlist, not a blind blocklist](#step-6-schedule-a-daily-shortlist-not-a-blind-blocklist)
7. [Step 7: Audit the list, then verify the exclusions](#step-7-audit-the-list-then-verify-the-exclusions)

An agency can charge a percentage of your ad spend while someone checks the search terms report every two weeks and calls five exclusions optimization. I’d rather have the account flag costly queries every morning, then spend human attention on the decision that matters: whether those queries deserve to be blocked.

By the end of this walkthrough, you’ll have a daily shortlist of zero-conversion search terms, a way to use GA4 engagement data to investigate them, and negative keyword lists applied where they belong across Search and Performance Max. **The shortlist is automated; the decision to exclude is deliberate.** Google Ads Scripts cannot pull a search term’s GA4 bounce rate in the same search-term query, so a script that automatically blocks every costly, zero-conversion term is not the system this article promises.

Before starting, have these ready:

- **Standard or Administrative access** to your Google Ads account.
- **A linked Google Analytics 4 (GA4) property** and auto-tagging enabled.
- **A conversion baseline:** your target cost per acquisition (CPA), plus the historical bounce rate of the landing pages you’ll inspect.

## Step 1: Find the queries consuming spend

Open **Campaigns > Insights and reports > Search terms** in Google Ads. Click **Columns > Modify columns** and confirm that **Clicks**, **Cost**, and **Conversions** are visible. Click **Apply**, then set the date range to `Last 30 days`.

Sort by cost and read the actual queries, not just the keywords that matched them. An ad group keyword such as `industrial plumbing software` can buy a click for `free plumbing invoice pdf`. The keyword’s average performance will not tell you that the query was a poor fit.

**Expected result:** You can see which reported search terms spent money without recording a conversion during the selected period.

**Mistake to avoid:** Opening **Search keywords** instead of **Search terms**. The first shows the targeting you entered; the second shows the queries you need to judge.

Do not look for a per-query GA4 bounce-rate column here. A linked GA4 property does not give this report a reliable bounce rate for each search term. Keep the query report open; you’ll use GA4 to investigate the landing page, not pretend it measured each query’s visit separately.

## Step 2: Set a threshold before a term reaches the list

Use a rule that prevents three clicks and a bad afternoon from becoming a permanent exclusion. Start with all three checks:

1. **Spend:** The query has spent at least `1.0x–1.5x` your target CPA. If average CPC is below `$1.50`, use at least `20 clicks` as an additional volume check.
2. **Conversions:** The query shows `0.00` conversions in the evaluation window.
3. **Engagement investigation:** The landing page receiving the traffic warrants a closer look if its GA4 bounce rate is `75%` or higher, or its average session duration is under `8 seconds`.

For the third check, open the relevant landing-page report in GA4 and compare that page with its own historical baseline. [GA4 defines bounce rate as the percentage of sessions that were not engaged](https://support.google.com/analytics/answer/12195621). That makes it useful context. It does **not** establish that one particular search term produced the bounced sessions.

Say a query has spent `$150` against a `$100` target CPA and has no conversions. If its landing page also shows poor engagement, inspect the query and the page together. A visitor looking for a free template may have landed on a paid-software page. Equally, a page problem could be affecting otherwise useful traffic. Read the words in the query before deciding which explanation fits.

**Expected result:** A small set of expensive, zero-conversion queries that merit review, with landing-page engagement available as supporting evidence.

**Mistake to avoid:** Calling high page-level bounce an automatic diagnosis of query-level intent mismatch. Exclude the query because its meaning is wrong for the offer, not because two numbers look bad beside each other.

## Step 3: Choose the narrowest negative that fixes the problem

Before adding anything, decide what you mean to block. Negative match types do not expand the way positive broad match does. In particular, [negative keywords do not automatically cover close variants such as plurals and misspellings](https://support.google.com/google-ads/answer/2453972). Check the wording you actually see in the report.

- **Negative exact match:** `[free plumbing templates]` blocks that query without extending the exclusion to queries with extra words. Use it when the particular search is wrong but its component words might be useful elsewhere.
- **Negative phrase match:** `"free download"` blocks queries containing that word sequence in that order. Use it when the phrase consistently signals an offer you do not provide.
- **Negative broad match:** `free` blocks queries containing that word. For multiword broad negatives, the query must contain every word, though their order can differ. Use a single-word exclusion only when that word has no value anywhere the list applies.

For example, if you sell commercial accounting software and `accounting course syllabus` repeatedly wastes spend, `accounting` is a terrible account-wide negative. Try the narrower `"accounting course"` or, if it is universally irrelevant, `syllabus`. The goal is to stop the wrong search without amputating the right one.

For more candidates to inspect, use our [Google Ads negative keywords list](https://groas.com/post/google-ads-negative-keywords-list-2026-comprehensive-guide-by-category-industry). Treat it as a review list, not a paste-and-pray file. Our [guide to negative keywords in Google Ads and Performance Max](https://groas.com/post/google-ads-negative-keywords-complete-guide) goes deeper on match types.

![Diagram comparing positive broad-match expansion with the narrower behavior of negative match types.](https://groas.com/media/blog/a3dc49c0a02744ad2e2a8d617e351af4b74b244b0944a1f1de9c3838714aaa18.png)

**Expected result:** Each candidate has a proposed negative and match type you can defend in one sentence.

**Mistake to avoid:** Promoting an ambiguous query to a broad, account-wide negative just because it crossed your spend floor. A hard stop is not a bid adjustment.

## Step 4: Apply reviewed negatives to Search

Keep recurring exclusions in one place instead of chasing the same query through twenty ad groups.

1. Go to **Tools and settings > Shared library > Negative keyword lists**.
2. Click `+` and name the list `High-Bounce Intent Mismatches`.
3. Paste **reviewed** negatives using the match syntax you chose in Step 3, then click **Save**.
4. Select the list, click **Apply to campaigns**, select the Search campaigns where every entry is inappropriate, and confirm.

**Expected result:** The shared list is attached to the intended Search campaigns. Future eligible searches matching its negatives will not trigger those campaigns.

**Mistake to avoid:** Assuming _shared_ means _safe for every campaign_. If one product line should still buy a query, do not attach the list to that campaign. Split offer-specific exclusions from universal ones before you apply anything widely.

## Step 5: Cover Performance Max without blocking a good offer

The Search list does not protect Performance Max merely because you created it. Decide how widely each exclusion should apply, then use the corresponding route:

1. **Universal junk:** Go to **Admin > Account settings > Negative keywords**. Click `+`, add the reviewed broad or phrase negatives, and click **Save**. Use this route only for intent with no commercial value anywhere in the account, such as an irrelevant `"careers"` or `"support"` search. Account-level negatives affect more than the Search campaigns you selected in Step 4.
2. **Offer-specific mismatch:** Open the relevant Performance Max campaign, then go to **Settings > Additional settings > Negative keywords**. Add the applicable negatives or select the relevant list where the campaign interface offers that option, then save. Keep the exclusion at campaign level when another offer in the account could benefit from the query.

For the other exclusion controls, see our [Performance Max negative keyword walkthrough](https://groas.com/post/how-to-set-up-negative-keywords-performance-max-campaigns-pmax-exclusions-guide).

**Expected result:** The reviewed negatives are applied to the intended Performance Max campaign or at account level when they truly belong everywhere.

**Mistake to avoid:** Putting a low-margin SKU’s query into account-level negatives while another campaign sells that SKU as its main offer. Account-wide means account-wide. Check the scope before you click **Save**.

## Step 6: Schedule a daily shortlist, not a blind blocklist

A weekly report leaves several days between inspections. Use a Google Ads Script to log costly, zero-conversion search terms each day. It will not read GA4 bounce rate, judge the query’s intent, or add a negative on your behalf. That restraint is a feature here.

Go to **Tools and settings > Bulk actions > Scripts**. Click `+`, name the script `Daily Negative Candidate Scanner`, and replace the editor’s default code with this:

```javascript
function main() {
  const SPEND_THRESHOLD = 150.00; // Set this from your target CPA.

  const query = `
    SELECT search_term_view.search_term, metrics.cost_micros, metrics.conversions
    FROM search_term_view
    WHERE segments.date DURING LAST_30_DAYS
      AND metrics.conversions = 0
      AND metrics.cost_micros > ${SPEND_THRESHOLD * 1000000}
    ORDER BY metrics.cost_micros DESC
  `;

  const report = AdsApp.search(query);
  while (report.hasNext()) {
    const row = report.next();
    const term = row.searchTermView.searchTerm;
    const cost = (row.metrics.costMicros / 1000000).toFixed(2);

    Logger.log(`Review: "${term}" | Cost: $${cost} | Conversions: 0`);
  }
}
```

Set `SPEND_THRESHOLD` to the spend floor you chose in Step 2; `$150` is the example value, not a universal setting. Click **Authorize** and grant the requested permissions. Click **Preview** to inspect the log, then **Save**. Set the frequency to `Daily` and the execution time to `06:00 AM`.

**Expected result:** Each run logs reported search terms that crossed your spend floor with zero conversions in the last 30 days. Review those entries against the query’s meaning, the offer, and the relevant landing page’s GA4 engagement before adding any negative through Steps 3–5. The script does not change campaigns.

**Mistake to avoid:** Replacing `Logger.log()` with an automatic negative-keyword action just to make the workflow feel more automated. [Scripts can work with shared negative keyword lists](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_negativekeywordlist), but this query supplies ad-platform cost and conversion metrics, not the GA4 engagement evidence your exclusion rule calls for. It also is not a complete substitute for reviewing Performance Max’s own search-term reporting.

![Linocut-style clockwork mechanism filtering a stream of paper tapes.](https://groas.com/media/blog/414a7ad4588749f26138d246b371c0b4704c6623b9d74a51c6e63b9357adf9cf.png)

### Where the script stops

A `$151` query with zero conversions can be wasted spend. It can also be early-stage research for a longer sales cycle, or traffic sent to a page that briefly failed. **A negative keyword is a hard stop**, not a cheaper bid. The daily log finds work worth doing; it does not settle the case.

That distinction is why I prefer accountable execution to either a fortnightly agency check-in or an unsupervised bucket of script-generated exclusions. [groas](https://groas.com/paid-search) pairs continuous, specialized-model execution with guardrails, action logs, and a named human strategist. The point is not to remove judgment. It is to stop paying a percentage of spend for someone to open a report late.

## Step 7: Audit the list, then verify the exclusions

Once a week, check what was blocked and whether the scope still makes sense:

1. Open **Tools and settings > Shared library > Negative keyword lists** and select `High-Bounce Intent Mismatches`.
2. Review recently added entries. For the highest-spending candidates, check CRM or assisted-conversion context before leaving an exclusion in place.
3. Check the affected campaigns under **Campaigns** and compare their impressions and conversion trends before and after the changes. If a sudden drop coincides with an exclusion, open **Tools and settings > Change history** and inspect what was added.
4. Revisit account-level and Performance Max exclusions separately. A term that is wrong for one offer may still be right for another.

To verify a particular negative, return to **Campaigns > Insights and reports > Search terms** and filter for `Added/Excluded = Excluded` where that status is available. Confirm the intended term is marked excluded and the negative is attached at the intended scope. **Do not expect its historical impression count to become zero.** The report still includes what happened before the exclusion; inspect subsequent days to see whether matching traffic stops.

The first thing to change once the process runs cleanly is the spend floor, not the match type. If your reviewed candidates consistently prove irrelevant and conversion volume holds, move the example threshold from `1.5x` target CPA toward `1.0x`. Keep the same intent review. Catching waste earlier is useful; blocking a valuable query earlier is just a faster way to waste money.

## Frequently Asked Questions

### How do I find search terms in Google Ads that spent money but got no conversions?

Open Campaigns, then Insights and reports, then Search terms in Google Ads, confirm that Clicks, Cost and Conversions columns are visible, set the date range to the last 30 days and sort by cost. Read the actual queries rather than the keywords that matched them, because a keyword can buy clicks for poorly fitting searches.

### When should I exclude a search term as a negative keyword?

Only after it passes three checks: it has spent at least 1.0x to 1.5x your target CPA, it shows 0.00 conversions in the evaluation window, and its landing page warrants a closer look, for example with a GA4 bounce rate of 75% or higher or an average session duration under 8 seconds. Then read the query's actual words before deciding.

### Does GA4 show a bounce rate for each search term?

No, a linked GA4 property does not give the Google Ads search terms report a reliable bounce rate for each search term. GA4 defines bounce rate at page level as the percentage of sessions that were not engaged, so it provides context about a landing page but does not establish that one particular search term produced the bounced sessions.

### What negative keyword match type should I use?

Use the narrowest match that fixes the problem. Negative exact match blocks one specific query, negative phrase match blocks queries containing a word sequence in order, and negative broad match blocks queries containing a word. Remember that negative keywords do not automatically cover close variants such as plurals and misspellings, so check the wording you actually see in the report.

### How do I apply negative keywords to multiple Google Ads campaigns at once?

Go to Tools and settings, Shared library, then Negative keyword lists, create a named list, paste the reviewed negatives, and click Apply to campaigns. Select only the Search campaigns where every entry in the list is inappropriate, because a shared list is not automatically safe for every campaign.

### Does a shared negative keyword list cover Performance Max campaigns?

No, a shared list created for Search campaigns does not protect Performance Max merely because you created it. For universal junk with no commercial value anywhere in the account, add negatives under Admin, Account settings, Negative keywords. For an offer-specific mismatch, add negatives at campaign level under the campaign's Additional settings.

### Can a Google Ads Script automatically add negative keywords for costly search terms?

Technically scripts can work with shared negative keyword lists, but the workflow recommends against it. A script can log costly, zero-conversion search terms each day, yet it cannot read GA4 bounce rate or judge the query's intent, so the exclusion decision should stay with a human reviewing the daily shortlist.

### How do I verify that a negative keyword is actually working in Google Ads?

Return to the Search terms report and filter for Added/Excluded equal to Excluded where that status is available, then confirm the intended term is marked excluded at the intended scope. Do not expect its historical impression count to become zero; the report still includes what happened before the exclusion, so check subsequent days for whether matching traffic stops.

## Related Posts

- [![A paper price tag trapped inside a wooden puzzle box with only its red string poking out, like a page answer hidden behind a widget.](https://groas.com/media/blog/fc591013b9fbca0a4fbbd5b5da9840f87092e2e1974af7c54a3f3b23280ab402.png)](https://groas.com/post/the-landing-page-pre-flight-checklist-fo)
  ### [The AI Overview Landing Page Checklist PPC Operators Already Know](https://groas.com/post/the-landing-page-pre-flight-checklist-fo)
  [October 6, 2026 • 9 min read](https://groas.com/post/the-landing-page-pre-flight-checklist-fo)

  [Written by Alexander Perelman](https://groas.com/post/the-landing-page-pre-flight-checklist-fo)
- [![At night a man feeds coins into a meter to keep a flickering neon arrow lit, while the shop next door's name is carved in stone and glows for free.](https://groas.com/media/blog/ad30079702ecc11a3bff7edb537edcca030726c0ed2abe36967400042b81b547.png)](https://groas.com/post/pay-for-the-ad-in-the-ai-overview-or-ear)
  ### [AI Overview Ads or Citations? The Case for Each, and My Verdict](https://groas.com/post/pay-for-the-ad-in-the-ai-overview-or-ear)
  [October 6, 2026 • 11 min read](https://groas.com/post/pay-for-the-ad-in-the-ai-overview-or-ear)

  [Written by David](https://groas.com/post/pay-for-the-ad-in-the-ai-overview-or-ear)
- [![Clay figure at 1am stands under twelve blaring smoke alarms holding a mop, tickets piling at his feet: alerts are cheap, the fixing is the real work.](https://groas.com/media/blog/7dc21b6208fddea75f45ab3140778709349a82c720e56c41e17f0a244bae350c.png)](https://groas.com/post/stop-shopping-for-aeo-software-at-10-cli)
  ### [Stop Shopping for AEO Trackers. At 10 Client Domains, Execution Wins](https://groas.com/post/stop-shopping-for-aeo-software-at-10-cli)
  [October 6, 2026 • 9 min read](https://groas.com/post/stop-shopping-for-aeo-software-at-10-cli)

  [Written by David](https://groas.com/post/stop-shopping-for-aeo-software-at-10-cli)

## Pay For Results, Not For Hours

Businesses buy the outcome, agencies resell it, and groas answers for it either way.

[See If You Qualify](https://groas.typeform.com/to/xC1bQNUT)

## Structured data

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://graph.groas.com/entity/groas","name":"groas","url":"https://groas.com/","logo":{"@type":"ImageObject","url":"https://groas.com/icon-512.png","width":512,"height":512},"sameAs":["https://www.linkedin.com/company/groas/"]},{"@type":"WebSite","@id":"https://groas.com/#website","name":"groas","url":"https://groas.com/","inLanguage":"en-US","publisher":{"@id":"https://graph.groas.com/entity/groas"}},{"@type":"WebPage","@id":"https://groas.com/post/set-up-automated-negative-keyword-exclus#webpage","url":"https://groas.com/post/set-up-automated-negative-keyword-exclus","name":"Build a Daily Negative Keyword Shortlist Without Paying an Agency to Check It","description":"Use a Google Ads Script to flag costly, zero-conversion search terms, check landing-page engagement, and apply reviewed negatives across Search and Performance…","inLanguage":"en-US","isPartOf":{"@id":"https://groas.com/#website"},"about":{"@id":"https://graph.groas.com/entity/groas"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://groas.com/media/blog/ba7859dd337cad0f01f295d132ebfffba773f4a4d16c2031a796ff5b86fcbc9b.png"},"breadcrumb":{"@id":"https://groas.com/post/set-up-automated-negative-keyword-exclus#breadcrumb"},"dateModified":"2026-09-30T23:01:32.438Z","mainEntity":{"@id":"https://groas.com/post/set-up-automated-negative-keyword-exclus#article"}},{"@type":"BreadcrumbList","@id":"https://groas.com/post/set-up-automated-negative-keyword-exclus#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://groas.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://groas.com/blog"},{"@type":"ListItem","position":3,"name":"Google Ads Best Practices","item":"https://groas.com/category/google-ads-best-practices"},{"@type":"ListItem","position":4,"name":"Build a Daily Negative Keyword Shortlist Without Paying an Agency to Check It","item":"https://groas.com/post/set-up-automated-negative-keyword-exclus"}]},{"@type":"BlogPosting","@id":"https://groas.com/post/set-up-automated-negative-keyword-exclus#article","url":"https://groas.com/post/set-up-automated-negative-keyword-exclus","mainEntityOfPage":{"@id":"https://groas.com/post/set-up-automated-negative-keyword-exclus#webpage"},"isPartOf":{"@id":"https://groas.com/blog#blog"},"headline":"Build a Daily Negative Keyword Shortlist Without Paying an Agency to Check It","description":"Use a Google Ads Script to flag costly, zero-conversion search terms, check landing-page engagement, and apply reviewed negatives across Search and Performance Max.","datePublished":"2026-09-28T05:20:09.323Z","dateModified":"2026-09-30T23:01:32.438Z","image":{"@type":"ImageObject","url":"https://groas.com/media/blog/ba7859dd337cad0f01f295d132ebfffba773f4a4d16c2031a796ff5b86fcbc9b.png"},"author":{"@id":"https://groas.com/author/alexander-perelman#person"},"publisher":{"@id":"https://graph.groas.com/entity/groas"},"articleSection":"Google Ads Best Practices","keywords":"Google Ads, Google Ads Best Practices","wordCount":1970,"inLanguage":"en-US"},{"@type":"Person","@id":"https://groas.com/author/alexander-perelman#person","name":"Alexander Perelman","jobTitle":"Head Of Product @ groas","description":"Ex Goldman Sachs and Ex Stanford Computer Science","image":"https://groas.com/media/blog/4f17cac3a81acc224cc1b2cfab8f94bbc295a3089d13e8421125771ef8d4064f.jpg","worksFor":{"@id":"https://graph.groas.com/entity/groas"},"sameAs":["https://www.linkedin.com/in/alexander-433793253/"]},{"@type":"FAQPage","@id":"https://groas.com/post/set-up-automated-negative-keyword-exclus#faq","mainEntity":[{"@type":"Question","name":"How do I find search terms in Google Ads that spent money but got no conversions?","acceptedAnswer":{"@type":"Answer","text":"Open Campaigns, then Insights and reports, then Search terms in Google Ads, confirm that Clicks, Cost and Conversions columns are visible, set the date range to the last 30 days and sort by cost. Read the actual queries rather than the keywords that matched them, because a keyword can buy clicks for poorly fitting searches."}},{"@type":"Question","name":"When should I exclude a search term as a negative keyword?","acceptedAnswer":{"@type":"Answer","text":"Only after it passes three checks: it has spent at least 1.0x to 1.5x your target CPA, it shows 0.00 conversions in the evaluation window, and its landing page warrants a closer look, for example with a GA4 bounce rate of 75% or higher or an average session duration under 8 seconds. Then read the query's actual words before deciding."}},{"@type":"Question","name":"Does GA4 show a bounce rate for each search term?","acceptedAnswer":{"@type":"Answer","text":"No, a linked GA4 property does not give the Google Ads search terms report a reliable bounce rate for each search term. GA4 defines bounce rate at page level as the percentage of sessions that were not engaged, so it provides context about a landing page but does not establish that one particular search term produced the bounced sessions."}},{"@type":"Question","name":"What negative keyword match type should I use?","acceptedAnswer":{"@type":"Answer","text":"Use the narrowest match that fixes the problem. Negative exact match blocks one specific query, negative phrase match blocks queries containing a word sequence in order, and negative broad match blocks queries containing a word. Remember that negative keywords do not automatically cover close variants such as plurals and misspellings, so check the wording you actually see in the report."}},{"@type":"Question","name":"How do I apply negative keywords to multiple Google Ads campaigns at once?","acceptedAnswer":{"@type":"Answer","text":"Go to Tools and settings, Shared library, then Negative keyword lists, create a named list, paste the reviewed negatives, and click Apply to campaigns. Select only the Search campaigns where every entry in the list is inappropriate, because a shared list is not automatically safe for every campaign."}},{"@type":"Question","name":"Does a shared negative keyword list cover Performance Max campaigns?","acceptedAnswer":{"@type":"Answer","text":"No, a shared list created for Search campaigns does not protect Performance Max merely because you created it. For universal junk with no commercial value anywhere in the account, add negatives under Admin, Account settings, Negative keywords. For an offer-specific mismatch, add negatives at campaign level under the campaign's Additional settings."}},{"@type":"Question","name":"Can a Google Ads Script automatically add negative keywords for costly search terms?","acceptedAnswer":{"@type":"Answer","text":"Technically scripts can work with shared negative keyword lists, but the workflow recommends against it. A script can log costly, zero-conversion search terms each day, yet it cannot read GA4 bounce rate or judge the query's intent, so the exclusion decision should stay with a human reviewing the daily shortlist."}},{"@type":"Question","name":"How do I verify that a negative keyword is actually working in Google Ads?","acceptedAnswer":{"@type":"Answer","text":"Return to the Search terms report and filter for Added/Excluded equal to Excluded where that status is available, then confirm the intended term is marked excluded at the intended scope. Do not expect its historical impression count to become zero; the report still includes what happened before the exclusion, so check subsequent days for whether matching traffic stops."}}]}]}
```
