Articles Product Sign In Get started

GA4 Bot Filtering: How It Works & Where It Fails

· · 19 min read

GA4's default bot filter catches the IAB spider list, under 40% of sophisticated bots. The exact setup, gaps, and what to layer on top in 2026.

Abstract geometric composition in Kandinsky Bauhaus style — circles, triangles, and lines on warm paper background.

GA4 bot filtering is enabled by default on every Google Analytics 4 property and cannot be turned off. It works by removing hits from user agents on the IAB/ABC International Spiders & Bots List before they enter your reports.[1] The problem in 2026: the IAB list is a declared-bot blocklist, and industry reporting now puts sophisticated-bot catch rates of rule-based filtering at under 40%.[3] Anything that spoofs a real browser User-Agent, routes through a residential proxy, or runs in patched headless Chrome shows up in your GA4 reports as a real user. For advertisers running paid traffic, this is the same gap that pollutes Smart Bidding signals in Google Ads click fraud protection workflows.

This guide is the practical 2026 walkthrough: how GA4’s default filter actually works, the exact UI steps to configure internal-traffic and bot exclusions, why the built-in approach misses Sophisticated Invalid Traffic, and the multi-layer defense that closes the gap.

Key Takeaways
  • GA4 bot filtering is on by default and cannot be disabled. It removes hits matching the IAB/ABC International Spiders & Bots List, which catches declared crawlers like Googlebot, Bingbot, and AhrefsBot.
  • The filter catches General Invalid Traffic (GIVT), not Sophisticated Invalid Traffic (SIVT). Headless browsers, residential-proxy bots, click farms, and AI-driven mimicry slip through and appear as real users in reports.
  • Sophisticated bots evade rule-based filters at rates above 60% in 2026, per HUMAN Security threat reporting.[3] GA4 is rule-based, so the gap is structural, not a configuration error.
  • Universal Analytics’ bot filter checkbox is gone. GA4 enables the IAB list by default and removed the legacy View-level IP exclusion filters. Internal-traffic exclusion now happens via Admin, Data filters.
  • Multi-layer defense is the practical answer. GA4 plus server-log analysis plus a client-side detection script plus a commercial scoring API closes the SIVT visibility gap.

What is GA4 bot filtering and how does it work?

GA4 bot filtering is a server-side hit-exclusion step that Google runs on every event before it lands in your property. The mechanism is straightforward: Google compares the incoming hit’s User-Agent and originating IP against the IAB/ABC International Spiders & Bots List, a maintained registry of declared crawlers.[2] Matches are dropped before they ever appear in standard reports, Explorations, or the Realtime view. Roughly half of all internet traffic is now non-human, per Imperva’s long-running Bad Bot Report, so the filter does real work even when it only catches the declared category.

Where the filter runs

GA4 bot filtering runs on Google’s ingestion endpoint, not in your browser and not in Google Tag Manager. By the time a collect request reaches *.google-analytics.com or *.analytics.google.com, Google has the User-Agent header, the source IP, and a partial view of the originating ASN. The filter consults the IAB/ABC list and Google’s internal known-bot extensions, applies the match, and either accepts the event into your property or drops it silently.

What the list contains

The IAB/ABC list contains thousands of declared user-agent strings, IP ranges associated with known crawler infrastructure, and ASN ranges for monitoring vendors. It is a community-maintained, contractual document: bot operators who want to identify as well-behaved (search engines, SEO tools, uptime monitors, security scanners) register their signatures here. The list is updated continuously and consumed by GA4, GA360, Google Ads IVT filtering, and most major analytics platforms.

What the filter does not do

The filter does not inspect TLS handshakes, run JavaScript-side fingerprint checks, or score behavioral signals. It is not bot detection in the modern multi-signal sense. It is a blocklist lookup. Any bot that does not identify with a declared user agent, or that spoofs a Chrome string, walks past the filter without resistance. For the full taxonomy of what GA4 misses, see our overview of bot traffic detection.

Citation capsule (GA4 mechanism): GA4 automatically excludes traffic from known bots and spiders matching the IAB/ABC International Spiders & Bots List, applied server-side at ingestion before events land in reports. The exclusion is enabled by default on all properties and cannot be configured off, per Google Analytics’ official invalid traffic documentation, 2026.[1]

What are GA4’s default bot filtering capabilities?

