Materialized segments are only available for BigQuery.
When to Use Materialized Segments
Use materialized segments when you need to target a specific list of users defined by complex queries in your data warehouse. Common use cases include:- Beta testers: Target users who have opted into beta programs
- High-value customers: Target users based on purchase history or engagement metrics
- Cohort analysis: Target users who signed up during a specific period
- Custom segments: Any segment that’s easier to define in SQL than with attribute criteria
How Materialized Segments Work
- You define a SQL query that returns a list of entity IDs
- Confidence runs this query against your BigQuery instance
- Confidence loads the resulting IDs into a segment and builds a bloom filter
- You can use this segment for targeting in rules, experiments, and rollouts
- Up to ~100,000 entities: The local resolve providers checks membership locally via a bloom filter in the resolver state. No network call needed.
- Larger segments or exactness-critical: When the bloom filter exceeds 512 KB, Confidence excludes it from the resolver state. The online resolver (Confidence backend) queries a key-value store for an exact membership check.
Bloom Filters and Local Resolution
When a load job completes, Confidence automatically builds a bloom filter, a compact, probabilistic data structure that can answer “is this entity in the segment?” locally.How Bloom Filters Work
A bloom filter provides:- Definitive no: If the filter says “not in set,” the entity is definitely not in the segment.
- Probable yes: If the filter says “in set,” there’s a negligible chance it’s a false positive (typically 1×10⁻⁸).

