Before activating a GA4 hostname Include filter, establish which websites and integrations send the events your business needs. Then compare that inventory with actual Testing results. A clean-looking report is not useful if the filter silently removes appointment requests.
On September 21, 2026, Google added hostname Include filters. The earlier option excluded named hosts; Include allows a defined set. The release explicitly exempts Measurement Protocol events and says empty hostnames are blocked. Read those rules together rather than assuming every event follows the same path. Google’s release note
This guide follows documentation checked on October 8. The example is fictional, and its local selection exercise is not a GA4 account test. Start with the blank hostname record, worked record or workbook.
Decide whether you need collection filtering
A data filter changes which incoming events GA4 processes. Google says excluded data is permanently unavailable in Analytics and BigQuery. It does not clean historical records. If you only need a narrower report, use a reporting filter or exploration instead. Data-filter behavior
Do not enable Include merely because the option exists. First identify an unwanted-data problem and the legitimate collection it could affect. An unfamiliar hostname might be a campaign platform, a booking provider or an implementation error. Its name alone does not establish spam.
Hostname describes the domain and subdomain of a visited page, not the source that referred someone. A visitor arriving from ChatGPT can generate events on your own hostname. Do not add chatgpt.com to your collection list simply to preserve ChatGPT referrals. Hostname definition
Also inspect any manual page_location override. Google says this changes the automatically collected value and should contain the full URL. Sending only /book/ loses the hostname information a full address would carry. Check meaningful completion events as well as page_view; the correct website address in your browser does not validate every event payload. Dimension collection guidance
Inventory the whole enquiry journey
In Explore, create a Free form exploration with Hostname, Event name and Event count. Keep it unfiltered initially. Record the property, stream context, reporting dates and timezone. Choose a period covering recent campaigns and ordinary booking activity; extend it when important activity is infrequent.
Compare the report with the systems your team operates. A report can show only recorded events, so an absent campaign host still needs investigation if its page should send data. Record the bare domain, www host and campaign subdomains separately when they actually collect events.
| Surface | Evidence to collect |
|---|---|
| Main service site | Hostname, expected page events and intended completion event. |
| Campaign page | Actual hosting domain, active dates, property destination and completion event. |
| Booking step | Whether it sends browser events, an integration sends server events, or neither sends to this property. |
| Staging or preview | Whether production tagging is intentional and whether this activity belongs in the business report. |
A link to a booking service does not prove that its hostname sends your GA4 events. Check the collection arrangement. Allowing a hostname also does not set up cross-domain measurement, which is a separate task for preserving user and session continuity. Cross-domain setup
Use three decisions in the worksheet: Allow for intended collection, Suppress for confirmed unwanted collection, and Hold where evidence is missing. These are our review labels, not GA4 settings. Hold means the proposed activation is unfinished.
Check existing filters before drafting another
Record every existing filter’s operation, condition and state. Google combines active Include-only filters as a union, then applies active Exclude filters. One new Include rule therefore does not describe the whole property’s processing. Filter order
An existing broad Include may admit more hosts than intended; an Exclude may still remove an approved event. Testing a new condition does not restore data already excluded elsewhere. Review internal and developer traffic controls too. Google documents a limit of ten data filters per property. Internal traffic filters
Draft explicit hostname conditions in Testing
With Editor access or above at property level, open Admin > Data collection and modification > Data filters > Create filter > Web hostname traffic filter. Use a unique name, choose Include only, select the match type and enter the hostname. Save the proposed rule in Testing, not Active. These are documented instructions; we have not verified your account’s interface. Hostname filter setup
The current documented operators are exactly matches, begins with, ends with and contains. Start with explicit exact-host conditions when that represents the intended set. If separate rules are needed, account for their combined effect and the property limit. Do not assume a comma-separated list, wildcard or regular expression is supported.
Broad text matching deserves a deliberate test. The string www.advisory.example.unrelated.example contains advisory.example, but it is not the same hostname as www.advisory.example. Avoid turning a convenient text fragment into an assumed ownership check.
Worked example: a booking host prevents activation
All domains, events and business decisions below are constructed teaching inputs. No customer or live GA4 outcome is represented. The fictional advisory business proposes two exact hosts: www.advisory.example and go.advisory.example.
| Sample event | Decision | What remains to check |
|---|---|---|
Main-site page_view |
Allow | Observe the expected hostname and named-filter behavior. |
Campaign generate_lead |
Allow | Verify the intended event and independent enquiry receipt. |
Booking-host generate_lead |
Hold | Establish the collection route and actual hostname before activating. |
Staging page_view |
Suppress | Confirm its production data is unwanted. |
| Misleading suffix hostname | Suppress | Confirm the proposed conditions do not admit it. |
| Empty browser hostname | Hold | Find why legitimate collection might lack a hostname. |
Measurement Protocol qualify_lead |
Allow, separate route | Include exemption does not validate the event itself. |
| Data Manager API lead update | Hold | Its treatment is not established by the MP exemption. |
The workbook includes executable Python using only these synthetic inputs. We ran that local exact-membership exercise: two strings were in the candidate set, four were outside it, and two other collection routes were not evaluated.
That result exposes a practical omission: the booking hostname is outside the proposal while its collection is unresolved. The activation decision stays on Hold. It does not show what Google processed. The local exercise does not reproduce Google’s matching, labels, integrations, timing or other filters. Every actual GA4 observation in the worked CSV remains Not observed.
Compare expected and observed Testing evidence
Google advises waiting 24 to 36 hours after choosing Testing before validation. Waiting is not itself a passing result. Cover each legitimate host and meaningful completion event, including infrequent campaigns and bookings. Testing guidance
Create a second Free form exploration. Add Test data filter name, Hostname, Event name and Event count. Put the dimensions in Rows and the metric in Values. Filter Test data filter name using your exact unique filter name as Google’s recipe describes. Keep the original unfiltered inventory beside this view.
Google describes Testing as labelling matching data. A match has different consequences under Include only and Exclude, so do not label every named row “data to delete.” Record the operation and observe a known matching event and a known nonmatching event. If the label behavior or an expected row is unclear, investigate rather than activating.
| Record before the test | Record after the test |
|---|---|
| Host, route, event and intended treatment | Actual hostname, filter label, event count and export reference. |
| Planned journey and consent conditions | Actual test time with timezone and what was completed. |
| Expected event triggers | Observed triggers and unintended duplicates, if any. |
| Expected business receipt | Independent receipt check, separate from the GA4 event. |
DebugView can help diagnose collection, but a developer-traffic exclusion can keep debug events out of ordinary reports. Do not treat DebugView alone as evidence that the hostname filter’s reporting outcome is correct. Developer traffic filtering
An empty report is not proof that a condition is safe. Check timing, property, scope, event delivery and other filters. Leave an unobserved booking event unresolved.
Activate only after the record supports the decision
Resolve the Hold rows, retain before-and-after evidence, and assign the person responsible for the change. Record the previous settings and how you would stop an unintended future exclusion. Google says an Active hostname filter begins filtering within 24 to 36 hours. Activation timing
Recheck essential host/event combinations afterward. Changing the filter again is a prospective correction; it cannot retrieve discarded history. Add new campaign and booking hosts to the measurement review before their launch.
Once collection is understood, use our visibility and enquiry scorecard to judge business outcomes, or the ChatGPT traffic guide for source reporting. If existing records already look wrong, technical SEO can address the website and measurement evidence together. Request a Clarity Call with the affected hostname and the decision you need to make.