GA4’s out-of-the-box capabilities are deliberately narrow: declared-bot exclusion via the IAB list, basic data-center IP filtering tied to Google’s known-bot extensions, and internal-traffic exclusion that you configure manually. There is no SIVT detection layer, no behavioral scoring, and no per-session bot probability. Roughly 49.6% of global internet traffic was bot traffic in 2024 per Imperva’s Bad Bot Report, and GA4’s default capabilities address only the declared share of that volume.

Declared bot and spider exclusion

This is the headline feature. Every event GA4 ingests is checked against the IAB/ABC list and Google’s known-crawler extension. Matches never enter your property. You will not see them in Realtime, in standard reports, in Explorations, or in BigQuery export. From the GA4 user’s perspective, declared bot traffic simply does not exist, which is exactly the intended behavior for analytics hygiene.

Implicit data-center filtering

Google extends the IAB list with internal threat intelligence covering data-center ASN ranges. Crude bots running on AWS, GCP, Azure, DigitalOcean, OVH, or Hetzner with default User-Agent strings get filtered alongside declared crawlers. This is not documented as a separate feature, but the behavior is observable: a Python requests script with no User-Agent customization rarely shows up in GA4 reports.

Internal traffic exclusion (manual setup required)

GA4 includes a manual configuration path for excluding your own office traffic, contractors, and development environments. You define internal IP ranges in the data stream settings, then activate a data filter in Admin that drops matching sessions. This is not bot filtering in the strict sense, but it removes a common source of report pollution that otherwise mixes with real user data.

Developer traffic exclusion

GA4 supports a traffic_type parameter set to internal or a custom value, configurable via gtag, GTM, or the Measurement Protocol. Combined with a data filter, this lets you tag and exclude staging environments, automated QA traffic, and pre-production smoke tests. Useful for hygiene, irrelevant for fraud.

What is not in the default set

No JA3/JA4 TLS fingerprinting. No navigator.webdriver detection. No mouse-entropy scoring. No residential-proxy IP intelligence. No cross-customer fingerprint reputation. No behavioral biometrics. No real-time threat feeds. None of the modern bot-detection signal classes that we cover in the click fraud detection guide are part of GA4’s default capability.

Why doesn’t GA4’s built-in bot filter catch sophisticated bots?

GA4 misses sophisticated bots because it is a blocklist, not a detector. The IAB/ABC list catches user agents that voluntarily declare themselves as bots. Sophisticated automation in 2026 does the opposite: it spoofs Chrome on Windows 10, routes through residential proxies, runs patched headless browsers, and emits coherent client signals.[3] The structural mismatch is the same one we cover for the entire types of ad fraud taxonomy.

Declared versus undeclared user agents

The IAB list works because well-behaved bot operators agree to identify themselves. Search engines, monitoring services, and security scanners benefit from being recognized as benign rather than getting blocked at the WAF. Sophisticated fraud operators have the opposite incentive: they want their traffic to look human. They send Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 and a hundred variants. None of those strings sit on any blocklist, because real Chrome browsers send them too.

No TLS or header inspection

GA4 ingests measurement events. By the time those events reach Google’s collection endpoint, the TLS handshake is done, the request has passed through CDNs and edge networks, and most low-level signals are lost. A real browser and a patched headless Chrome both deliver a clean POST to /g/collect with a plausible User-Agent. GA4 has no JA3 visibility, no Client Hints validation, no header-order inspection, and no TLS cipher-suite analysis. The signals that catch sophisticated bots on the server side are simply not available to the GA4 ingestion path.

No client-side instrumentation it can act on

GA4’s gtag and Measurement Protocol do not expose a “rate this session” hook. There is no point in the event-firing pipeline where GA4 examines navigator.webdriver, queries the WebGL renderer, hashes a canvas, or scores mouse entropy. Even when those signals exist in the browser running gtag, GA4 ingests the event regardless. The closest workaround is firing a custom dimension from your own detection script, which then sits in reports as data you have to interpret, not as a filter.

Residential proxies and click farms

The two fastest-growing SIVT categories defeat the IAB list by construction. Residential proxies route bot traffic through real consumer ISPs. The IP looks like Comcast, Verizon, or DT, not like DigitalOcean. Click farms run real Android and iOS devices in racks, often controlled remotely, producing genuine browser fingerprints with real IMEI, real GPU strings, and real touch events. Both bypass GA4’s filter entirely.

What the catch-rate math looks like

