在此页面上:系统地诊断为什么您的Live活动无法显示、更新或结束,这样您就可以在单一和广播用例中解决用户档案令牌、活动配置、有效负荷和投放问题。
查找您的方案 find-your-scenario
场景1:配置文件或推送令牌问题 scenario-1-profile-or-push-token-issues
[适用于单一和广播用例]{class="badge informative"}
触发器API接受请求,但不会显示实时活动。 常见原因:
- Adobe Experience Platform中不存在配置文件。
- 所需的推送令牌尚未同步到配置文件: iOS上的实时活动推送令牌或Android上的标准FCM注册令牌。
- 推送令牌详细信息包含不正确的配置,例如错误的
appId、平台或iOSattributeType。
对于广播:示例几个受众配置文件以检查令牌注册。 在iOS上,配置文件令牌检查适用于远程启动事件,而不适用于基于渠道的更新或结束事件。 在Android上,同时使用方案6验证设备的FCM主题订阅。
验证配置文件是否存在
对于iOS和Android,请开始使用此检查。 对于广播,请对多个受众配置文件重复此操作。
- 在Journey Optimizer中,导航到客户
>配置文件。 - 使用API请求中的命名空间和身份值搜索。
- 如果找不到配置文件,则说明该配置文件不存在或摄取尚未完成。 在触发实时活动之前,可创建配置文件或等待摄取完成。
- 如果找到配置文件,请继续检查平台的令牌。
检查推送令牌
预检查
-
iOS应用程序要求:
- iOS 16.1+
- 在
Info.plist中将NSSupportsLiveActivities设置为YES ActivityAttributes已正确实施。
-
移动SDK集成:
- Adobe Experience Platform Mobile SDK (消息传送SDK 5.11.0+)
- 使用Live活动推送令牌实施和调用了
Messaging.registerLiveActivities。
调试步骤
| accordion |
|---|
| 1. 检查实时活动推送令牌是否已同步 |
|
您可以使用Assurance验证令牌注册:
您还可以签入Adobe Experience Platform配置文件。
如果未找到任何事件,则表示应用未正确调用 |
| accordion | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 验证配置文件上的令牌详细信息 | |||||||||||||||||||||||
验证每个字段:
如果有任何字段不正确,请更新移动应用程序,使用 如果 |
预检查
-
Android应用程序要求:
- 在Android 16.1 (API级别36.1)或更高版本上运行应用程序,并将
targetSdk设置为36。 - 确保已授予
POST_NOTIFICATIONS和POST_PROMOTED_NOTIFICATIONS权限。 - 创建实时活动使用的通知渠道。
- 在Android 16.1 (API级别36.1)或更高版本上运行应用程序,并将
-
Mobile SDK集成:
- 将Adobe Experience Platform Mobile SDK与消息传送和实时活动扩展相集成。
- 使用
MobileCore.setPushIdentifier(token)将FCM注册令牌转发到SDK。
调试步骤
| accordion |
|---|
| 1. 验证FCM令牌注册 |
|
Android对实时活动使用标准FCM注册令牌。 没有
如果缺少注册事件或配置文件令牌,请验证应用程序是否使用 |
| accordion | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 验证配置文件上的令牌详细信息 | ||||||||||||||||||||
验证每个字段:
如果有任何字段不正确,请根据需要更正应用程序配置,使用 如果 |
场景2:Campaign配置和有效负载问题 scenario-2-campaign-configuration-and-payload-issues
[适用于单一和广播用例]{class="badge informative"}
配置文件存在并具有有效令牌,但未显示实时活动。 可能的原因:
- 错误的表面或渠道配置。
- API有效负载结构不正确。
- 有效负载字段与应用程序实现不匹配: iOS
ActivityAttributes或Android样式提供程序映射。 timestamp过时(对于更新/结束至关重要)。
对于广播:营销活动必须是API触发的营销,而不是事务型营销。 有效负载使用audience,而不是recipients。 有关完整API规范,请参阅方案6和文档Adobe Developer。
预检查
- 确认营销活动是API触发的事务型 (单一)或API触发的营销活动 (广播)。 保持 高吞吐量 已禁用,因为它与实时活动不兼容。
- 在方案1中使用iOS检查验证配置文件是否存在及其令牌是否已同步。
调试步骤
| accordion |
|---|
| 1. 验证营销活动表面配置 |
|
| accordion | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 验证API有效负荷结构 | ||||||||||||||||||||||||||
|
通过API执行活动时,请确保有效负载遵循正确结构。 单一有效负载:
常见有效负载问题:
关键:始终使用新的时间戳
可选字段(所有事件类型):
关于
|
| accordion | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 将有效负载与iOS实施保持一致 | |||||||||||||||||||||||||||||||
|
确保API有效负载与iOS应用程序的 验证映射:
验证核对清单:
常见错误:
有关更多示例,请参阅创建实时活动页面。 |
| accordion |
|---|
| 4. 使用Assurance进行测试 |
|
使用Assurance验证API执行和有效负载投放:
|
预检查
- 确认营销活动是API触发的事务型 (单一)或API触发的营销活动 (广播)。 保持 高吞吐量 已禁用,因为它与实时活动不兼容。
- 在方案1中使用Android检查验证配置文件是否存在以及其FCM令牌是否已同步。
调试步骤
| accordion |
|---|
| 1. 验证营销活动表面配置 |
|
| accordion | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 验证API有效负荷结构 | ||||||||||||||||||||||||||||||||
|
将Android Live活动字段放置在 单一启动有效负载:
将示例时间戳替换为当前Unix纪元时间(以秒为单位)。 对于广播,使用包含 常见有效负载问题:
时间戳和生命周期检查:
结束事件解除: 对于 |
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 将有效负载与Android实施保持一致 | |||||||||||||||||||||
|
应用程序的样式提供程序确定
常见错误:
有关更多示例,请参阅创建实时活动。 |
| accordion |
|---|
| 4. 使用Assurance进行测试 |
|
在连接的Android测试设备上使用Assurance。
|
场景3:投放失败和错误分析 scenario-3-delivery-failures-and-error-analysis
[适用于单一和广播用例]{class="badge informative"}
在此方案中,所有先前的检查均已通过:
- 存在具有设备平台🔗的有效推送令牌的配置文件。
- 营销活动和有效负载通过配置检查。
- 对于iOS统一更新或结束事件,每个实例的更新令牌已同步。 Android不需要单独的更新令牌。
如果实时活动仍未出现、更新或结束,请检查活动处理、向推送提供商的投放(iOS上的APN或Android上的FCM)以及设备端行为。
对于广播:报表显示所有受众成员的量度。 某些配置文件可能会成功,而其他配置文件则会失败。
检查营销活动报告 check-campaign-reports
对于iOS和Android,请从营销活动报表开始。 它显示Journey Optimizer是尝试发送、排除用户档案还是发生错误。
-
导航到您的实时活动营销活动。
-
单击 报表 按钮。
-
选择查看所有时间报表。
-
检查 发送统计数据 量度以了解发送成功:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 量度 它的含义 要查找的内容 已定位 符合受众条件的配置文件数 应包含您的测试用户档案 发送 尝试的推送通知总数 应与您的API调用匹配 已送达 报告的投放量度 与发送进行比较;分别验证设备呈现 发送错误 发送失败的推送通知 调查错误原因 发送排除项 Adobe Journey Optimizer排除的用户档案 检查您的配置文件是否已被排除 -
如果发送错误 > 0,请检查 错误原因 表。 使用适用于您的平台的选项卡中的步骤1来解释错误。
-
如果发送排除项 > 0,请检查 排除的原因 表:
table 0-row-3 1-row-3 2-row-3 3-row-3 常见排除 含义 解决方法 配置文件已选择退出 用户已选择退出通知 检查配置文件同意状态 令牌 令牌标记为无效 重新注册令牌(iOS)或转发当前FCM令牌(Android),或检查阻止列表状态 配置文件不符合条件 配置文件不符合营销活动标准 查看活动受众规则 -
查看 实时活动生命周期 部分:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 量度 检查内容 远程启动 应显示API触发的开始计数 更新 应显示更新事件计数 结束 应显示结束事件计数 总计计数 实时活动活动量总计 如果这些指标为零或与您的API调用不匹配,请使用以下特定于平台的检查来调查活动处理和推送提供程序交付。
在实时活动营销活动报告页面中了解详情。
检查平台的投放
预检查
-
已验证的以前方案:
- 存在具有正确
liveActivityPushNotificationDetails的配置文件。 - 营销活动平面和活动类型正确。
- API有效负载对当前时间戳有效。
- 更新令牌已同步(仅限单一更新和结束事件)。
- 存在具有正确
-
已确认API调用:
- 触发器API接受了请求。 这不会确认投放或设备呈现。
- 活动ID和收件人详细信息正确。
调试步骤
| accordion | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1. 解释发送错误 | ||||||||||||||||||
|
如果营销活动报告未显示任何发送错误,请跳过此步骤。 否则,请将 错误原因 表中的错误与以下常见的APN错误进行匹配:
|
| accordion | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 查看用户档案中的消息反馈事件 | ||||||||||||||||||
如果 |
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 在Assurance中验证向APN的实时活动投放 | |||||||||||||||||||||
|
| accordion |
|---|
| 4. 检查设备端行为 |
|
如果Adobe显示已成功交付,但设备未显示实时活动:
|
| accordion |
|---|
| 5. 上报至Adobe支持 |
|
如果您已完成所有步骤,但问题仍未解决,请通过以下方式联系Adobe客户关怀团队: 必需的信息:
|
预检查
-
已验证的以前方案:
- 配置文件具有有效的
pushNotificationDetails,包括当前的FCM令牌、Android包名称和platform: "fcm"。 - Campaign表面定位正确的Android应用程序并使用匹配的FCM凭据。
- 对于同一
notification_id(或广播的topic_name),fcm有效负载有效并且其timestamp比上一个事件新。 - 开始、更新和结束事件使用相同的
notification_id。 单一事件使用相同的FCM注册令牌;不需要单独的更新令牌。
- 配置文件具有有效的
-
已确认API调用:
- API调用返回了HTTP 202(已接受)。 这将确认接受请求,而不是交付或设备呈现。
- 活动ID和收件人详细信息正确。 对于广播,请验证受众ID和FCM主题。
调试步骤
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1. 解释发送错误 | |||||||||||||||||||||
|
如果营销活动报告未显示任何发送错误,请跳过此步骤。 否则,请将 错误原因 表中的错误与以下常见的FCM错误进行匹配:
|
| accordion | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 查看用户档案中的消息反馈事件 | ||||||||||||||||||
如果 |
| accordion |
|---|
| 3. 在Assurance中检查FCM投放 |
|
在连接的Android测试设备上使用Assurance。
|
| accordion |
|---|
| 4. 检查设备端行为 |
|
如果Adobe显示已成功交付,但设备没有显示或更新实时活动:
|
| accordion |
|---|
| 5. 上报至Adobe支持 |
|
如果您已完成所有步骤,但问题仍未解决,请通过以下方式联系Adobe客户关怀团队: 必需的信息:
|
场景4:实时活动更新令牌未同步 scenario-4-live-activity-update-token-not-synced
[仅适用于单一用例]{class="badge informative"}
[仅适用于iOS]{class="badge positive"}
实时活动从设备开始,但接受的update或end API请求不会更新或取消它。 可能的原因是 每个实例的Live活动更新令牌 尚未同步到Adobe的系统。 完成以下检查以确认令牌同步是否是问题。
了解更新令牌
当在设备上启动实时活动时,iOS会为该特定实时活动实例生成一个唯一的更新令牌。 以下项需要此令牌:
- 向实时活动发送更新
- 远程结束实时活动
每个实时活动实例都有自己的唯一更新令牌。 Adobe需要此令牌来提供更新和结束事件。
预期行为
要使更新和结束事件正常工作,必须发生以下情况:
- 在设备上成功启动实时活动。
- 设备为该Live活动实例生成更新令牌。
- Mobile SDK可捕获更新令牌并将其发送到Adobe。
- 更新令牌已同步并存储在Adobe的系统中。
- 后续的更新/结束API调用使用此令牌进行交付。
预检查:
调试步骤
-
打开Assurance会话。
-
请确保会话在设备上启动实时活动时处于活动状态。
-
筛选或搜索具有
eventType = "liveActivity.updateToken"的事件。 -
选择事件并检查有效负载:
- 验证
token字段是否包含有效的更新令牌字符串。 - 检查
liveActivityID是否与您的实时活动实例匹配。 - 确认
activityType与您的attributes-type匹配。
- 验证
-
如果找不到事件:
- SDK未生成或捕获更新令牌。
- 检查用户是否授予了实时活动权限。
- 验证是否已在设备上成功启动实时活动。
- 确认移动设备SDK已正确集成以捕获更新令牌。
-
如果找到该事件,请继续执行步骤2。
-
在Journey Optimizer中导航到客户 > 配置文件。
-
搜索并打开配置文件。
-
选择 事件 选项卡。
-
查找
liveActivity.updateToken事件。 -
检查事件详细信息:
- 验证时间戳是否为最近时间戳(与实时活动开始时间匹配)。
- 确认
token和liveActivityID存在。 - 确保
activityType正确。
-
如果在配置文件中未找到事件:
- 可能尚未将更新令牌事件引入配置文件。
- 等待5-10分钟,然后重新检查。
- 如果15分钟后仍然缺失,则可能存在事件摄取问题。
-
如果找到该事件,则表示已同步更新令牌。 继续执行步骤3。
-
在Assurance会话中,执行更新或结束API调用。
-
在 事件列表 中,查找实时活动投放事件(APNs推送事件)。
-
检查事件以指示:
- 推送通知已发送到APN。
- 来自APN的响应(成功或错误)。
- 投放确认。
-
如果存在APNs投放事件:已发送推送通知。 如果设备仍未更新,则问题可能出在设备端(应用程序无法处理推送、网络问题等)。
-
如果缺少APNs投放事件:更新令牌可能未正确存储,或者未与Adobe系统中的用户档案关联。
-
如果存在错误事件:检查错误详细信息中的特定失败原因(无效令牌、APN被拒绝等)。
场景5:通过API检查执行状态 scenario-5-checking-execution-status-via-the-api
[仅适用于单一用例]{class="badge informative"}
触发单一实时活动后,GET消息执行API返回执行的当前状态。 使用它确认执行是已排队、进行中、已完成还是失败,而无需等待反馈事件进入数据集。
executionId是触发器响应中返回的消息ID。 对于单一执行,它的前缀为HUOC-。
终结点和示例请求
终结点: GET https://cjm.adobe.io/imp/message/executions/{executionId}
curl --location 'https://cjm.adobe.io/imp/message/executions/HUOC-123456' \
--header 'x-gw-ims-org-id: <IMS_ORG_ID>' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'x-sandbox-name: <SANDBOX_NAME>' \
--header 'x-sandbox-id: <SANDBOX_UUID>' \
--header 'x-api-key: <API_KEY>'
HTTP响应代码
执行状态值
200响应中的status字段指示执行进度:
PENDINGINPROGRESSCOMPLETEDFAILED200响应还返回executionType (unitary或batch)、executionRunMode (default或test)以及包含元数据(campaignId、journeyId、batchInstanceId、资产信息)的source块,这些元数据将执行绑定回触发的营销活动或历程。
场景6:广播营销活动配置和有效负载问题 broadcast-config
[仅适用于广播用例]{class="badge informative"}
本节介绍特定于广播实时活动的故障排除方案,这些方案需要与单一营销活动不同的调试方法。
当配置文件具有有效令牌,但受众成员的实时活动未显示、更新或按预期运行时,问题通常源于以下原因之一:
- 营销活动未配置为API触发的营销。
- API有效负载缺少
audience或iOS上的平台特定广播标识符:input-push-channel或Android上的topic_name。 - 有效负载字段与iOS
ActivityAttributes实现或Android样式提供程序映射不匹配。 - Apple推送渠道配置不正确,或Android设备未订阅FCM主题。
此疑难解答方案适用于广播营销活动中的所有实时活动事件: start、update和end。
预检查:
-
促销活动类型:
- 验证是否将营销活动创建为API触发的营销(基于广播/受众的营销活动需要)。
- 确认已在Campaign配置中定义了受众。
-
配置文件和令牌验证:从受众中采样多个配置文件以验证它们是否具有有效的
liveActivityPushNotificationDetails。 有关详细的验证步骤,请按照方案1操作。
调试步骤
| accordion |
|---|
| 1. 验证Campaign受众配置 |
|
| accordion | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 验证广播API有效负载结构 | |||||||||||||||||||||||||||||
|
广播有效负载结构不同于单一营销活动。 验证有效负载是否遵循正确的广播格式。 广播的必填字段:
常见有效负载问题:
关键广播特定字段:
始终使用最新的时间戳:
可选字段:
有关完整的API规范,请参阅Adobe Journey Optimizer消息传送API文档。 |
| accordion | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 使content-state、attributes和input-push-channel与iOS实施保持一致 | |||||||||||||||||||||||||||||||
|
请确保有效负载字段与iOS应用程序的
您的自定义
包括
关键:
关键验证点:
常见错误:
|
| accordion |
|---|
| 4. 使用Assurance进行测试 |
|
使用Assurance验证API执行和有效负载投放:
|
预检查:
- 营销活动类型:验证营销活动是否为API触发的营销,以及是否定义了受众。
- 配置文件和令牌验证:对多个受众配置文件进行采样以验证它们是否具有带
platform: "fcm"的有效pushNotificationDetails。 按照方案1中的Android检查操作。 - 主题订阅:确认测试设备已订阅用于广播的FCM主题。
调试步骤
| accordion |
|---|
| 1. 验证Campaign受众配置 |
|
| accordion | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 验证广播API有效负载结构 | ||||||||||||||||||||||||||||||||
|
Android广播使用FCM主题。 包括 广播开始有效负载示例:
将示例时间戳替换为当前Unix纪元时间(以秒为单位)。 将 常见有效负载问题:
关键广播特定字段:
时间戳和可选字段:
有关完整的API规范,请参阅Adobe Journey Optimizer消息传送API文档。 |
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 验证主题订阅和应用程序渲染 | |||||||||||||||||||||
常见错误:
有关其他字段和示例,请参阅Android广播有效负载示例。 |
| accordion |
|---|
| 4. 使用Assurance进行测试 |
|
在作为受众的一部分并订阅了广播主题的已连接Android测试设备上使用Assurance 。
|
场景7:配置文件不在受众中或过时的受众快照中 scenario-7-profile-not-in-audience-or-stale-audience-snapshot
[仅适用于广播用例]{class="badge informative"}
在此方案中,营销活动和有效负载已正确配置,但特定用户档案不会接收实时活动。 这通常发生在以下情况中:
- 用户档案不是链接到营销活动的受众的成员。
- 受众是批处理受众,包含配置文件数据的过期快照。
- 配置文件的推送令牌详细信息(iOS上的
liveActivityPushNotificationDetails或Android上的pushNotificationDetails)最近已更新,但尚未反映在受众快照中。
此疑难解答场景专门适用于使用基于受众的定位的广播营销活动。
了解受众评估
Adobe Experience Platform使用不同的受众评估方法来确定何时在受众中反映配置文件更新:
预检查
-
营销活动和有效负载验证:
- 为平台完成方案6中的检查,以确保营销活动和有效负载正确。
- 验证API有效负载中的
audience.id是否与营销活动配置匹配。
-
配置文件存在:请确认Adobe Experience Platform中存在包含有效推送令牌详细信息的配置文件。 按照方案1中的检查操作。 要查找的详细信息取决于平台:
- iOS:
liveActivityPushNotificationDetails包含有效令牌。 - Android:
pushNotificationDetails,其中包含当前FCM注册令牌、与Android包名称platform: "fcm"匹配的appId以及denylisted: false。
- iOS:
-
主题订阅(仅限Android):确认设备已订阅
topic_name中指定的确切FCM主题。 受众成员资格不会使设备订阅主题。 遵循方案6中的Android主题订阅检查。
调试步骤
首先,确认应接收实时活动的配置文件是否实际属于受众。
-
导航到Adobe Experience Platform中的受众。
-
使用营销活动中的
audience.id搜索并打开受众。 -
单击 浏览 或 示例配置文件 查看受众成员。
-
使用命名空间和身份值搜索测试配置文件。
-
如果在受众中未找到配置文件:
- 配置文件不符合受众标准或区段规则。
- 查看受众定义以了解成员资格要求。
- 更新用户档案数据或受众定义以包含用户档案。
- 等待受众评估完成(请参阅步骤2)。
-
如果在受众中找到配置文件:请继续执行步骤2以检查数据新鲜度。
确定受众使用的是批处理、流式评估还是边缘评估,因为这决定了数据新鲜度。
| note |
|---|
| NOTE |
| 受众评估不会注册推送令牌或将Android设备订阅到FCM主题。 它仅确定受众快照包含哪些配置文件数据。 |
-
在 受众详细信息 页面上,检查评估方法:
- 批次:按计划每天评估一次。
- 流:在发生配置文件更新时实时评估。
- Edge:在边缘位置实时评估。
根据评估方法执行相应的故障诊断步骤:
如果受众使用批次评估:
-
了解批次受众限制:
- 每天评估一次批量受众(通常在一夜之间)。
- 受众快照可能长达24小时。
- 如果配置文件最近注册或刷新了推送令牌详细信息(iOS上为
liveActivityPushNotificationDetails,Android上为pushNotificationDetails),则更新的详细信息可能不在当前快照中。 - 直到下一次批量评估才会反映用户档案的更新。
-
检查上次评估的时间:
- 在受众详细信息中,查找 上次评估 时间戳。
- 如果个人资料的推送令牌详细信息在此时间戳后更新,则受众快照不包括当前令牌。
-
解决陈旧数据:
-
选项1:等待计划的批次评估
- 下一次批量评估将包括更新的用户档案数据。
- 每天自动发生一次。
- 最适合非紧急情况。
-
选项2:触发按需受众评估
- 导航到AEP中的受众。
- 选择受众。
- 单击 立即评估 或按需激活。
- 等待评估完成(这可能需要几分钟到几小时,具体取决于受众规模)。
- 验证配置文件现在是否更新了受众快照中的数据。
- 重试广播API调用。
-
如果受众使用流式评估:
-
了解流受众行为:
- 发生配置文件更新时,流式受众会实时评估。
- 新用户档案:如果符合区段标准,则在创建后不久即获得资格。
- 已更新配置文件:更新后不久即获得资格或取消资格。
- 现有未更改的用户档案:除非进行更新,否则不会重新评估。
-
识别问题:
- 如果某个用户档案已存在并符合区段标准,但该用户档案未发生更新,则可能无法将其添加到新创建的流受众。
- 配置文件必须接收更新(任何属性更改)才能触发重新评估。
-
解决问题:
-
对于新用户档案:如果满足条件,则这些用户档案会自动获得资格。 无需执行任何操作。
-
对于没有最近更新的现有配置文件:
- 对用户档案进行细微更新(例如,更新时间戳字段)。
- 这会触发流式评估并将配置文件添加到受众。
- 替代方法:为现有用户档案使用批量受众或边缘受众。
-
高级:通过数据集查询进行调试 advanced-debugging-via-dataset-queries
message.feedback个事件,其架构路径和feedbackStatus值如下所示。sent状态表示已移交给推送提供程序: iOS上的APN或Android上的FCM。受众:开发人员和数据工程师。 需要通过Adobe Experience Platform查询服务以SQL方式访问Journey Optimizer数据集。
何时使用: Assurance仅限于测试活动会话期间连接的设备。 使用数据集查询调查生产最终用户报告的问题,或审核事实后的投放历史记录。 数据集会公开与Assurance插件相同的生命周期和失败信息。
定位数据集
-
在Journey Optimizer中,导航到数据管理
>数据集。 -
启用 显示系统数据集 切换功能,并打开AJO消息反馈事件数据集。
请注意详细信息页面上显示的确切表名。 下面的查询使用ajo_message_feedback_event_dataset,如果它不同,请将其替换为实际表名。 有关此数据集的字段,请参阅Adobe Journey Optimizer架构引用。
按实时活动ID查询
当您知道实时活动ID(例如,订单UUID或装运跟踪ID),并希望每个反馈事件在整个生命周期内都与其关联时,可使用此选项。
SELECT
timestamp,
identitymap,
_experience.customerJourneyManagement
.messageDeliveryfeedback.feedbackStatus AS status,
_experience.customerJourneyManagement
.messageDeliveryfeedback.messageFailure.reason AS failure_reason,
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.event AS la_event,
_experience.customerJourneyManagement
.messageExecution.campaignID AS campaign_id,
_experience.customerJourneyManagement
.messageExecution.batchInstanceID AS batch_id,
_id
FROM ajo_message_feedback_event_dataset
WHERE
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.liveActivityID
= '<YOUR_LIVE_ACTIVITY_ID>'
AND eventtype = 'message.feedback'
ORDER BY timestamp ASC
按ECID查询
当受影响配置文件的ECID已知时,可使用此选项。 使用从配置文件检索到的ECID值替换<YOUR_ECID>。
SELECT
timestamp,
_experience.customerJourneyManagement
.messageDeliveryfeedback.feedbackStatus AS status,
_experience.customerJourneyManagement
.messageDeliveryfeedback.messageFailure.reason AS failure_reason,
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.event AS la_event,
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.liveActivityID AS la_id,
_experience.customerJourneyManagement
.messageExecution.campaignID AS campaign_id,
_id
FROM ajo_message_feedback_event_dataset
WHERE
identityMap['ECID'][0].id = '<YOUR_ECID>'
AND eventtype = 'message.feedback'
ORDER BY timestamp ASC
identityMap是结构化MAP类型,而不是字符串。 使用上面所示的数组和结构访问器语法。 字符串函数(如LIKE)将返回DATATYPE_MISMATCH错误。identityMap中存储ECID。 如果受影响的配置文件由自定义命名空间而不是ECID标识,请首先解析ECID:在AEP中导航到配置文件,使用自定义命名空间和标识值搜索配置文件,并从配置文件的标识详细信息中检索ECID。 在上面的查询中使用该ECID值。feedbackStatus值
senterrorfailure_reason以了解详细信息denylistexcludedelayduplicatebouncela_event字段,数据集记录初始投放事件的remotestart,而不是start。 在按事件类型进行查询时进行相应的筛选。解释已发送状态 interpreting-the-sent-status
sent的feedbackStatus确认Journey Optimizer已成功将通知传递给推送提供程序(iOS上的APN,Android上的FCM)。 它 不 确认已在设备上呈现实时活动。
在移交给推送提供程序后,数据集不会确认设备渲染。 从数据集中无法观察到设备端故障,例如操作系统限制、提供商和设备之间的网络中断或iOS上达到8小时的实时活动持续时间限制。
如果feedbackStatus为sent,但设备上未显示实时活动,请调查Journey Optimizer投放管道外的行为。 使用Assurance或应用程序级别的日志记录(包括Android上的logcat)来诊断设备端行为。
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page provides a systematic approach to diagnose why Live activities fail to appear, update, or end even when the API returns HTTP 200, covering profile and token, campaign configuration, payload, and delivery issues for unitary and broadcast use cases on iOS and Android.
Intents:
- Distinguish the unitary (API-triggered Transactional) and broadcast (API-triggered Marketing) debugging paths
- Verify profile existence and Live activity push token sync (Scenario 1)
- Validate campaign surface, Activity type, and API payload structure (Scenario 2)
- Analyze delivery failures via campaign reports and
message.feedbackevents (Scenario 3) - Diagnose unsynced iOS update tokens (Scenario 4) and check unitary execution status via the GET Message Execution API (Scenario 5)
- Troubleshoot broadcast payload and audience-freshness issues (Scenarios 6 and 7) and query the feedback dataset directly (Advanced)
Glossary:
-
pushNotificationDetails: The AEP profile attribute used for Android FCM registration-token details, includingappId,platform, anddenylisted(product-specific) -
topic_name: The FCM topic subscribed to by target Android devices for broadcast Live activities (product-specific) -
Push-to-start token: An iOS APNs token used for remote start; registered by the mobile SDK and stored on the AEP profile (product-specific)
-
Update token: A per-instance APNs token generated when an iOS Live activity starts; required for iOS unitary
updateandendevents. Android uses the same FCM registration token for start, update, and end; no separate update token is required (product-specific) -
input-push-channel: A unique channel identifier created on the Apple Developer Portal for iOS broadcast Live activities (product-specific) -
liveActivityData: A required property on the Adobe SDKLiveActivityAttributesprotocol; the iOS examples includeliveActivityIDfor unitary orchannelIDfor broadcast (product-specific) -
channelID: The value inliveActivityData.channelID; must exactly matchinput-push-channelfor iOS broadcasts (product-specific) -
attributeType / attributes-type: The name of the Swift
ActivityAttributesstruct; stored asattributeType(camelCase) on the profile and sent asattributes-type(hyphenated) in APS JSON — the same value in different representations (product-specific) -
liveActivityPushNotificationDetails: The AEP profile attribute that stores a device’s push-to-start token,appId,platform, andattributeType(product-specific) -
APS payload: The iOS JSON structure sent under
context.requestPayload.aps, containing the event,content-state, and control fields;attributesincludes the iOS struct fields for start events (product-specific) -
Assurance: A debugging tool limited to test devices connected during an active session; use dataset queries for production end-user diagnostics (product-specific)
-
topic_name(Android): The shared FCM topic through which subscribed devices receive broadcast events; the Android equivalent of iOSinput-push-channel -
notification_id(Android): Client-generated identifier for a Live activity instance; keep it unchanged across start, update, and end events to target the same instance -
timestamp(Android): Message ordering key, expressed in epoch seconds -
when(Android): Optional notification display time, expressed in epoch seconds; it does not control message ordering -
dismiss_after(Android): Used only for end events; specifies how many seconds the completed Live activity remains visible before removal
Guardrails:
-
Android audience membership does not subscribe a device to the FCM topic; verify topic subscription separately from audience evaluation.
-
Use API-triggered Transactional campaigns for unitary Live activities and API-triggered Marketing campaigns for broadcasts.
-
The High Throughput option must not be enabled, since it is incompatible with Live activity.
-
Assurance sessions are for test and QA devices only; end-user production devices are not connected to Assurance.
-
Android: unitary Live activities use the same regular FCM push token to start, update, and end, and no separate activity tokens are required; broadcast events reach subscribed devices through the shared FCM topic identified by
topic_name. -
Android
timestampmust strictly increase for every event with the samenotification_id(ortopic_namefor broadcasts); updates are displayed only if their timestamp is newer than the last processed value, and older or equal timestamps are ignored. -
Android
action_type/action_uriare not read by the current Android SDK. -
iOS requirements: a physical iOS device on iOS 16.1 or later; the Xcode Simulator supports local start only (remote push via APNs is not supported on Simulator); remote start from Assurance requires iOS 17.1 or later, a valid push-to-start token, and a valid channel configuration; Adobe Experience Platform Mobile SDK 5.11.0 or later.
-
Batch audiences may be up to 24 hours stale (batch evaluation, once daily); this audience-freshness risk is not applicable to unitary use cases.
-
The first time a Live activity starts on a device, iOS shows a one-time permission prompt; the user must tap “Allow” for update tokens to be generated and synced.
-
For iOS broadcasts,
input-push-channelmust exactly matchliveActivityData.channelID; a mismatch causes delivery failures. -
For iOS, a
feedbackStatusofsentconfirms hand-off to APNs only, not device rendering; device-side failures and the 8-hour Live activity duration limit are not observable from the dataset.
Terminology:
- Canonical name: API Triggered Campaign — Acronym: n/a — campaign types used for Live activities: API-triggered Transactional (unitary), API-triggered Marketing (broadcast)
- Synonyms: “attributeType” = “attributes-type” (the same value; camelCase on the profile, hyphenated in APS JSON)
- Do not confuse:
input-push-channel(in the iOS APS payload) ≠liveActivityData.channelID(in the iOS attributes); their values must match for broadcasts. - Do not confuse: “Push-to-start token” (starts an iOS Live activity, stored on the profile) ≠ “Update token” (updates or ends an iOS unitary instance, per instance)
- Do not confuse: “Unitary” (API-triggered Transactional, individual profile) ≠ “Broadcast” (API-triggered Marketing, audience segment)
- Do not confuse: execution statuses “
PENDING” ≠ “INPROGRESS” ≠ “COMPLETED” ≠ “FAILED” - Do not confuse:
feedbackStatus“sent” ≠ “error” ≠ “exclude” ≠ “delay” - Do not confuse: “
timestamp” (iOS: the current Unix epoch time in seconds for every call; Android: the ordering key that must strictly increase pernotification_idortopic_name) ≠ “when” (Android: optional notification display time that does not control ordering) - Do not confuse:
la_eventvalue “remotestart” (recorded in the dataset for initial delivery) ≠ “start” (theeventfield value in the payload)
FAQ:
- Q: Why does the API return 200 OK but the Live activity does not appear? — A successful response (200 OK) does not guarantee the Live activity appears; the delivery can fail at multiple points, from API request validation through device rendering, so work through Scenarios 1 to 3.
- Q: Can I use Assurance for production end-user devices? — No; Assurance sessions are for test and QA devices only. For production diagnostics, use the dataset queries.
- Q: Why do update and end calls fail after the Live activity started? — The per-instance update token may not be synced; the user must have tapped “Allow” on the one-time permission prompt for update tokens to be generated (Scenario 4).
- Q: How do I check execution status programmatically? — Use the GET Message Execution API; for unitary executions the
executionIdis prefixed withHUOC-, and thestatusfield returnsPENDING,INPROGRESS,COMPLETED, orFAILED. - Q: What does a
feedbackStatusofsentmean on iOS? — It confirms Journey Optimizer successfully handed the notification to APNs; it does not confirm that the Live activity was rendered on the device. - Q: Why are some audience members not receiving a broadcast? — The profile may not be in the audience, or a batch audience snapshot may be up to 24 hours stale; trigger on-demand evaluation or ensure a streaming update occurs (Scenario 7).
Personas:
- marketer: Can open the Reports button on a Live activity Campaign and select View all time report to check Sending Statistics metrics. Can review the Live activity lifecycle section for Remote starts, Updates, Ends, and Totals count figures. The page states that if Send errors are greater than 0, check the Error Reasons table. Where: “Check campaign reports”.
Onboarding:
- Level: Intermediate
- First minimal step: Navigate to Customer, then Profiles, in Journey Optimizer to search for a profile using the namespace and identity value from the API request.
- Success check: The profile is found, and you can continue with the token checks for your platform.
- Previous: Creating the Live activity message before triggering it: Create a Live activity message (mobile-live/create-mobile-live.md)
- Next: Learning more about Live activity campaign reporting metrics: Campaign Live activity report (reports/campaign-global-report-cja-activity.md)