Guides

Targeting & Segments Guide

Practical targeting strategies for rollouts

This guide covers practical targeting strategies. For reference on operators, rule structure, and how evaluation works, see Targeting Rules and Segments.

Combining Rules and Rollouts

Targeting rules and gradual rollouts work together. Rules are evaluated first -- if a rule matches, its variant is returned and the rollout is skipped. Users who don't match any rule enter the gradual rollout.

Targeting Rules:
  Rule 1: IF user IN SEGMENT "beta-users" THEN 100% -> new-feature
  Rule 2: IF user IN SEGMENT "enterprise" THEN 50% -> new-feature, 50% -> old-feature

Gradual Rollout (everyone else):
  10% -> new-feature
  90% -> old-feature

This gives beta users full access, enterprise customers a 50/50 split, and everyone else a 10% rollout.

Rollout Strategy

Start Small and Expand

Day 1:   1% rollout
Day 3:   5% rollout
Day 5:  10% rollout
Day 7:  25% rollout
Day 10: 50% rollout
Day 14: 100% rollout

Watch error rates, latency, and business metrics at each stage before increasing.

Internal Users First

Create an internal-users segment and test new features there before any public rollout:

IF user IN SEGMENT "internal-users"
  THEN new-feature
ELSE
  THEN old-feature

Once stable for internal users, add a gradual rollout for everyone else.

Kill Switch Ready

Every feature behind a flag is a kill switch. If something breaks at 25% rollout:

  1. Toggle the flag off in the dashboard
  2. SSE pushes the change to all clients in milliseconds
  3. All users get the default (safe) variant

Best Practices

Use meaningful names. premium-checkout-v2 tells you more than variant-a. enterprise-customers is clearer than segment-1.

Monitor at each stage. Track error rates, P99 latency, user engagement, and business KPIs before expanding a rollout.

Keep segments focused. One segment per audience -- internal-users, beta-testers, enterprise-customers. Don't combine unrelated audiences in a single segment.

Percentages in a gradual rollout must sum to 100%. The last variant receives any remainder.

On this page