The headline figure: rule-based filtering catches under 40% of sophisticated bots in 2025-2026 industry reporting.[3] GA4 sits at the narrow end of rule-based filtering because it only sees the measurement event, not the underlying request stack. In our field experience auditing client GA4 properties, the typical overcount on paid acquisition channels falls between 8% and 22%, concentrated in affiliate, programmatic display, and any source running heavy retargeting.

Citation capsule (catch-rate gap): HUMAN Security’s 2024-2025 Quadrennial Bot Defense and Satori Threat Intelligence reporting documents that sophisticated bot traffic evades rule-based filters at rates above 60%, with residential-proxy bots and patched headless browsers passing single-signal CAPTCHAs and analytics blocklists routinely.[3]

How do you set up bot filtering in GA4?

GA4’s bot filter is on by default, so “setup” really means configuring the surrounding exclusions: internal traffic, developer traffic, custom unwanted-referral patterns, and any tag-side filters you ship in GTM. The full configuration takes about 20 minutes for a single property and removes the most common sources of report pollution that mix with real users. Follow the steps in order; each one builds on the previous.

Step 1: Verify the default bot filter is active

There is no toggle, but you can confirm the filter is operating. Open GA4, click Admin (the gear icon in the lower left), select your property, then Data Streams, and click your web stream. Scroll to Additional Settings. The exclusion of known bot traffic is described in Google’s invalid-traffic documentation and is not exposed as a UI control in 2026; this is by design.[1] If your property exists, the filter is on.

Step 2: Define internal traffic IP ranges

In Admin, Data Streams, click your web stream, then Configure tag settings, then Show all (lower right), then Define internal traffic. Click Create. Enter a rule name (for example “office-network”), set traffic_type value to internal, and add your IP ranges. GA4 accepts:

  • IP equals (a single IP)
  • IP starts with (prefix match)
  • IP in range (CIDR notation, IPv4 or IPv6)
  • IP regex (advanced patterns)

Most teams use CIDR. A typical office gets 203.0.113.0/24 plus the VPN egress range. Save the rule.

Step 3: Activate the Internal Traffic data filter

In Admin, scroll down the property column to Data filters. GA4 ships with a default filter named “Internal Traffic” set to Testing mode. Click the filter, set Filter state to Active, and save. From this point, sessions matching your traffic_type=internal rule will be excluded from standard reports. Allow a few hours for the change to propagate.

Step 4: Add a developer traffic filter

Create a second internal-traffic rule with traffic_type set to dev and add the IP ranges of staging environments, automated test runners, and CI/CD smoke-test pipelines. Then in Data filters, create a new filter, name it “Developer Traffic,” set parameter traffic_type value dev, and activate. Staging environments often emit production-volume events during QA cycles; without this filter, your “real” conversion numbers carry that noise.

Step 5: Configure unwanted referrals

In your data stream’s tag settings, click List unwanted referrals. Add domains that should not count as acquisition sources: your own payment processor (stripe.com, paypal.com), your auth provider, your CDN preview domains. This does not block bots, but it cleans up the Acquisition reports so that the source/medium attribution is interpretable. Without it, every Stripe checkout completion shows up as a referral, which makes any bot-versus-real-user comparison harder.

Step 6: Verify in DebugView

Enable debug mode on a test device (install the Google Analytics Debugger Chrome extension, or append ?_dbg=1 to your URL with GTM Preview mode). Open Admin, Property, DebugView. Confirm that traffic from your office IP shows traffic_type: internal and is correctly excluded from standard reports while still appearing in DebugView. If the parameter is missing, your internal-traffic rule did not match; recheck the IP range.

Citation capsule (configuration scope): GA4’s invalid traffic documentation confirms the default bot and spider exclusion is applied automatically at ingestion, while internal traffic and developer traffic exclusions require manual configuration via Admin, Data Streams, and Data Filters, per Google Analytics support documentation, 2026.[1]

What about legacy Universal Analytics bot filters?

Universal Analytics was sunset on July 1, 2024, and stopped processing data entirely after that date. Before sunset, UA exposed a checkbox at the View level labeled “Exclude all hits from known bots and spiders,” which consulted the same IAB/ABC list. GA4 inherited the list but removed the checkbox: filtering is now mandatory and not user-configurable.

What UA had that GA4 does not

