How AEP Segmentation Works
Before troubleshooting, understand the three segmentation evaluation methods in AEP:
| Method | Latency | Use Case | Limitations |
|---|---|---|---|
| Edge Segmentation | Milliseconds | Real-time personalization | Simple rules only; no time-series |
| Streaming Segmentation | Minutes | Near real-time audiences | Limited aggregations |
| Batch Segmentation | 24 hours | Complex queries, historical data | Daily evaluation only |
💡 Key Insight
Most "segment not populating" issues stem from expecting real-time results from a batch-evaluated segment. Check your segment's evaluation method first.
Common Issue #1: Segment Shows 0 Profiles
Diagnosis Checklist
- Is the dataset profile-enabled?
- Are profiles being ingested (check Monitoring)?
- Does the schema have an identity field marked as primary?
- Is the merge policy correct for your use case?
- Has enough time passed for batch evaluation (up to 24h)?
Fix: Verify Dataset is Profile-Enabled
Data only contributes to segments if the dataset is profile-enabled:
- Go to Datasets in the AEP UI
- Select your dataset
- Check if "Profile" toggle is ON
- If off, enable it (note: this won't backfill existing data)
⚠️ Important
Enabling profile on a dataset doesn't backfill historical data. You'll need to re-ingest data after enabling the profile toggle for it to appear in segments.
Fix: Check Identity Configuration
Profiles require at least one identity to be created. Verify your schema has:
- An identity namespace configured (Email, ECID, CRM ID, etc.)
- The identity field marked as "primary" in the schema
- Actual identity values in your data (not null/empty)
Common Issue #2: Segment Count is Wrong
Expected 1M profiles, got 50K?
Profile count discrepancies usually involve merge policies or identity resolution:
Merge Policy Mismatch
Each segment uses a merge policy. If profiles exist under a different merge policy, they won't appear.
// Segment using "Timestamp Ordered" merge policy
// But profiles were created with "Dataset Precedence"
// Result: Profiles not visible to segment
Fix: Create the segment with the same merge policy used by your profiles, or update the merge policy to match.
Identity Graph Issues
If identities aren't stitching correctly, you might have fragmented profiles:
- 1 person = 5 profiles (one per device/identifier)
- Segment matches only some fragments
- Count appears lower than expected
Fix: Review identity settings and ensure proper cross-device identity stitching. See our Identity Graph guide.
Common Issue #3: Segment Not Updating
New data isn't qualifying
Profiles should qualify as new data arrives, but sometimes they don't:
Check Evaluation Method
Is your segment eligible for streaming evaluation?
Streaming-compatible rules:
- Simple attribute comparisons (
country = "US") - Segment membership checks
- Single event conditions
Batch-only rules:
- Time-series aggregations (
COUNT events in last 30 days > 5) - Complex multi-event sequences
- Profile attribute aggregations
- External segment membership
How to Check
In Segment Builder, look for the "Evaluation Method" indicator. If it shows "Batch" when you expected "Streaming," simplify your rules.
Force Re-Evaluation
For batch segments, you can trigger manual evaluation:
- Go to Segments → Your Segment
- Click Evaluate segment (ad-hoc evaluation)
- Wait for the job to complete (check Monitoring)
Common Issue #4: Edge Segment Not Working
Edge segmentation enables real-time personalization but has strict requirements:
Edge Eligibility Requirements
- Simple attribute comparisons only
- No time-series events (like "purchased in last 7 days")
- No external segment references
- No PQL functions that require profile hydration
Common Edge Failures
| Rule | Edge Eligible? | Why |
|---|---|---|
person.country = "US" |
✅ Yes | Simple attribute comparison |
loyalty.tier = "Gold" |
✅ Yes | Profile attribute lookup |
COUNT(purchases) > 5 |
❌ No | Aggregation requires batch |
productViews in last 7 days |
❌ No | Time-series not edge-eligible |
Common Issue #5: Destination Activation Delays
Segment qualified but not appearing in destination? Check the activation pipeline:
Activation Latency by Destination Type
- Streaming destinations (Facebook, Google): Minutes to 1 hour
- Batch destinations (SFTP, Cloud Storage): Wait for export schedule
- Adobe destinations (Target, Campaign): Near real-time
Troubleshooting Activation
- Check Monitoring → Dataflows for activation errors
- Verify destination credentials haven't expired
- Confirm segment is mapped to the destination
- Check if consent policies are blocking activation
Debugging with Profile Viewer
The Profile Viewer shows exactly what AEP knows about a specific profile:
- Go to Profiles in AEP
- Search by identity (email, ECID, etc.)
- Check the Attributes tab for profile data
- Check the Segment membership tab
- Verify the profile has the attributes your segment requires
💡 Pro Tip
Use Profile Viewer with a known test profile. If that profile should qualify but doesn't show in segment membership, you've isolated the issue to segment logic rather than data.
Prevention: Building Reliable Segments
Best Practices
- Start simple — Build and test basic rules before adding complexity
- Use estimate — Always check profile estimate before saving
- Test with known profiles — Use Profile Viewer to verify qualification
- Document evaluation method — Know if your segment is batch or streaming
- Monitor continuously — Set alerts for unexpected count changes
Segment Testing Workflow
1. Create segment with simple rule
2. Check estimated count > 0
3. Save and wait for evaluation
4. Verify specific test profile qualifies
5. Add complexity incrementally
6. Re-test after each change