Troubleshoot Live activities troubleshoot-mobile-live
Live activities in Adobe Journey Optimizer enable real-time, dynamic updates on iOS lock screens and Dynamic Islands. They can only be triggered and managed through API Triggered Campaigns.
Use case types:
- Unitary: Individually targeted, transactional (API-triggered Transactional campaigns)
- Broadcast: Audience-targeted, mass delivery (API-triggered Marketing campaigns)
A frequent challenge with Live activities is when the API call to trigger or update a Live activity returns a successful response (200 OK), but the Live activity fails to appear or update on the user’s device. This disconnect between API confirmation and actual device behavior can occur at multiple points in the delivery pipeline. This guide provides a systematic troubleshooting approach to identify where the delivery is failing, examining each stage from API request validation through device rendering.
Prerequisites
Before troubleshooting, ensure you have:
-
accordion Set up an Assurance session Set up an Assurance session to capture SDK events and inspect the delivery pipeline. Assurance provides visibility into:
- Edge Network requests and responses
- Profile qualification events
- Push token registration
- Live activity lifecycle events
Learn how to set up Assurance in the Adobe Experience Platform Assurance documentation.
Note: For iOS Live activity, ensure your app is running on a physical iOS device (iOS 16.1 or later) or Xcode Simulator (iOS 16.1 or later).
-
accordion Gather API Triggered Campaign details Navigate to your API Triggered Campaign in Journey Optimizer and retrieve:
- Campaign name
- Campaign ID found in the URL or campaign properties
- Campaign version if applicable
- Surface configuration, iOS app surface used for Live activity
-
accordion Collect API request information When making the API call to trigger the Live activity, save:
- API request payload, including profile identifiers and Live activity data
- API response including status code, message ID, request ID
- Timestamp of when the API was called
- Endpoint used, e.g.,
/campaign/{CAMPAIGN_ID}/execute
-
accordion Identify the test profile From your API request, retrieve:
- Profile namespace, e.g., ECID, email, customer ID
- Profile ID used in the API call
Ensure you can look up this profile in Adobe Experience Platform. Learn how to look up a profile in the Experience Platform documentation.
-
accordion Device and app information Collect the following from your test device:
- Device model, e.g., iPhone 14 Pro
- iOS version
- App bundle identifier
- APNs push token
- Network connectivity status at the time of testing
Common scenarios
Profile or push token issues profile-issue
[Applies to both unitary and broadcast use cases]{class="badge positive"}
The API returns HTTP 200, but the Live activity does not appear. Common causes:
- Profile does not exist in Adobe Experience Platform.
- Live activity push token has not been synced to the profile.
- Live activity push details are synced but contain incorrect configuration, e.g. wrong
appIdorattributeType.
Note for broadcast use cases: If some profiles in your audience are missing tokens, only those profiles will fail to receive the Live activity. Sample several profiles from your audience to diagnose token issues. This applies only to remote start events, not update or end events.
Pre-checks
-
iOS app requirements:
- iOS 16.1+
NSSupportsLiveActivitiesset toYESinInfo.plistActivityAttributesproperly implemented.
-
Mobile SDK Integration:
- Adobe Experience Platform Mobile SDK (messaging SDK 5.11.0+)
Messaging.registerLiveActivitiesimplemented and called with Live activity push token.
Debugging steps
-
accordion Verify profile exists in Adobe Experience Platform - In Journey Optimizer, navigate to Customer
>Profiles. - Search using namespace and identity value from API request.
- If profile is not found, the profile does not exist or ingestion is not completed. Create the profile or wait for ingestion before triggering the Live activity.
- If profile is found, proceed to step 2 below to check if the push token is synced.
- In Journey Optimizer, navigate to Customer
-
accordion Check if Live activity push token is synced You can use Assurance to verify token registration:
- In Assurance, from the Events list, filter or search for events
eventType = "liveActivity.pushToStart". - Select the Event and inspect the payload.
- Check that the token, appId, and attributeType values are present.
- Confirm if the event was successfully sent.
You can also check in Adobe Experience Platform profile.
- In Adobe Experience Platform, from your Profile, access the Events tab.
- Search for
liveActivity.pushToStartevents. - Check the even timestamp and payload.
If no events are found, your mobile app is not calling
Messaging.registerLiveActivitycorrectly. You need to fix the SDK integration. - In Assurance, from the Events list, filter or search for events
-
accordion Validate token details on profile -
From your Profile, access the Attributes tab.
-
Locate
liveActivityPushNotificationDetails. -
Verify the token configuration:
code language-json { "liveActivityPushNotificationDetails": [ { "appId": "com.example.myapp", "token": "abc123def456...", "platform": "apns", "denylisted": false, "attributeType": "OrderTrackingAttributes", "identity": {} } ] }
Validate each field:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Field Requirement Common Issue appIdMust exactly match iOS bundle identifier Mismatch between dev/prod bundle IDs attributeTypeMust exactly match Swift ActivityAttributesstruct name (case-sensitive)Typo or incorrect struct name platformMust be "apns"or"apnsSandbox"Wrong platform value denylistedMust be falseToken marked as invalid or user opted out tokenValid APNs push token Token expired or app reinstalled If any field is incorrect: Update the mobile app, re-register using
Messaging.registerLiveActivities, wait 5-10 minutes, then re-check.If
liveActivityPushNotificationDetailsis missing: Token has not synced yet. Wait 5-10 minutes after seeing theliveActivity.pushToStartevent in Assurance. -
Campaign configuration and payload issues payload-issues
[Applies to both unitary and broadcast use cases]{class="badge positive"}
Profile exists with valid tokens, but Live activity does not appear. This can be caused by:
- Wrong surface or channel configuration.
- Incorrect API payload structure.
content-stateandattributesdo not match iOSActivityAttributesimplementation.- Stale
timestamp(critical for update/end).
Note for broadcast use cases: Campaign must be API-triggered Marketing (not Transactional). Payload uses audience instead of individual profile. Refer to this section for broadcast-specific payload structure and to Adobe Developer documentation for complete API specifications.
Pre-checks
- Campaign is API-triggered Transactional (unitary) or API-triggered Marketing (broadcast) and High Throughput option must be not be enabled since it is incompatible with Live activity.
- Ensure that profile exists and tokens are synced correctly using the above scenario.
Debugging steps
-
accordion Verify campaign surface configuration - In Journey Optimizer, open your Campaign and navigate to the Actions menu.
- Check your Live activity configuration. The surface must be configured for the iOS app with a bundle identifier that matches the
appIdin your profile’sliveActivityPushNotificationDetails. For example, if your profile has"appId": "com.example.myapp", the surface must target that same app. - Check that the Activity type in your campaign configuration matches exactly the
attributeTypein your profile’sliveActivityPushNotificationDetails. For example, if your profile has"attributeType": "FoodDeliveryLiveActivityAttributes", the campaign must specify this same Activity type.
-
accordion Validate API payload structure When executing the campaign via API, ensure the payload follows the correct structure.
Unitary payload:
code language-json { "campaignId": "your-campaign-id", "recipients": [{ "type": "aep", "userId": "user@example.com", "namespace": "email", "context": { "requestPayload": { "aps": { "content-available": 1, "timestamp": 1756984054, "event": "start", "attributes-type": "FoodDeliveryLiveActivityAttributes", "content-state": { ... }, "attributes": { ... } } } } }] }Common payload issues:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 Field Requirement Common Issue attributes-typeMust match campaign Activity type and profile attributeTypeMismatch or typo campaignIdMust match the activated campaign ID Wrong or missing campaign ID content-availableMust be 1Missing or wrong value eventMust be "start","update", or"end"Invalid event type timestampMust always be the current/latest Unix epoch time in seconds Using old/cached timestamp userId/namespaceMust match an existing profile in AEP Profile identifier mismatch Critical: Always use the latest timestamp
- The
timestampfield must always be the current Unix epoch time (in seconds) at the moment each API call is made. - This applies to all event types:
start,update, and especiallyend. - Impact on updates/end requests: Using a stale or old timestamp will cause update and end requests to fail or be ignored by the device.
- Do NOT reuse timestamps from previous requests or use cached values.
- Generate a fresh timestamp for every API call.
Optional fields (all event types):
requestId: Unique identifier for tracking (recommended).alert: Object withtitleandbodyfor notification (useful for drawing attention to updates).
About
dismissal-date:- Optional field containing Unix epoch time (seconds).
- Only relevant when
event: "end". - Specifies when the Live activity should automatically be removed from the device.
- If not provided on end event, Live activity remains visible until user dismisses it.
- Must be a future timestamp (later than
timestamp).
- The
-
accordion Align payload with iOS implementation Ensure your API payload matches your iOS app’s
ActivityAttributesimplementation. The Adobe SDK’sLiveActivityAttributesprotocol extends iOSActivityAttributesand requires aliveActivityDataproperty.Validate the mapping:
-
Your
ActivityAttributesmust implement Adobe’sLiveActivityAttributesprotocol. Example:code language-swift struct FoodDeliveryLiveActivityAttributes: LiveActivityAttributes { public struct ContentState: Codable, Hashable { var orderStatus: String var estimatedDeliveryTime: String } // Adobe SDK requirement var liveActivityData: LiveActivityData // Your custom attributes var restaurantName: String }Note that the
liveActivityDatafield is required by Adobe SDK and must be included in all implementations. -
Your API payload must mirror the iOS structure:
code language-json { "aps": { "event": "start", "timestamp": 1756984054, "attributes-type": "FoodDeliveryLiveActivityAttributes", "content-state": { "orderStatus": "Preparing", "estimatedDeliveryTime": "20 mins" }, "attributes": { "liveActivityData": { "liveActivityID": "order-12345" }, "restaurantName": "Pizza Palace" } } }
Validation checklist:
-
Include all
ContentStatefields incontent-state(required for all event types). -
Include all
LiveActivityAttributesfields inattributes(start events only), including:liveActivityData(required; typically containsliveActivityIDor similar identifier)- All custom fields from your struct
-
Match field names exactly (case-sensitive).
-
Match data types (String, Int, Bool, nested objects).
-
Preserve nested object structure.
Common mistakes:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 Issue Impact Fix Missing liveActivityDatain attributesLive activity will not start Always include liveActivityDataobject in start eventMissing required field in start event Live activity will not start Add all fields from iOS struct Wrong field name (typo/case) Field ignored or parsing error Match iOS field names exactly Wrong data type Parsing error Match iOS data types Missing nested object Incomplete data Include all nested structures Including attributesin update/endUnnecessary, but usually ignored Only include attributesin start eventStale timestamp on update/end Update/end ignored by device Always generate fresh timestamp For more examples, refer to Create Live activity page.
-
-
accordion Test with Assurance Verify API execution and payload delivery using Assurance:
-
Open your Assurance session.
-
Execute the API call to trigger the Live activity.
-
In the Event List, check for:
- Campaign execution events.
- Live activity delivery events.
- Payload validation error events.
-
Review event payloads to verify:
- Payload was processed correctly.
- No validation errors occurred.
- Live activity was sent to APNs.
-
Delivery failures and error analysis
[Applies to both unitary and broadcast use cases]{class="badge positive"}
In this scenario, all previous checks have passed:
- Profile exists with valid Live activity push tokens
- Campaign is correctly configured with proper payload
- Update tokens are synced (for update/end events, unitary use case only)
But the Live activity still does not appear, update, or end as expected. The issue may be at the Adobe delivery system level or with the push notification service provider (APNs).
Note for broadcast use cases: Reports show metrics across all audience members. Some profiles may succeed while others fail.
Pre-checks
-
Previous Scenarios Validated:
- Profile exists with correct
liveActivityPushNotificationDetails - Campaign surface and Activity type are correct
- API payload is valid with current timestamp
- Update tokens are synced (for update/end events)
- Profile exists with correct
-
API Call Confirmed:
- The API call returned HTTP 200 (success)
- Campaign ID and recipient details are correct
Debugging steps
-
accordion Check campaign reports -
Navigate to your Live activity Campaign.
-
Click the Reports button.
-
Select View all time report.
-
Review the following sections:
-
Check the Sending Statistics metrics to understand delivery success:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Metric What it means What to look for Targeted Number of profiles qualified for the audience Should include your test profile Sends Total push notifications attempted Should match your API calls Delivered Successfully delivered to devices Compare with Sends to see success rate Send errors Push notifications that failed to send High numbers Send exclusions Profiles excluded by Adobe Journey Optimizer Check if your profile was excluded -
If Send errors > 0, check the Error Reasons table for specific error codes and messages:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 Common Error Meaning Resolution Invalid token Push token is invalid or expired Re-register Live activity tokens from device Token not found No valid token associated with profile Verify liveActivityPushNotificationDetailsexistsAPNs rejected Apple Push Notification service rejected the push Check APNs certificate, bundle ID, environment Network timeout Unable to reach APNs Transient issue; retry the API call -
If Send exclusions > 0, check the Excluded Reasons table:
table 0-row-3 1-row-3 2-row-3 3-row-3 Common Exclusion Meaning Resolution Profile opted out User has opted out of notifications Check profile consent status Token denylisted Token marked as invalid Re-register token or check denylist status Profile not eligible Profile does not meet campaign criteria Review campaign audience rules
-
Learn more in the Live activity campaign report page.
-
-
accordion Check message feedback events in profile -
Navigate to Customer > Profiles in Journey Optimizer.
-
Search for and open the profile.
-
Select the Events tab.
-
Filter or search for events with
eventType = "message.feedback". -
Look for feedback events matching your Live activity’s
liveActivityIDandeventtype. -
Review the following key fields:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 Field Possible Values What it means feedbackStatussent,error,denylistDelivery outcome from service provider serviceProviderapns/apnsSandboxShould be APNs for iOS Live activities errorCodeNumeric code or nullAPNs-specific error code if failed errorMessageError description or nullHuman-readable error message -
If
feedbackStatus: "error":- Check the
errorCodeanderrorMessagefor specific APNs errors - Common APNs errors include expired token, invalid certificate, wrong bundle ID
- Check the
-
If no feedback event found:
- The push notification may not have been attempted
- Check if profile was excluded in Campaign Reports as detailed in Step 1 above.
-
-
accordion Verify Live activity delivery to APNs in Assurance -
Open your Assurance session, it must be active during the API call.
-
Execute the API call (start, update, or end).
-
In the Event List, look for Live activity delivery events.
-
Search for events related to APNs push delivery.
-
Check for the following indicators:
- Push request to APNs: Confirms Adobe sent the push to Apple’s servers
- APNs response: Shows whether APNs accepted or rejected the push
- Delivery status: Success or failure indication
-
If issues are found, refer to the following common APNs delivery issues:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Issue Symptom in Assurance Resolution APNs certificate expired Authentication error Renew and upload new APNs certificate Wrong environment (dev vs prod) Token mismatch error Ensure certificate matches app build type Bundle ID mismatch Invalid bundle identifier Verify certificate bundle ID matches app Token expired InvalidToken error from APNs Re-register Live activity tokens Rate limiting Too many requests Reduce API call frequency
-
-
accordion Proceed to additional diagnostic checks -
Check Live activity Lifecycle metrics in Campaign Report.
In the campaign report, review the Live activity lifecycle section:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 Metric What to check Remote starts Should show count of API-triggered starts Updates Should show count of update events Ends Should show count of end events Totals count Overall Live activity event volume If these metrics are zero or do not match your API calls, there is a delivery issue between Adobe and APNs.
-
If Adobe shows successful delivery but device does not show the Live activity:
- Check iOS device logs for Live activity errors.
- Verify app is in foreground or background (not terminated).
- Confirm device has network connectivity.
- Test on multiple devices to rule out device-specific issues.
- Verify iOS version is 16.1 or later.
-
-
accordion Escalation to Adobe Support If you have completed all steps and the issue remains unresolved, contact Adobe Customer Care with:
Required information:
-
Campaign ID and name
-
Profile namespace and ID
liveActivityIDfrom API payload
-
Timestamps of API calls
-
Screenshots of:
- Campaign Reports (Sending Statistics, Error Reasons, Excluded Reasons)
- Profile Events (
liveActivity.updateToken,message.feedback) - Assurance session showing delivery events
-
Complete API request payload
-
APNs certificate details (expiration, environment, bundle ID)
-
Unitary-specific scenarios
Live activity update token not synced token-not-synced
The Live activity starts successfully on the device, but subsequent update or end API calls (returning HTTP 200) fail to update or dismiss the Live activity. This occurs when the Live activity update token is not properly synced to Adobe’s system.
Understanding update tokens
When a Live activity starts on a device, iOS generates a unique update token for that specific Live activity instance. This token is required for:
- Sending updates to the Live activity
- Ending the Live activity remotely
Each Live activity instance has its own unique update token. Adobe needs this token to deliver update and end events.
Expected behavior
For update and end events to work, the following must occur:
- Live activity starts successfully on the device.
- Device generates an update token for that Live activity instance.
- Mobile SDK captures and sends the update token to Adobe.
- Update token is synced and stored in Adobe’s system.
- Subsequent API calls for update/end use this token for delivery.
Pre-checks:
- User Permission: The first time a Live activity starts on a device, iOS displays a system prompt: “Allow [App Name] to provide Live activity updates?” The user must tap “Allow” for update tokens to be generated and synced. If the user taps “Do not Allow”, no update tokens are created and update/end requests will fail. This is a one-time permission per app.
- Profile and Campaign Validation: Complete Scenario 1 and Scenario 2 checks to ensure profile, tokens, and campaign configuration are correct.
Debugging steps
-
accordion Verify update token sync in Assurance -
Open your Assurance session.
-
Ensure the session was active when the Live activity started on the device.
-
Filter or search for events with
eventType = "liveActivity.updateToken". -
Select the event and inspect the payload:
- Verify the
tokenfield contains a valid update token string. - Check the
liveActivityIDmatches your Live activity instance. - Confirm the
activityTypematches yourattributes-type.
- Verify the
-
If event is not found:
- The update token was not generated or captured by the SDK.
- Check if user granted Live activity permissions.
- Verify the Live activity actually started successfully on the device.
- Confirm the mobile SDK is properly integrated to capture update tokens.
-
If event is found, proceed to Step 2.
-
-
accordion Verify update token in profile events -
Navigate to Customer > Profiles in Journey Optimizer.
-
Search for and open the profile.
-
Select the Events tab.
-
Look for
liveActivity.updateTokenevents. -
Check the event details:
- Verify the timestamp is recent (matches when Live activity started).
- Confirm the
tokenandliveActivityIDare present. - Ensure the
activityTypeis correct.
-
If event is not found in profile:
- The update token event may not have been ingested to the profile yet.
- Wait 5-10 minutes and re-check.
- If still missing after 15 minutes, there may be an event ingestion issue.
-
If event is found, the update token has been synced. You can proceed to Step 3.
-
-
accordion Check Live activity delivery events in Assurance -
In your Assurance session, execute an update or end API call.
-
In the Event List, look for Live activity delivery events (APNs push events).
-
Check for events indicating:
- Push notification sent to APNs.
- Response from APNs (success or error).
- Delivery confirmation.
-
If APNs delivery event is present: The push notification was sent. If the device still does not update, the issue may be on the device side (app not handling the push, network issues, etc.).
-
If APNs delivery event is missing: The update token may not be properly stored or associated with the profile in Adobe’s system.
-
If error events are present: Inspect the error details for specific failure reasons (invalid token, APNs rejected, etc.).
-
Broadcast-specific scenarios
Broadcast campaign configuration and payload issues broadcast-config
This section covers troubleshooting scenarios specific to broadcast Live activities, which require different debugging approaches than unitary campaigns.
When profiles have valid tokens but the Live activity does not appear, update, or behave as expected for audience members, the issue typically stems from one of the following:
- The campaign is not configured as API-triggered Marketing.
- The API payload uses an incorrect broadcast structure (missing
audienceorinput-push-channel). - The
content-stateandattributesfields do not match the iOSActivityAttributesimplementation. - The
input-push-channelwas not created correctly on the Apple Developer Portal.
This troubleshooting scenario applies to all Live activity events in broadcast campaigns: start, update, and end.
Pre-checks:
-
Campaign Type:
- Verify that the campaign is created as API-triggered Marketing (required for broadcast/audience-based campaigns).
- Confirm that an audience is defined in the campaign configuration.
-
Profile and Token Validation: Sample multiple profiles from the audience to verify they have valid
liveActivityPushNotificationDetails. For detailed validation steps, follow Scenario 1.
Debugging steps
-
accordion Verify campaign audience configuration -
Open your API Triggered Marketing Campaign in Journey Optimizer.
-
Navigate to the Audience section and verify:
- An audience is selected for the campaign.
- The audience ID matches the one used in your API payload.
- The audience contains the expected profiles.
-
Navigate to the Actions section.
-
Check the Live activity configuration:
- The configuration must be set for the iOS app with the correct bundle identifier.
- The Activity type must match the
attributes-typein your API payload. For example, if your payload contains"attributes-type": "AirplaneTrackingAttributes", the campaign must specify this same Activity type.
-
-
accordion Validate broadcast API payload structure The broadcast payload structure differs from unitary campaigns. Verify that your payload follows the correct broadcast format.
Required fields for broadcast:
code language-json { "campaignId": "878a11d4-b519-47bd-8313-fecfee19857b", "audience": { "id": "8c3dbdea-2957-401f-acf0-3966fba1601e" }, "context": { "requestPayload": { "aps": { "input-push-channel": "FEt0NgvLEfEAAOqA6AXdIQ==", "content-available": 1, "timestamp": 1771829292, "event": "update", "attributes-type": "AirplaneTrackingAttributes", "content-state": { ... }, "attributes": { ... } } } } }Common payload issues:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 Field Requirement Common Issue campaignIdMust match the activated Marketing campaign ID Wrong campaign ID or using Transactional campaign audience.idMust match an existing audience in AEP Wrong audience ID or audience does not exist input-push-channelRequired for broadcast - Unique identifier for this broadcast instance Missing or does not match channelIDinliveActivityDatatimestampMust always be the current/latest Unix epoch time in seconds Using old/cached timestamp eventMust be "start","update", or"end"Invalid event type attributes-typeMust match campaign Activity type Mismatch or typo content-availableMust be 1Missing or wrong value Critical broadcast-specific fields:
-
input-push-channel:- Required for all broadcast Live activities.
- Serves as a unique identifier for this specific broadcast instance.
- All profiles in the audience receive Live activities linked to this channel.
- Must match the
channelIDinliveActivityData.channelID(see Step 3). - Must be created for the
appIDon the Apple Developer Portal by the client. - Only channels created for the specific
appIDcan be used for broadcasting Live activity on that app.
-
audience.id:- Must reference a valid audience segment created in Adobe Experience Platform.
- All profiles in this audience are targeted for the Live activity.
- The audience must be activated and contain profiles with valid
liveActivityPushNotificationDetails.
Always use the latest timestamp:
- The
timestampfield must always be the current Unix epoch time (in seconds) for every API call. - This requirement applies to all event types:
start,update, andend. - Critical for updates/end: Using stale timestamps causes update and end requests to fail.
- Generate a fresh timestamp for every broadcast API call.
Optional fields:
dismissal-date: Unix epoch time for auto-dismissal (only relevant forendevents)alert: Object withtitleandbodyfor notification
Refer to the Adobe Journey Optimizer Messaging API documentation for complete API specifications.
-
-
accordion Align content-state, attributes, and input-push-channel with iOS implementation Ensure that the payload fields match your iOS app’s
ActivityAttributesimplementation, and that theinput-push-channelmatches thechannelIDinliveActivityData.- Review your iOS ActivityAttributes definition.
Your custom
ActivityAttributesstruct must implement Adobe’sLiveActivityAttributesprotocol:code language-swift struct AirplaneTrackingAttributes: LiveActivityAttributes { public struct ContentState: Codable, Hashable { var journeyProgress: Int } // Adobe SDK requirement var liveActivityData: LiveActivityData // Your custom attributes var arrivalAirport: String var departureAirport: String var arrivalTerminal: String }- Map iOS fields to broadcast API payload.
For all events, include both
attributesandcontent-state:code language-json { "aps": { "input-push-channel": "FEt0NgvLEfEAAOqA6AXdIQ==", "event": "start", "timestamp": 1771829292, "attributes-type": "AirplaneTrackingAttributes", "content-state": { "journeyProgress": 0 }, "attributes": { "arrivalAirport": "DEL", "departureAirport": "MUM", "arrivalTerminal": "T1", "liveActivityData": { "channelID": "FEt0NgvLEfEAAOqA6AXdIQ==" } } } }Critical:
input-push-channelmust matchchannelID- The
input-push-channelvalue at the root ofapsmust exactly match thechannelIDinliveActivityData. - In the example above, both values are
"FEt0NgvLEfEAAOqA6AXdIQ==". - This matching links the broadcast instance to the Live activity data.
- A mismatch causes delivery failures.
Key validation points:
- Include all
ContentStatefields incontent-statefor all event types. - Include all custom
LiveActivityAttributesfields inattributesfor start events only. - For start events,
liveActivityData.channelIDmust matchinput-push-channel. - Field names are case-sensitive and must match exactly.
- Data types must match (String, Int, Bool, nested objects, etc.).
- For update/end events, use the same
input-push-channelas the original start event.
Common mistakes:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 Issue Impact Fix Missing input-push-channelBroadcast will not work Add unique channel ID for each broadcast input-push-channeldoes not matchchannelIDLive activity will not start Ensure both values are identical Different input-push-channelfor update/endUpdate/end will not reach the Live activities Use same channel ID throughout lifecycle Missing liveActivityData.channelIDLive activity will not link to broadcast Include channelIDin attributes for start eventMissing required field in start event Live activity will not start Add all fields from iOS struct Wrong field name (typo/case) Field ignored or parsing error Match iOS field names exactly Stale timestamp on update/end Update/end ignored by devices Always generate fresh timestamp -
accordion Test with Assurance Verify API execution and payload delivery using Assurance:
-
Open your Assurance session on a test device that is part of the audience.
-
Execute the broadcast API call.
-
In the Event List, look for:
- Campaign execution events.
- Live activity delivery events.
- Error events indicating payload validation failures.
-
Inspect event payloads to confirm:
- The payload was processed correctly.
- The
input-push-channelis present. - No validation errors occurred.
- Live activities were sent to APNs for audience members.
-
Profile not in audience or stale audience snapshot
In this scenario, the campaign and payload are correctly configured, but specific profiles are not receiving the Live activity. This typically occurs when:
- The profile is not a member of the audience linked to the campaign.
- The audience is a batch audience and contains an outdated snapshot of profile data.
- The profile’s Live activity tokens were added recently but have not been reflected in the audience snapshot yet.
This troubleshooting scenario applies specifically to broadcast campaigns using audience-based targeting.
Understanding audience evaluation
Adobe Experience Platform uses different audience evaluation methods that determine when profile updates are reflected in the audience:
Pre-checks:
-
Campaign and Payload Validation:
- Complete the checks in this scenario to ensure the campaign and payload are correct.
- Verify that the
audience.idin the API payload matches the campaign configuration.
-
Profile Exists: Confirm that the profile exists in AEP with valid
liveActivityPushNotificationDetails.
Debugging steps
-
accordion Verify profile is in audience First, confirm whether the profile that should receive the Live activity is actually part of the audience.
-
Navigate to Audiences in Adobe Experience Platform.
-
Search for and open the audience using the
audience.idfrom your campaign. -
Click Browse or Sample profiles to view audience members.
-
Search for your test profile using the namespace and identity value.
-
If profile is not found in the audience:
- The profile does not meet the audience criteria or segment rules.
- Review the audience definition to understand the membership requirements.
- Update the profile data or audience definition to include the profile.
- Wait for audience evaluation to complete (see Step 2).
-
If profile is found in the audience: Proceed to Step 2 to check data freshness.
-
-
accordion Check audience evaluation type and schedule Identify whether the audience uses batch or streaming evaluation, as this determines data freshness.
-
On the Audience details page, check the Evaluation method:
- Batch: Evaluated once daily on a schedule.
- Streaming: Evaluated in real-time when profile updates occur.
- Edge: Evaluated at edge locations in real-time.
Follow the appropriate troubleshooting steps based on the evaluation method:
If the audience uses Batch evaluation:
-
Understand batch audience limitations:
- Batch audiences are evaluated once per day (typically overnight).
- The audience snapshot may be up to 24 hours old.
- If a profile recently registered Live activity tokens, those tokens may not be in the current snapshot.
- Updates to profiles will not be reflected until the next batch evaluation.
-
Check when last evaluation occurred:
- In the audience details, look for the Last evaluation timestamp.
- If the profile’s
liveActivityPushNotificationDetailswere updated after this timestamp, the audience has stale data.
-
Resolve stale data:
-
Option 1: Wait for scheduled batch evaluation
- The next batch evaluation will include the updated profile data.
- This happens automatically once per day.
- Best for non-urgent scenarios.
-
Option 2: Trigger on-demand audience evaluation
- Navigate to Audiences in AEP.
- Select your audience.
- Click Evaluate now or Activate on demand.
- Wait for evaluation to complete (this can take several minutes to hours depending on audience size).
- Verify that the profile now has updated data in the audience snapshot.
- Retry the broadcast API call.
-
If the audience uses Streaming evaluation:
-
Understand streaming audience behavior:
- Streaming audiences evaluate in real-time when profile updates occur.
- New profiles: Qualify shortly after creation if they meet segment criteria.
- Updated profiles: Qualify or disqualify shortly after being updated.
- Existing unchanged profiles: Are not re-evaluated unless an update occurs.
-
Identify the issue:
- If a profile already exists and meets the segment criteria, but no update occurs on that profile, it may not be added to a newly created streaming audience.
- The profile must receive an update (any attribute change) to trigger re-evaluation.
-
Resolve the issue:
-
For new profiles: They automatically qualify if criteria are met. No action needed.
-
For existing profiles without recent updates:
- Make a minor update to the profile (e.g., update a timestamp field).
- This triggers streaming evaluation and adds the profile to the audience.
- Alternative: Use a batch audience or edge audience for existing profiles.
-
-