UA’s View-level filter system was richer than what GA4 ships. Each View could apply IP-exclusion filters with regex matching, custom filters on any dimension, and predefined filters that excluded internal traffic without the Admin-side data-filter workflow GA4 now requires. For users who relied on UA’s IP regex filters to exclude specific botnets or competitor click-bot ranges, the GA4 migration removed the easiest interface for that work.

What you do instead in GA4

For IP exclusion in GA4, the path is data filters in Admin combined with the traffic_type parameter set via gtag, GTM, or server-side tagging. You can also use server-side GTM (sGTM) running in your own infrastructure to drop hits before they reach Google’s endpoint. This is more powerful than UA’s View-level filters but requires more setup; it is not a one-checkbox migration.

What the IAB list still does

The IAB/ABC list is still consulted by GA4 exactly the way it was by UA. If your previous UA filter was just the known-bots checkbox, the migration is automatic: GA4 already does this and you do not need to configure anything. The only loss is visibility: UA logged the filtered hits in a way you could audit, while GA4 drops them silently.

How do you exclude internal traffic and known bots from GA4?

The combined exclusion strategy is a two-layer setup: the IAB list runs automatically for declared bots, and you layer your own internal traffic and developer traffic rules on top via Admin, Data Filters. For sites without paid traffic, this is enough hygiene. For sites running paid acquisition, you also need a separate bot detection layer that flags SIVT before it pollutes GA4 reports.

Exclude by IP using data filters

The mechanism described in Step 2 above (define internal traffic) is also the standard way to block specific IPs you have identified as bot sources. If your server logs show a Romanian /24 hammering your conversion endpoint, you can add that CIDR to a custom internal-traffic rule with traffic_type set to bot-suspected, then create a data filter that excludes it. This is reactive (you have to identify the IPs first) but works for known-bad ranges.

Limitations of IP-based exclusion in GA4

IP exclusion has hard ceilings in 2026:

  • Residential-proxy bots rotate IPs across thousands of consumer ISPs, defeating CIDR blocks
  • CGNAT and mobile carrier ASNs share IPs across many real users; blocking the IP burns legitimate traffic
  • IPv6 makes prefix-based blocklists less useful as bots cycle through /64 ranges within a single ASN
  • GA4 has a soft limit on data filter complexity; you cannot maintain a dynamic blocklist of thousands of IPs natively

Use server-side GTM for richer exclusion

Server-side Google Tag Manager (sGTM) runs in your own infrastructure (typically App Engine or Cloud Run) and processes hits before they forward to GA4. With sGTM, you can inspect headers, check ASN classification, query a bot scoring API, and drop or tag the request based on that data. This is the closest GA4-native architecture to real-time bot detection.

Block bots in client-side GTM

In client-side GTM, you can add a custom JavaScript variable that returns true for high-confidence bot signals (navigator.webdriver === true, software WebGL renderer, missing window.chrome on a Chrome UA) and use it as a trigger exception on your GA4 Configuration tag. Bots that pass the basic floor will still fire, but unsophisticated automation will not pollute the property. This is the same baseline detection pattern we cover in our bot traffic detection guide.

Combine signals via custom dimensions

Rather than blocking, many teams prefer to instrument: fire a custom dimension on every event with the bot score (0-10) computed by your detection script. The events still land in GA4, but you can segment by bot_score >= 5 in Explorations to see the unfiltered share. This is the right pattern when you want auditability and tunable thresholds without losing data.

Citation capsule (multi-layer practice): Effective GA4 bot exclusion in 2026 combines the default IAB/ABC list filter, Admin-level Data Filters for internal and developer traffic, IP-range exclusions for known-bad sources, and a separate detection layer for SIVT. No single GA4-native control addresses sophisticated bots, per Google Analytics documentation and HUMAN Security threat reporting.[1][3]

Where GA4 bot filtering fits in a multi-layer defense

GA4 bot filtering is the analytics-hygiene layer, not the detection layer. It removes declared bots from reports so that your dashboards reflect something closer to real users. For sites running paid traffic, affiliate funnels, or any acquisition channel where bidding signals matter, GA4 sits as one component in a three-or-four-layer stack. Imperva’s 2024 Bad Bot Report measured 49.6% of global internet traffic as automated, and the share that GA4 catches is roughly the declared subset.

Layer 1: GA4’s IAB list (declared bots)

GA4 handles the floor. Search engine crawlers, monitoring services, SEO tools, and other declared automation are removed before they touch your reports. This is genuine value at zero configuration cost. Treat it as solved; do not duplicate it elsewhere.

