Understanding AEP Destination Types
Before troubleshooting, understand the two main destination categories:
| Type | Examples | Latency | How It Works |
|---|---|---|---|
| Streaming | Facebook, Google Ads, The Trade Desk | Minutes to hours | API-based, near real-time updates |
| Batch/File | SFTP, S3, Azure Blob, Data Landing Zone | Scheduled (daily/hourly) | File exports on schedule |
Different destination types have different failure modes. Know which type you're troubleshooting.
Common Failure #1: Authentication Errors
Symptoms
- Dataflow shows "Failed" status
- Error message mentions "401 Unauthorized" or "403 Forbidden"
- Activation worked before but suddenly stopped
Root Causes
- Expired credentials: OAuth tokens, API keys, or passwords expired
- Revoked access: Destination platform revoked the integration
- Permission changes: User who set up the connection lost access
- Rate limiting: Too many requests triggered security blocks
How to Fix
- Go to Destinations → Browse
- Find the failing destination and click into it
- Look for "Re-authenticate" or "Update credentials" option
- Re-authorize with valid credentials
- Test with a small audience before full activation
💡 Pro Tip
Set calendar reminders to refresh OAuth tokens before they expire. Most platform tokens expire in 60-90 days. Check destination documentation for specific expiry periods.
Common Failure #2: Mapping Errors
Symptoms
- Partial activation (some profiles succeed, others fail)
- Error mentions "required field missing" or "invalid format"
- Destination receives data but can't process it
Root Causes
- Missing required fields: Destination requires fields not mapped
- Data type mismatch: String sent where number expected
- Format issues: Phone numbers, dates in wrong format
- Null values: Required field has no value for some profiles
How to Fix
- Review destination's required fields in documentation
- Go to Destinations → Dataflows and check the mapping
- Ensure all required fields are mapped
- Use transformation functions for format conversion:
// Example: Phone number formatting
// Source: "+1-555-123-4567"
// Required: "15551234567"
// Use calculated field to strip formatting
replace(replace(phone, "-", ""), "+", "")
Common Failure #3: Consent/Governance Blocking
Symptoms
- Activation runs but exports 0 profiles
- Monitoring shows "Consent policy violation"
- Segment has profiles but nothing activates
Root Causes
AEP's Data Usage Labeling and Enforcement (DULE) blocks activation when:
- Data labels on fields conflict with destination marketing actions
- Profiles haven't consented to the specific use case
- Governance policies prevent certain data from leaving AEP
How to Diagnose
- Go to Policies → Browse
- Check which policies apply to your destination
- Review data labels on the fields being activated
- Check profile consent status in Profile Viewer
⚠️ Don't Bypass Governance
If governance is blocking activation, it's usually for a good reason. Work with your legal/compliance team before changing labels or policies. Document all decisions.
How to Fix (If Appropriate)
- Update consent records if customers have actually consented
- Modify segment to only include consented profiles
- Review and adjust data labels if they're incorrectly applied
- Create destination-specific consent segments
Common Failure #4: Segment Not Activating
Symptoms
- Segment shows profiles in AEP but destination reports empty
- No errors in monitoring, but no data flowing
- Worked before but stopped after segment changes
Root Causes
- Segment not mapped to destination: Forgot to add segment to dataflow
- Evaluation timing: Batch segment hasn't evaluated yet
- Merge policy mismatch: Segment uses different merge policy than expected
- Identity not present: Profiles lack the identity type destination needs
How to Fix
- Verify segment is added to the destination dataflow
- Check segment evaluation schedule (batch vs streaming)
- Confirm profiles have the required identity (e.g., email hash for Facebook)
- Test with a known profile using Profile Viewer
Common Failure #5: Export Schedule Issues
For Batch Destinations
File-based destinations export on schedule. Common issues:
- Schedule not configured: Dataflow created but no export schedule set
- Timezone confusion: Schedule set in wrong timezone
- Incremental vs Full: Expecting full export but configured for incremental
How to Check
- Go to Destinations → Browse → [Your Destination]
- Check the Scheduled tab for export schedule
- Verify timezone matches your expectations
- Check export type (incremental changes vs full snapshot)
| Export Type | What It Sends | Use Case |
|---|---|---|
| Full | All qualified profiles every time | Complete list sync, data warehouse loads |
| Incremental | Only changes since last export | Frequent updates, bandwidth optimization |
Monitoring and Diagnostics
Using the Monitoring Dashboard
- Navigate to Monitoring → Destinations
- Filter by destination or dataflow
- Check Dataflow runs for success/failure status
- Click into failed runs for error details
Key Metrics to Watch
- Records received: Profiles AEP tried to activate
- Records activated: Successfully sent to destination
- Records failed: Rejected by destination or AEP
- Records excluded: Filtered by consent/governance
API-Based Monitoring
// Get dataflow run details
GET /flows/{FLOW_ID}/runs
// Response includes:
{
"items": [{
"id": "run-123",
"status": "success",
"metrics": {
"recordsReceived": 50000,
"recordsActivated": 49850,
"recordsFailed": 150
},
"errors": [...]
}]
}
Destination-Specific Issues
Facebook/Meta Ads
- Audience too small: Facebook requires minimum audience size (~100)
- Hashing mismatch: AEP hashes email/phone; don't pre-hash
- Business Manager issues: Verify correct ad account is connected
Google Ads/DV360
- Customer Match eligibility: Account must qualify for Customer Match
- Match rate delays: Google processing can take 24-48 hours
- Policy violations: Content policies can reject audiences
SFTP/Cloud Storage
- Connection timeout: Firewall blocking AEP IPs
- Permission denied: Write permissions not set on target folder
- Disk space: Target storage is full
Prevention Best Practices
- Test with small audiences first before scaling to millions
- Set up alerts for dataflow failures in Monitoring
- Document credential expiry dates and set renewal reminders
- Use service accounts not individual users for auth
- Validate mappings whenever schema changes
- Monitor match rates at destination to catch issues early