---
title: "Build a GA4-to-Google Ads Negative Keyword Filter Without Buying an AI Tool"
description: "Dedicated strategists run your account and a proprietary engine trained on $500B in profitable ad spend optimises the execution underneath them"
image: "https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf3f0a433b25ee8a3355cc_a90adb3c-f5c7-4819-b8a6-8ecb41c5844b.png"
---

October 2, 2026

•

12

min read

# Build a GA4-to-Google Ads Negative Keyword Filter Without Buying an AI Tool

![Young man with curly hair wearing a black shirt outdoors against green foliage background.](https://cdn.prod.website-files.com/6821efca072e48f6f495a47e/68562d390107b3921a6e3d68_1743932904108.jpg)

**Alexander Perleman**, Head Of Product @ groas
Ex-Goldman Sachs and Stanford Computer Science

**Email: alex@groas.com**

[**LinkedIn: https://www.linkedin.com/in/alexander-433793253/**](https://www.linkedin.com/in/alexander-433793253/)

![Cover image for: Build a GA4-to-Google Ads Negative Keyword Filter Without Buying an AI Tool](https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf3f0a433b25ee8a3355cc_a90adb3c-f5c7-4819-b8a6-8ecb41c5844b.png)

You do not need a paid AI tool to spot search terms that eat clicks and send visitors straight back out. You need GA4 engagement data beside your Google Ads search terms, a click floor that keeps noise out of the decision, and 15 minutes a week to review what the filter catches.

Do not let bounce rate make the decision for you. A query can look terrible after two visits and still be worth keeping. By the end of this tutorial, you will have a repeatable review sheet, a shortlist of terms worth excluding, and a shared negative list for the campaigns where those exclusions belong. The first build takes about an hour.

Before starting, confirm you have:

- **Admin or Editor access** to your GA4 property and access to the linked Google Ads account.
- **Auto-tagging enabled** in Google Ads.
- **30 to 60 days of search-term data** and conversion tracking you trust.
- **A target CPA or ROAS** so you can recognize a query that earns its place despite weak engagement.

#### What the filter can tell you

Under [Google’s GA4 documentation](https://support.google.com/analytics/answer/12159447), bounce rate is the inverse of engagement rate. A session counts as engaged when it lasts at least 10 seconds, records two or more page views, or fires a key event. Someone who finds your phone number and leaves after nine seconds may count as a bounce. Someone who stares at the wrong page for 11 seconds counts as engaged.

That is why **low engagement is a reason to investigate, not an instruction to exclude**. I want three gates before a term reaches the negative list: enough Google Ads clicks to be worth judging, engagement well below the paid-traffic baseline, and no conversion or downstream pipeline result that vetoes the cut. The spreadsheet brings those checks together; neither platform’s report does the whole job alone.

#### 1\. Check the GA4–Google Ads connection before trusting the rows

**Action:** In Google Ads, open `Admin > Account settings > Auto-tagging` and confirm `Tag the URL that people click through from my ad` is enabled. Then, in GA4, open `Admin > Product links > Google Ads links` and verify that the active Google Ads customer ID is connected. [Google’s Analytics auto-tagging documentation](https://support.google.com/analytics/answer/1033961) explains how the connection supports Google Ads reporting in Analytics without hand-built UTM parameters.

Next, open `Reports > Acquisition > Overview` in GA4, go to the Google Ads campaigns report, and check whether paid sessions and Google Ads dimensions populate for the period you plan to review. If the query dimension is available in that report, inspect it too. This is a pipeline check, not a judgment about any keyword yet.

**Expected result:** You can see Google Ads-attributed activity in GA4 and identify the campaigns you intend to compare. If query rows are missing or dominated by `(not set)`, stop. Check the account link, consent behavior and redirects before building exclusions from incomplete attribution.

**Common mistake:** Assuming a linked account makes every query visible in GA4. It does not make missing rows safe to interpret. And a `gclid` identifies an ad click for attribution; it is not a readable search term you can inspect in a landing-page URL.

![Brass and glass pipeline junction illustrating a check for gaps in traffic attribution.](https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf3f0b433b25ee8a3355f5_7fdd1626-6c8b-4de8-9afe-f797bd414e43.png)

#### 2\. Build a GA4 view of query engagement

**Action:** In GA4, open `Explore > Blank exploration`. Name the exploration:

```text
Google Ads Query Engagement Triage
```

Set the date range to the last 30 days. Use 60 days if the account spends under $5,000 a month and needs more time to accumulate clicks. In **Variables**, import these dimensions: `Session Google Ads query`, `Session Google Ads campaign`, and `Landing page + query string`. Import `Sessions`, `Engagement rate`, `Average engagement time per session`, and `Key events` as metrics.

In **Tab settings**, put `Session Google Ads query` and `Session Google Ads campaign` in **Rows**. Put the four metrics in **Values**, in that order, and set the row count to `500`. Filter out the `(not set)` query row. Keep `Landing page + query string` available for diagnosis rather than adding it to every row: splitting a query across landing pages can hide its overall pattern.

**Expected result:** You have query-and-campaign rows showing GA4 sessions, engagement and key events. This is the behavioral half of the review, not the final exclusion list. Export it as a CSV using the exploration’s export control.

**Common mistake:** Selecting a first-user dimension instead of `Session Google Ads query`. That can tie a later visit to the query that first brought someone in. Also, do not relabel `Sessions` as clicks. The click floor comes from Google Ads in the next step.

#### 3\. Put Google Ads clicks beside GA4 engagement

**Action:** In Google Ads, open the **Search terms** report for the same date range. Include `Campaign`, `Search term`, `Clicks`, `Conversions`, and the CPA or ROAS columns you use to judge performance, then export the report. In your spreadsheet, put the Google Ads export beside the GA4 export and compare rows by **campaign and search-term text**.

Keep the original exports untouched. Work in a separate review tab with these fields:

- Campaign and search term
- Google Ads clicks and conversions
- GA4 sessions, engagement rate and key events
- CPA or ROAS, where the row has enough conversion data to report it
- Your decision: keep, watch, or consider for exclusion

Check unmatched terms rather than forcing a join. The reports can have different visibility and attribution, and their totals need not line up row for row. A term present in Google Ads but absent from the GA4 query export is **unknown**, not a zero-engagement term.

**Expected result:** Each matched row shows what you paid for in Google Ads alongside what GA4 observed after the visit. You can now apply a click threshold without pretending sessions and clicks are interchangeable.

**Common mistake:** Matching on query text alone when the same term appears in more than one campaign. You may attach one campaign’s weak landing-page experience to another campaign’s spend, then exclude the wrong thing. Match campaign first.

#### 4\. Apply three gates before a query reaches the shortlist

**Action:** First, find the engagement-rate baseline for your paid traffic over the same period. Then apply these gates to the matched review rows. Treat them as conservative triage rules, not a claim of statistical certainty:

1. **Click floor:** Review terms with at least `15` Google Ads clicks in 30 days. In a high-CPC account where clicks cost $40 or more, you may lower the floor to `8`, but accept that the smaller sample deserves more manual scrutiny.
2. **Behavioral cutoff:** Flag a term only when its GA4 engagement rate is at least 50% below your paid-traffic baseline. If the baseline is `50%`, the cutoff is `25%` engagement.
3. **Conversion veto:** Keep a term out of the exclusion shortlist if Google Ads shows a conversion or your available pipeline review shows a downstream result. Check GA4 key events too, but do not assume a GA4 zero settles what happened in Ads or later in the sales process.

Mark a row *watch* when it fails the click floor, lacks a reliable GA4 match, or needs a closer look at its landing page. Mark it *consider for exclusion* only when it clears all three gates. You are narrowing the work, not outsourcing the decision to a color-coded cell.

**Expected result:** A short set of zero-conversion, low-engagement terms with enough paid clicks to justify inspection. You should also have a larger watch group that you deliberately leave alone.

**Common mistake:** Applying one fixed `25%` cutoff to every account. It is an example, not a universal setting. The other mistake is treating 15 clicks as proof that a term can never work. It is a floor for review, not a verdict.

![Three-stage decision filter sorting search queries into keep, watch and exclusion-review groups.](https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf3f0b433b25ee8a3355ee_b1471611-7a36-48b1-a647-c8be3dbac949.png)

#### 5\. Inspect intent, then choose the negative match type

**Action:** Read every *consider for exclusion* term before adding it anywhere. Ask whether the search itself is irrelevant or whether the ad and landing page failed to answer a relevant search. If several good terms pointing to one page all show weak engagement, investigate the page before blaming the queries.

For terms you still want to block, choose the narrowest match type that fits the intent:

- **Exact negative** for a specific query you want to stop without blocking longer variants. For example:

  ```text
  [leather shoe]
  ```
- **Phrase negative** when the same ordered phrase signals unwanted intent across the searches where it appears:

  ```text
  "free download"
  ```
- **Single-word broad negative** only for a categorical mismatch you are willing to block wherever it appears:

  ```text
  internship
  ```

[Negative keywords do not automatically cover close variants](https://support.google.com/google-ads/answer/2453972). An exact negative for `[leather shoe]` does not automatically exclude the plural. Do not paste every variation in blindly, either. Check what each addition would suppress. I avoid multi-word broad negatives here because words matching in different orders can block searches I meant to keep.

**Expected result:** A reviewed set of negatives with match types chosen for the searches you actually want to stop, not for the convenience of copying a column.

**Common mistake:** Treating a poor landing-page experience as proof of poor search intent. A negative keyword cannot repair the page; it can only remove the opportunity to show an ad.

#### 6\. Create the shared list and apply it deliberately

**Action:** In Google Ads, open `Tools > Shared library > Exclusion lists` or `Negative keyword lists`, depending on the interface shown in your account. Create a list named:

```text
Shared Negatives - High Bounce Zero Conv
```

Add your reviewed negatives, save, then use `Apply to campaigns` to attach the list to the active Search campaigns that share the relevant commercial intent. Do not attach it to a campaign whose offer makes one of those terms valuable. [Google Ads’ negative keyword documentation](https://support.google.com/google-ads/answer/6372664) describes the shared-list controls and limits; the useful point here is centralized review, not filling a list to its limit.

Check Performance Max separately. Where campaign-level negatives or a shared-list option are available for your PMax campaign, review the [campaign exclusion controls](https://nilsrooijmans.com/how-to-add-negative-keywords-to-your-performance-max-campaigns/) and apply only the negatives that belong there. Do not assume attaching a list to Search also attaches it to PMax.

**Expected result:** The intended Search campaigns show the shared list as applied, and you have explicitly checked the exclusion setup for each relevant PMax campaign.

**Common mistake:** Applying the list account-wide in spirit, if not in the interface. A phrase that is junk for one offer can be useful for another. Campaign attachment is part of the decision.

#### 7\. Re-check the list every Monday

**Action:** Schedule a 15-minute review each Monday. Re-run the two exports with a 60-day window looking back from seven days ago, then check two things:

1. **Attribution backfill:** Look for previously excluded terms that now show a conversion, GA4 key event or downstream pipeline result. Remove a negative when that evidence overturns the original decision.
2. **Conflicts:** Review Google Ads recommendations for negative keyword conflicts, then inspect any broad or phrase negatives that may suppress intended searches.

This is the part people skip after congratulating themselves on a clean list. An 18-click, zero-conversion query can look different after a 14-day attribution lag. The weekly re-check is how a useful filter avoids becoming the [negative keyword mistake that costs conversions](https://groas.com/post/negative-keywords-google-ads-mistake-costing-conversions).

**Expected result:** The list reflects what you know now, not only what the exports showed on the day you created it.

**Common mistake:** Adding negatives every week and never removing one. A shared list makes exclusions easier to manage, but it also lets a bad decision travel across campaigns.

#### Where the manual filter breaks

The gates protect you from the most obvious bad cuts. They do not make a weekly spreadsheet understand what changed between reviews.

![Analog gauges with misaligned needles, illustrating how a static filter can miss a change in the system it measures.](https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf3f0b433b25ee8a335613_0ab40243-2a61-4605-ba81-bfc516054d7f.png)

First, **a broken page can masquerade as bad intent**. If a layout change damages mobile tap targets or pushes load time to six seconds, engagement may fall across otherwise relevant terms pointing to that URL. Inspect the page and the pattern across queries before excluding a cluster. The search did not necessarily change; the destination did.

Second, **the click floor leaves the long tail alone**. Waste can arrive as many one-off variations, none of which individually reaches 15 clicks. Lowering the threshold until every term qualifies replaces restraint with coin flips. Keep those rows in the watch group rather than pretending this filter solves them.

Third, **intent and offers move**. During a promotion or a shift in pricing or delivery dates, visitors may behave differently even when their searches remain commercially relevant. A static list can preserve yesterday’s judgment long after its reason disappears. That is why the Monday review is part of the build, not an optional maintenance note.

#### What to automate after the manual build works

If the weekly CSV work becomes the bottleneck, [an automated negative keyword shortlist](https://groas.com/post/set-up-automated-negative-keyword-exclus) can move candidates into a review sheet. I would automate the shortlist before automating the exclusion. The click floor and engagement rule are mechanical; deciding whether a page failed or a query lacks intent is not the same calculation.

That is also the limit of a script running on a timer. It can repeat rules, but the account still needs someone to notice when the page, offer or intent has changed. Agencies often charge percentage-of-spend fees or retainers while doing this triage once a week. I would rather spend human attention on the choice and let machines handle the repeated checks between choices.

That is the case for [groas](https://groas.com/): specialized models monitor search intent, bidding and on-site behavior continuously, act within defined guardrails, and log adjustments for a named strategist to oversee. The point is not to make the three gates sound cleverer. It is to avoid waiting for Monday when the conditions behind them change on Tuesday.

**Verify the build seven days from now.** Open the shared list and confirm the intended campaigns are still attached. Compare conversion volume and CPA with your pre-list view, and inspect search terms for collateral exclusions; do not call the filter a win on bounce rate alone. If conversion volume dips, inspect phrase and broad negatives first. Once the list behaves as intended, the first thing I would change is the review cadence for pages or campaigns that change frequently, not the click floor just to catch more rows. Keep the guardrails. Stop paying for traffic that has no case for staying.

#### Frequently asked questions

**Is a high bounce rate enough reason to add a search term as a negative keyword?**

No. Low GA4 engagement is a reason to investigate, not to exclude outright. Before cutting a term you should pass it through three gates: enough Google Ads clicks, engagement well below your paid-traffic baseline, and no conversion or downstream result that vetoes the exclusion.

**What do I need before building a GA4-based negative keyword workflow?**

Confirm you have Admin or Editor access to the GA4 property and access to the linked Google Ads account, auto-tagging enabled in Google Ads, 30 to 60 days of search-term data, conversion tracking you trust, and a target CPA or ROAS so you can recognize a query that earns its place despite weak engagement.

**How much data should a search term have before I consider excluding it based on low engagement?**

Review terms with at least 15 Google Ads clicks in 30 days, or a floor of 8 in accounts where clicks cost 40 dollars or more. Only flag a term when its GA4 engagement rate is at least 50 percent below your paid-traffic baseline and Google Ads or pipeline data shows no conversion that vetoes the cut.

**Should I merge the GA4 and Google Ads reports on the search term alone?**

No, match rows by both campaign and search-term text. The same term can appear in multiple campaigns, and matching on text alone can attach one campaign's weak landing-page experience to another campaign's spend. A term missing from the GA4 export should be treated as unknown, not as a zero-engagement term.

**Which negative keyword match type should I use for search terms I want to block?**

Use the narrowest match type that fits the intent: an exact negative for a specific query such as leather shoe, a phrase negative like free download when that ordered phrase signals unwanted intent, and a single-word broad negative only for a categorical mismatch. Remember that an exact negative does not automatically cover close variants such as the plural form.

**Can I apply one negative keyword list to every campaign including Performance Max?**

No. Attach the shared list to the Search campaigns that share the relevant commercial intent, leaving out campaigns whose offer makes some terms valuable. Performance Max must be handled separately: check the campaign-level exclusion controls for each relevant PMax campaign, since attaching a list to Search does not extend it to PMax.

**How often should I update a manually built negative keyword list?**

Schedule a 15-minute review each Monday. Re-run both exports with a 60-day window ending seven days back, remove any negative that now shows a conversion, GA4 key event or pipeline result due to attribution backfill, and resolve conflicts flagged among broad or phrase negatives before they suppress intended searches.

## Related Posts

[![Cover image for: The Google Ads AI Glossary: What the Settings Say and What They Actually Control](https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf464e174c52d36f07b7bd_3b576ada-e41c-40d3-8727-4c7e2f81a22c.png) ##### The Google Ads AI Glossary: What the Settings Say and What They Actually Control October 2, 2026 • 11 min read Written by David](https://groas.com/post/the-google-ads-ai-glossary-what-the-cert)

[![Cover image for: Google Ads Says “Eligible.” Is Your Campaign Stable? Run This Test](https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf463fd77d83d932d341c6_682e09ce-20b4-4a7b-a750-29a42097bf80.png) ##### Google Ads Says “Eligible.” Is Your Campaign Stable? Run This Test October 2, 2026 • 11 min read Written by David](https://groas.com/post/the-learning-label-lies-a-test-to-find-w)

[![Cover image for: The SaaS Startup That Kept Google Ads in Learning](https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf451fd77d83d932d2befc_13c12005-df86-4464-b9ac-c29f1e41c284.png) ##### The SaaS Startup That Kept Google Ads in Learning October 2, 2026 • 10 min read Written by Alexander Perelman](https://groas.com/post/the-startup-that-relaunched-every-quarte)

![](https://cdn.prod.website-files.com/6821efca072e48f6f495a47e/6823c03839b2b618430d5ae6_Light-p-500.png)

[![White stylized owl eyes with green background icon.](https://cdn.prod.website-files.com/6821efca072e48f6f495a47e/6a68a036a5dd5627409d3579_Groas%20Icon.png)](https://groas.com/post/build-a-bounce-rate-negative-keyword-fil#)

[contact](mailto:scale@groas.ai)

Explore

[Home](https://groas.com/)[Philosophy](https://groas.com/our-philosophy)[Blog](https://groas.com/blog)

What We Do

[Paid Search](https://groas.com/paid-search)[Earned Search](https://groas.com/earned-search)

Who We Serve

[Businesses](https://groas.com/for-businesses)[Agencies](https://groas.com/for-agencies)

MCP

[ChatGPT](https://chatgpt.com/plugins/plugin_asdk_app_6a9c2d7108f08191beb5b3d736be8655?q=groas)[Claude](https://claude.ai/directory/mcp-groas-ai)

Legal

[Privacy Policy](https://groas.com/legal/privacy-policy)[Terms of Service](https://groas.com/legal/terms)

Get Started

[Apply](https://groas.typeform.com/to/xC1bQNUT)

© 2026 groas 🇺🇸

[![](https://cdn.prod.website-files.com/62434fa732124a0fb112aab4/62434fa732124a389912aad8_linkedin%20small.svg)](https://www.linkedin.com/company/groas/)

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "BlogPosting",
      "@id": "https://www.groas.com/post/build-a-bounce-rate-negative-keyword-fil#article",
      "headline": "Build a GA4-to-Google Ads Negative Keyword Filter Without Buying an AI Tool",
      "description": "",
      "url": "https://www.groas.com/post/build-a-bounce-rate-negative-keyword-fil",
      "image": {
        "@type": "ImageObject",
        "url": "https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf3f0a433b25ee8a3355cc_a90adb3c-f5c7-4819-b8a6-8ecb41c5844b.png"
      },
      "thumbnailUrl": "https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/6abf3f0a433b25ee8a3355cc_a90adb3c-f5c7-4819-b8a6-8ecb41c5844b.png",
      "datePublished": "2026-10-02T15:51:15.274Z",
      "dateModified": "2026-10-02T05:20:13.046Z",
      "inLanguage": "en-US",
      "isAccessibleForFree": true,
      "articleSection": "Google Ads Best Practices",
      "keywords": "Google Ads, Google Ads Best Practices",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.groas.com/post/build-a-bounce-rate-negative-keyword-fil"
      },
      "author": { "@id": "https://www.groas.com/author/david#person" },
      "publisher": { "@id": "https://www.groas.com#organization" },
      "about": [
        { "@type": "Thing", "name": "Google Ads" },
        { "@type": "Thing", "name": "Pay-per-click advertising" },
        { "@type": "Thing", "name": "Performance marketing" }
      ],
      "mentions": [
        { "@type": "Organization", "name": "groas", "url": "https://www.groas.com" },
        { "@type": "Thing", "name": "Google Ads" }
      ],
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": ["h1"]
      }
    },
    {
      "@type": "Person",
      "@id": "https://www.groas.com/author/david#person",
      "name": "David",
      "description": "",
      "jobTitle": "Founder &amp; CEO @ groas",
      "email": "",
      "url": "https://www.groas.com/author/david",
      "image": {
        "@type": "ImageObject",
        "url": "https://cdn.prod.website-files.com/6823bbd57170ea42b357cf81/686a2a76611e759fd8d8a3fd_David%20LinkedIn%20Profile.jpeg"
      },
      "sameAs": [
        ""
      ],
      "knowsAbout": [
        "Google Ads",
        "Performance Max",
        "AI Max",
        "Pay-per-click advertising",
        "Conversion tracking",
        "Bid management",
        "Search advertising"
      ],
      "worksFor": { "@id": "https://www.groas.com#organization" }
    },
    {
      "@type": "Organization",
      "@id": "https://www.groas.com#organization",
      "name": "groas",
      "alternateName": "groas.com",
      "url": "https://www.groas.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://cdn.prod.website-files.com/6821efca072e48f6f495a47e/6834a970e03a7016560e3515_Logo%20Design%20256x256.png"
      },
      "description": "Dedicated strategists run your account and a proprietary engine trained on $500B in profitable ad spend optimises the execution underneath them",
      "sameAs": [
        "https://www.linkedin.com/company/groas"
      ],
      "knowsAbout": [
        "Google Ads",
        "Performance Max",
        "AI Max for Search",
        "Pay-per-click advertising",
        "Autonomous campaign management",
        "AI advertising agents"
      ],
      "areaServed": "Worldwide"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://www.groas.com"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://www.groas.com/blog"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Google Ads Best Practices",
          "item": "https://www.groas.com/category/Google Ads Best Practices"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Build a GA4-to-Google Ads Negative Keyword Filter Without Buying an AI Tool",
          "item": "https://www.groas.com/post/build-a-bounce-rate-negative-keyword-fil"
        }
      ]
    }
  ]
}
```

```json
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Is a high bounce rate enough reason to add a search term as a negative keyword?","acceptedAnswer":{"@type":"Answer","text":"No. Low GA4 engagement is a reason to investigate, not to exclude outright. Before cutting a term you should pass it through three gates: enough Google Ads clicks, engagement well below your paid-traffic baseline, and no conversion or downstream result that vetoes the exclusion."}},{"@type":"Question","name":"What do I need before building a GA4-based negative keyword workflow?","acceptedAnswer":{"@type":"Answer","text":"Confirm you have Admin or Editor access to the GA4 property and access to the linked Google Ads account, auto-tagging enabled in Google Ads, 30 to 60 days of search-term data, conversion tracking you trust, and a target CPA or ROAS so you can recognize a query that earns its place despite weak engagement."}},{"@type":"Question","name":"How much data should a search term have before I consider excluding it based on low engagement?","acceptedAnswer":{"@type":"Answer","text":"Review terms with at least 15 Google Ads clicks in 30 days, or a floor of 8 in accounts where clicks cost 40 dollars or more. Only flag a term when its GA4 engagement rate is at least 50 percent below your paid-traffic baseline and Google Ads or pipeline data shows no conversion that vetoes the cut."}},{"@type":"Question","name":"Should I merge the GA4 and Google Ads reports on the search term alone?","acceptedAnswer":{"@type":"Answer","text":"No, match rows by both campaign and search-term text. The same term can appear in multiple campaigns, and matching on text alone can attach one campaign's weak landing-page experience to another campaign's spend. A term missing from the GA4 export should be treated as unknown, not as a zero-engagement term."}},{"@type":"Question","name":"Which negative keyword match type should I use for search terms I want to block?","acceptedAnswer":{"@type":"Answer","text":"Use the narrowest match type that fits the intent: an exact negative for a specific query such as leather shoe, a phrase negative like free download when that ordered phrase signals unwanted intent, and a single-word broad negative only for a categorical mismatch. Remember that an exact negative does not automatically cover close variants such as the plural form."}},{"@type":"Question","name":"Can I apply one negative keyword list to every campaign including Performance Max?","acceptedAnswer":{"@type":"Answer","text":"No. Attach the shared list to the Search campaigns that share the relevant commercial intent, leaving out campaigns whose offer makes some terms valuable. Performance Max must be handled separately: check the campaign-level exclusion controls for each relevant PMax campaign, since attaching a list to Search does not extend it to PMax."}},{"@type":"Question","name":"How often should I update a manually built negative keyword list?","acceptedAnswer":{"@type":"Answer","text":"Schedule a 15-minute review each Monday. Re-run both exports with a 60-day window ending seven days back, remove any negative that now shows a conversion, GA4 key event or pipeline result due to attribution backfill, and resolve conflicts flagged among broad or phrase negatives before they suppress intended searches."}}]}
```