Layer 2: Server-log signal analysis (GIVT plus part of SIVT)

Web server access logs and CDN logs contain signals GA4 cannot see: JA3 TLS fingerprints, ASN classification, request rate and burst patterns, header consistency, HTTP version mismatches. Running a daily or hourly pass over access logs with a few hundred lines of Python catches a meaningful share of bot traffic before any client-side instrumentation. This is the layer where in-house engineering pays back fastest.

Layer 3: Client-side detection script (SIVT signals on the DOM)

A JavaScript detection layer runs in the browser and checks navigator.webdriver, WebGL renderer, canvas hash stability, plugin lists, language settings, hardware concurrency, mouse entropy, and scroll velocity. The verdict ships to your server endpoint, where you correlate with the server-log signals from Layer 2. We cover the implementation pattern in our bot traffic detection post.

Layer 4: Commercial scoring API (cross-tenant signals)

The signals that one site cannot build alone: residential-proxy IP intelligence, cross-customer fingerprint reputation, labeled JA3/JA4 corpus, behavioral biometric models trained on millions of sessions, and real-time botnet feeds. Commercial bot-detection vendors maintain these and expose them via REST API or JavaScript tag. This layer fills the SIVT visibility gap that Layers 1-3 cannot fully close.

How the layers stack on GA4

The cleanest pattern: run Layers 2-4 in parallel, ship a bot_score custom dimension into GA4 via gtag or server-side GTM, and use that dimension to segment reports. Real users get analyzed at full fidelity; suspected bots get tagged but not necessarily removed, preserving auditability. Hard-blocking only happens at the upstream firewall or ad-server level, not inside GA4 itself.

LayerCatchesGA4 coverageAdditional cost
IAB/ABC list (Layer 1)Declared bots, crawlers, monitoringNativeZero
Server-log signals (Layer 2)GIVT plus simple SIVT, JA3, ASN, burstsNoneIn-house engineering
Client-side script (Layer 3)Headless markers, fingerprint mismatchesNoneIn-house engineering
Commercial scoring API (Layer 4)Residential proxies, cross-tenant, behavioralNoneVendor fee

When to add each layer

Sites with under 10,000 sessions per month and no paid acquisition: Layer 1 alone is fine. Sites with under $5,000 per month in paid spend: add Layer 2 (server-log analysis). Sites with $5,000-$50,000 per month in paid spend or affiliate funnels: add Layer 3 (client-side script). Sites with $50,000 per month or more, programmatic publishers, and enterprise advertisers: add Layer 4 (commercial scoring). The break-even points are not absolute; treat them as starting points.

Citation capsule (multi-layer effectiveness): A multi-layer bot detection stack combining IAB list filtering, server-log signal analysis, client-side instrumentation, and commercial scoring APIs achieves catch rates above 95% on common automation frameworks, against under 40% for any single rule-based layer alone, per industry threat reporting and Cloudflare bot management documentation, 2024-2026.[3]

Where Adsafee fits

Adsafee runs the SIVT detection layer that GA4 cannot reach. We score every session against a multi-signal stack (JA3/JA4 TLS fingerprints, residential-proxy IP intelligence, WebGL and canvas fingerprinting, mouse entropy, cross-customer reputation) and return a verdict in under 100 ms via JavaScript tag, server-to-server postback, or REST API. The verdict can fire as a custom dimension into GA4, integrate with server-side GTM to gate hit forwarding, or feed your ad-server’s real-time bidding pipeline directly. We maintain the cross-tenant signal corpus that single-property GA4 instrumentation cannot build alone.

If you want to compare your current GA4 bot exposure against a multi-signal baseline, start a free trial. Setup takes about 10 minutes and the first audit returns within 24 hours.

FAQ

The frontmatter faq block contains the structured Q&A this page exposes to search engines and AI extraction systems. The questions above cover GA4’s catch rate, how to read bot traffic in reports, the differences from Universal Analytics, the conversion-rate-zero signature, GTM-based filtering, whether GA4 alone is sufficient, future roadmap expectations, and the exact internal-traffic exclusion path.


