In GA4 Explore, you have both segments and filters — and they appear to do similar things. But segments and filters operate at fundamentally different levels, and using the wrong one for your analysis leads to misleading results. A filter on “purchased = yes” and a segment of “purchasers” will return different user counts from the same dataset. This guide explains exactly how they differ and when to use each.

The Core Difference: Scope

  • Filters: Restrict which rows of data are included. They filter at the event or session level.
  • Segments: Identify groups of users matching criteria, then show ALL events for those users — even events that don’t match the segment condition.

Practical Example

Scenario: You want to understand what purchasers browse before they buy. With a filter (event_name = purchase): you see only the purchase events — no browsing data. With a segment (Users who purchased): you see ALL events for purchasers — including their pre-purchase browsing. The segment gives you what you actually want.

// How segments work conceptually:
// 100 users, 10 purchased

// FILTER (event_name = 'purchase'): Only 10 purchase events
// You lose ALL other events for purchasers

// SEGMENT (users who purchased): All ~500 events for the 10 purchasers
// You see EVERYTHING these users did, including pre-purchase behavior

Types of Segments

  • User Segments: Users matching criteria across all their sessions. “Users who ever purchased” includes all sessions for those users including before and after purchase.
  • Session Segments: Sessions matching criteria. “Sessions with a purchase” shows only sessions where a purchase occurred.
  • Event Segments: Events matching criteria. Similar to a filter but combinable with other segment logic.
GA4 Segments vs Filters: When to Use Each and Why Results Differ

When to Use Filters

  • Restricting to a specific page, country, or device that applies to all your analysis
  • Excluding internal traffic or bots from all metrics
  • Setting a date range or event type restriction that applies globally

When to Use Segments

  • Comparing behavior of two groups (purchasers vs non-purchasers)
  • Understanding the full journey of a defined user group
  • Cohort analysis (users who first visited in January)
  • Any time you want ALL data for a group, not just data matching a specific event

BigQuery Equivalent

-- GA4 Segment logic in BigQuery: all events for purchasers
WITH purchasers AS (
  SELECT DISTINCT user_pseudo_id
  FROM `project.dataset.events_*`
  WHERE event_name = 'purchase'
  AND _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAYS))
)
SELECT
  e.event_name,
  COUNT(*) as event_count,
  COUNT(DISTINCT e.user_pseudo_id) as users
FROM `project.dataset.events_*` e
INNER JOIN purchasers p ON e.user_pseudo_id = p.user_pseudo_id
WHERE e._TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAYS))
GROUP BY event_name
ORDER BY event_count DESC;
-- Shows full behavior profile: page_view, scroll, view_item, add_to_cart, purchase

The most common analysis mistake is using a filter when you should be using a segment — resulting in event-level data when you need user-level behavioral context.

Related guides: GA4 Predictive Audiences, GA4 Reporting Identity, BigQuery Cohort Analysis.

Guide: GA4 Segments vs Filters: When to Use Each and Why

Leave a Comment