Sources

  1. Google, “[GA4] Invalid traffic / bots and spiders exclusion” — official Google Analytics support documentation describing the default IAB/ABC International Spiders & Bots List filter applied at ingestion. Visit: support.google.com/analytics/answer/2992042 (accessed May 2026).

  2. IAB Tech Lab and ABC International Federation of Audit Bureaux of Circulations, “International Spiders & Bots List” — the declared-bots maintained list GA4, GA360, and most platform filters consume. Visit: iabtechlab.com/standards/iab-tech-lab-spiders-and-bots-list/ (accessed May 2026).

  3. HUMAN Security, 2024-2025 Quadrennial Bot Defense Reports and Satori Threat Intelligence briefings, documenting sophisticated bot evasion rates above 60% against rule-based filters and residential-proxy abuse trends. Visit: humansecurity.com/learn/blog/ (accessed May 2026).

Frequently asked questions

Does GA4 filter all bots?

No. GA4 automatically filters traffic from known bots and spiders on the IAB/ABC International Spiders & Bots List, which catches declared crawlers like Googlebot, Bingbot, and AhrefsBot. It does not catch Sophisticated Invalid Traffic (SIVT): headless browsers with stealth plugins, residential-proxy bots, click farms on real devices, or AI-driven mimicry. Industry reporting in 2025-2026 puts the sophisticated-bot catch rate of rule-based filtering at under 40%, which means anything beyond the declared list shows up in your GA4 reports as a real user.

How do I see bot traffic in GA4?

GA4 does not expose a dedicated bot traffic report. You can infer bot traffic by looking for anomalies: zero-engagement sessions in Engagement reports, sudden geographic spikes in the Tech and Demographics reports, referral spam in Acquisition, and conversion rates that diverge from baseline. For deeper visibility, BigQuery export gives per-event detail, and a separate bot detection layer (server-side log analysis or a JavaScript tag) provides the per-session scoring GA4 does not.

What's the difference between GA4 and Universal Analytics bot filtering?

Universal Analytics (sunset July 1, 2024) had a manual checkbox in View Settings labeled 'Exclude all hits from known bots and spiders'. GA4 enables that filter by default and removes the option to turn it off. Both rely on the IAB/ABC spider list. Beyond that, GA4 added no new bot detection capabilities, and lost the per-View IP exclusion filters UA had. GA4 users now exclude internal traffic via data filters in Admin, not via the legacy View-level filter UI.

Why does GA4 say I have human traffic but conversion rate is 0?

This is the most common signature of sophisticated bot traffic that GA4's filter does not catch. Headless browsers and click farms produce sessions that GA4 reports as real users because they pass the IAB list check, but they do not convert because they have no purchase intent. Other signs: high bounce rate on bot-heavy sources, identical session durations clustered around fixed values, no scroll depth, and zero engagement events past the initial page view.

Can I block bots in Google Tag Manager?

Yes, but with caveats. GTM lets you add a JavaScript tag that checks for headless markers (navigator.webdriver, missing window.chrome, software WebGL renderers) and either fires a custom dimension to GA4 or blocks tag firing entirely. The catch: bots that fire GTM tags successfully already passed the basic checks, and a bot that controls the client can disable GTM altogether. GTM-based filtering catches the unsophisticated floor; it does not replace server-side detection.

Should I rely on GA4 alone for bot detection?

No. GA4's bot filter is a declared-bot blocklist, not a detection system. For analytics hygiene on low-traffic sites with no paid acquisition, the IAB list is enough. For any site running paid traffic above $5,000 per month, affiliate funnels, or programmatic display, GA4 alone leaves the entire SIVT category invisible. Layer server-log analysis, a client-side detection script, or a commercial scoring API on top of GA4 to close the gap.

Will GA4 ever catch sophisticated bots automatically?

Unlikely without architectural change. GA4 operates on measurement events that already reached the endpoint, which means it has no view of the TLS handshake, no header inspection, and no real-time client signal correlation. Google's IVT filtering for Ads is more advanced because it runs inside the auction pipeline with billing-grade signals. Bringing comparable detection into GA4 would require the same infrastructure on the analytics side, which Google has not announced.

How do I exclude internal traffic from GA4?

Open Admin, then Data Streams, select your web stream, click Configure tag settings, then Show all, then Define internal traffic. Add a rule named 'internal_traffic' with traffic_type 'internal' matching your office IP ranges (CIDR notation supported). Then in Admin, go to Data filters and activate the 'Internal Traffic' filter set to Exclude. The filter takes a few hours to start applying and excludes matching sessions from all standard reports.