En esta página: Diagnostique sistemáticamente por qué sus actividades Live no aparecen, actualizan o finalizan para que pueda resolver los problemas de token de perfil, configuración de campaña, carga útil y entrega en los casos de uso unitario y de difusión.
Las actividades en directo en Adobe Journey Optimizer permiten actualizaciones dinámicas en tiempo real en las pantallas de bloqueo de iOS y en las islas dinámicas. Solo se pueden activar y administrar mediante campañas activadas por API.
Tipos de casos de uso:
- Unitario: segmentado individualmente, transaccional (campañas transaccionales activadas por API)
- Difusión: Entrega en masa dirigida a audiencias (campañas de marketing activadas por API)
Un desafío frecuente con las actividades en directo es cuando la llamada de la API para almacenar en déclencheur o actualizar una actividad en directo devuelve una respuesta correcta (200 OK), pero la actividad en directo no aparece ni se actualiza en el dispositivo del usuario. Esta desconexión entre la confirmación de la API y el comportamiento real del dispositivo se puede producir en varios puntos de la canalización de envíos. Esta guía proporciona un enfoque sistemático de solución de problemas para identificar dónde falla el envío, y examina cada fase desde la validación de la solicitud de API hasta el procesamiento del dispositivo.
Problemas más comunes
Explicación de los dos casos de uso
Antes de depurar, confirme qué caso de uso se aplica a la campaña. La causa raíz y la ruta de depuración difieren significativamente entre ellas.
recipients[].userIdaudience.idinput-push-channel (por instancia de difusión)input-push-channel que inicioGlosario de terminología
update y end. Cada instancia de actividad Live tiene su propio token de actualización único.LiveActivityAttributes de Adobe SDK. Para unitario, contiene liveActivityID; para difusión, contiene channelID. Debe incluirse en el campo attributes de las cargas útiles del evento de inicio.input-push-channel. Debe coincidir exactamente con liveActivityData.channelID en la carga de difusión.ActivityAttributes. Se almacena como attributeType (camelCase) en atributos de perfil de AEP y se envía como attributes-type (con guiones) en cargas JSON de APS. Son el mismo valor en diferentes representaciones.appId, platform y attributeType. Debe estar presente y ser válido para que funcione el inicio remoto.context.requestPayload.aps. Contiene los campos Evento de actividad en directo, content-state, attributes y control.Requisitos previos
Antes de efectuar la localización de averías, asegúrese de que dispone de:
La vista Actividades activas de Adobe Experience Platform Assurance valida la configuración de la aplicación, inspecciona los eventos de actividad y permite iniciar, actualizar o finalizar actividades de forma remota desde una sesión de prueba.
| note important |
|---|
| IMPORTANT |
| Las sesiones de Assurance son solo para dispositivos de prueba y control de calidad. Los dispositivos de producción del usuario final no están conectados a Assurance. Para los diagnósticos de producción, use la sección Avanzado: depurando a través de consultas de conjuntos de datos al final de esta guía. |
Requisitos
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Requisito | Detalles |
| dispositivo iOS | Dispositivo físico que ejecuta iOS 16.1 o posterior |
| Simulador De Xcode | iOS 16.1 o posterior solo inicio local, la inserción remota a través de APNS no es compatible con el simulador |
| Inicio remoto desde Assurance | iOS 17.1 o posterior, token push-to-start válido y configuración de canal válida |
| SDK móvil | Adobe Experience Platform Mobile SDK 5.11.0 o posterior |
| Session | Una sesión activa de Assurance. |
Tres pestañas
| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Tabulación | Lo que muestra |
| Información del cliente | Credenciales de dispositivo, perfil y App Store. Comprobación verde = configurado correctamente; alerta en línea = problema con una corrección sugerida. Se asigna directamente a las comprobaciones previas en cada uno de los casos siguientes. |
| Actividades | Actividades activas para el cliente seleccionado: tipo (unitario/difusión), ID, estado y recuento de eventos. Subpestañas: Información general (información básica + botón Enviar actualización), Flujo de actividad (cronología del ciclo vital con cargas útiles inspeccionables), Detalles de evento (inspección de carga útil completa por evento). |
| Eventos | Todos los eventos de Assurance para el cliente, incluidos los eventos de inicio, actualización y finalización de actividades en directo. |
Iniciar, actualizar y finalizar desde Assurance
Iniciar Actividad En Directo. abre un cuadro de diálogo para elegir el tipo de actividad registrada, elegir Unitario o Emisión, introducir un ID de canal de difusión (solo emisión) y editar una carga útil JSON de APS precargada. El botón está desactivado o devuelve un error si no se cumplen los requisitos de token de inserción a inicio, versión de iOS o configuración de canal.
Enviar actualización. en la pestaña Información general de una actividad existente, envía un evento Actualizar (insertar contenido nuevo) o Finalizar. Para la actualización unitaria, el complemento utiliza automáticamente el token de actualización de la actividad. Para la difusión, se dirige a todos los dispositivos suscritos al mismo ID de canal de difusión. Las cargas útiles deben ser un JSON válido y coincidir con el esquema de atributos de la actividad; en caso contrario, la solicitud se rechaza.
Consulte la documentación de Adobe Experience Platform Assurance para ver los pasos de configuración y conexión de sesión.
Vaya a la API de la campaña activada en Journey Optimizer y recupere lo siguiente:
- Nombre e ID de la campaña
- Versión de la campaña (si corresponde)
- Tipo de campaña: Transaccional (unitario) o Marketing (difusión)
- Configuración de superficie: la superficie de la aplicación de iOS utilizada para la actividad en directo
- Tipo de actividad: el nombre de estructura
AttributeTypeconfigurado en la campaña
Al realizar la llamada de API para almacenar en déclencheur la actividad en directo, guarde lo siguiente:
- Carga útil de solicitud de API, incluidos los identificadores de perfil y los datos de actividad en directo
- Respuesta de API que incluye código de estado, ID de mensaje e ID de solicitud
- Marca de tiempo del momento en el que se llamó a la API
- Punto de conexión utilizado, p. ej.
/campaign/{CAMPAIGN_ID}/execute
En la solicitud de API, recupere:
- Área de nombres del perfil, por ejemplo, ECID, correo electrónico, ID de cliente
- ID de perfil utilizado en la llamada de API
Asegúrese de que puede buscar este perfil en Adobe Experience Platform. Aprenda a buscar un perfil en la documentación de Experience Platform.
Recopile lo siguiente del dispositivo de prueba:
- Modelo de dispositivo, por ejemplo, iPhone 14 Pro
- Versión de iOS
- Identificador del paquete de aplicaciones
- Token push de APNS
- Estado de conectividad de red en el momento de la prueba
Casos comunes
Escenario 1: problemas de perfil o token push scenario-1-profile-or-push-token-issues
[Se aplica a los casos de uso unitario y de difusión]{class="badge positive"}
La API devuelve el valor HTTP 200, pero la actividad Live no aparece. Causas frecuentes:
- El perfil no existe en Adobe Experience Platform.
- El token push de la actividad activa no se ha sincronizado con el perfil.
- Los detalles de inserción de la actividad activa se sincronizan, pero contienen una configuración incorrecta, como
appIdoattributeTypeincorrectos.
Nota para casos de uso de difusión: Si a algunos perfiles de su audiencia les faltan tokens, solo esos perfiles no recibirán la actividad en directo. Muestre varios perfiles de su audiencia para diagnosticar problemas de tokens. Esto solo se aplica a eventos de inicio remotos, no a eventos de actualización o finalización.
Comprobaciones previas
-
Requisitos de la aplicación iOS:
- iOS 16.1+
NSSupportsLiveActivitiesse estableció enYESenInfo.plistActivityAttributesse implementó correctamente.
-
Integración de SDK móvil:
- Adobe Experience Platform Mobile SDK (mensajería SDK 5.11.0+)
Messaging.registerLiveActivitiesimplementado y llamado con el token de inserción de actividad en vivo.
Pasos de depuración
- En Journey Optimizer, vaya a Cliente
>Perfiles. - Busque utilizando el área de nombres y el valor de identidad de la solicitud de API.
- Si no se encuentra el perfil, este no existe o la ingesta no se ha completado. Cree el perfil o espere a que se produzca la ingesta antes de activar la actividad Live.
- Si se encuentra un perfil, continúe con el paso 2 a continuación para comprobar si el token push está sincronizado.
Puede utilizar Assurance para verificar el registro de tokens:
- En Assurance, en la lista Eventos, filtre o busque los eventos
eventType = "liveActivity.pushToStart". - Seleccione Event e inspeccione la carga útil.
- Compruebe que los valores de token, appId y attributeType estén presentes.
- Confirme si el evento se envió correctamente.
También puede registrar el perfil de Adobe Experience Platform.
- En Adobe Experience Platform, desde tu perfil, accede a la pestaña Eventos.
- Busque
liveActivity.pushToStarteventos. - Compruebe la marca de tiempo par y la carga útil.
Si no se encuentran eventos, la aplicación móvil no está llamando a Messaging.registerLiveActivity correctamente. Debe corregir la integración de SDK.
-
Desde tu perfil, accede a la pestaña Atributos.
-
Busque
liveActivityPushNotificationDetails. -
Compruebe la configuración del token:
code language-json { "liveActivityPushNotificationDetails": [ { "appId": "com.example.myapp", "token": "abc123def456...", "platform": "apns", "denylisted": false, "attributeType": "OrderTrackingAttributes", "identity": {} } ] }
Validar cada campo:
| table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 | ||
|---|---|---|
| Campo | Requisito | Problema común |
appId |
Debe coincidir exactamente con el identificador del paquete iOS | Disparidad entre los ID del paquete dev/prod |
attributeType |
Debe coincidir exactamente con el nombre de estructura de Swift ActivityAttributes (con distinción de mayúsculas y minúsculas) |
Error al escribir o nombre de estructura incorrecto |
platform |
Debe ser "apns" o "apnsSandbox" |
Valor de plataforma incorrecto |
denylisted |
Debe ser false |
Token marcado como no válido o exclusión del usuario |
token |
Token push de APN válido | Token caducado o aplicación reinstalada |
Si algún campo es incorrecto: actualice la aplicación móvil, vuelva a registrarse con Messaging.registerLiveActivities, espere de 5 a 10 minutos y vuelva a realizar la comprobación.
Si falta liveActivityPushNotificationDetails: el token aún no se ha sincronizado. Espere de 5 a 10 minutos después de ver el evento liveActivity.pushToStart en Assurance.
Escenario 2: problemas de configuración y carga útil de la campaña scenario-2-campaign-configuration-and-payload-issues
[Se aplica a los casos de uso unitario y de difusión]{class="badge positive"}
El perfil existe con tokens válidos, pero la actividad en directo no aparece. Esto puede deberse a lo siguiente:
- Configuración de superficie o canal incorrecta.
- Estructura de carga útil de API incorrecta.
content-stateyattributesno coinciden con la implementación de iOSActivityAttributes.- Antiguo
timestamp(crítico para la actualización/finalización).
Nota para casos de uso de difusión: la campaña debe ser Marketing activado por API (no transaccional). La carga útil utiliza audience en lugar de profile individual. Consulte esta sección para obtener información sobre la estructura de carga útil específica de difusión y documentación de Adobe Developer para obtener especificaciones completas de la API.
Comprobaciones previas
- La campaña es Transaccional activada por API (unitaria) o Marketing activada por API (difusión) y la opción Alto rendimiento debe estar no habilitada ya que es incompatible con la actividad en directo.
- Asegúrese de que el perfil existe y de que los tokens se sincronizan correctamente usando el escenario anterior.
Pasos de depuración
- En Journey Optimizer, abra su Campaña y vaya al menú Acciones.
- Comprueba tu configuración de actividad en vivo. La superficie debe configurarse para la aplicación de iOS con un identificador de paquete que coincida con el
appIdenliveActivityPushNotificationDetailsde su perfil. Por ejemplo, si su perfil tiene"appId": "com.example.myapp", la superficie debe segmentar esa misma aplicación. - Compruebe que el tipo de actividad de la configuración de su campaña coincida exactamente con el
attributeTypedelliveActivityPushNotificationDetailsde su perfil. Por ejemplo, si su perfil tiene"attributeType": "FoodDeliveryLiveActivityAttributes", la campaña debe especificar este mismo tipo de actividad.
Al ejecutar la campaña a través de la API, asegúrese de que la carga útil sigue la estructura correcta.
Carga útil unitaria:
| code language-json |
|---|
|
Problemas comunes de carga útil:
| table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 | ||
|---|---|---|
| Campo | Requisito | Problema común |
attributes-type |
Debe coincidir con el tipo de actividad de campaña y el perfil attributeType |
Discordancia o error tipográfico |
campaignId |
Debe coincidir con el ID de campaña activado | ID de campaña incorrecto o no presente |
content-available |
Debe ser 1 |
Falta un valor o es incorrecto |
event |
Debe ser "start", "update" o "end" |
Tipo de evento no válido |
timestamp |
Siempre debe ser la hora actual/más reciente de Unix epoch en segundos | Usar marca de tiempo antigua/en caché |
userId / namespace |
Debe coincidir con un perfil existente en AEP | El identificador de perfil no coincide |
Crítico: usar siempre la última marca de tiempo
- El campo
timestampdebe siempre ser el tiempo actual de Unix epoch (en segundos) en el momento en que se realiza cada llamada de API. - Esto se aplica a todos los tipos de eventos:
start,updatey especialmente aend. - Impacto en las actualizaciones/solicitudes de finalización: el uso de una marca de tiempo antigua o obsoleta provocará que las solicitudes de actualización y finalización no se realicen correctamente o que el dispositivo las ignore.
- NOT reutiliza marcas de tiempo de solicitudes anteriores o usa valores almacenados en caché.
- Genere una nueva marca de tiempo para cada llamada de API.
Campos opcionales (todos los tipos de eventos):
requestId: Identificador único para seguimiento (recomendado).alert: objeto contitleybodypara notificación (útil para llamar la atención sobre las actualizaciones).
Acerca de dismissal-date:
- Campo opcional que contiene Unix epoch time (seconds).
- Solo es relevante cuando
event: "end". - Especifica cuándo se debe eliminar automáticamente la actividad en directo del dispositivo.
- Si no se proporciona en el evento Fin, la actividad Live permanece visible hasta que el usuario la descarta.
- Debe ser una marca de tiempo futura (posterior a
timestamp).
Asegúrese de que la carga útil de la API coincida con la implementación de la aplicación de iOS ActivityAttributes. El protocolo LiveActivityAttributes de Adobe SDK amplía iOS ActivityAttributes y requiere una propiedad liveActivityData.
Validar la asignación:
-
Su
ActivityAttributesdebe implementar el protocoloLiveActivityAttributesde Adobe. Ejemplo: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 }Tenga en cuenta que Adobe SDK requiere el campo
liveActivityDatay que debe incluirse en todas las implementaciones. -
La carga útil de la API debe reflejar la estructura de iOS:
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" } } }
Lista de comprobación de validación:
-
Incluir todos los
ContentStatecampos encontent-state(requerido para todos los tipos de eventos). -
Incluir todos los campos de
LiveActivityAttributesenattributes(solo eventos de inicio), incluidos:liveActivityData(obligatorio; normalmente contieneliveActivityIDo un identificador similar)- Todos los campos personalizados de la estructura
-
Haga coincidir los nombres de los campos exactamente (con distinción de mayúsculas y minúsculas).
-
Hacer coincidir tipos de datos (String, Int, Bool, objetos anidados).
-
Conservar la estructura de objetos anidados.
Errores comunes:
| 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 | ||
|---|---|---|
| Problema | Impacto | Corregir |
Faltan liveActivityData en los atributos |
La actividad en directo no se inicia | Incluir siempre el objeto liveActivityData en el evento de inicio |
| Falta un campo obligatorio en el evento de inicio | La actividad en directo no se inicia | Añadir todos los campos de la estructura de iOS |
| Nombre de campo incorrecto (error tipográfico/caso) | Campo omitido o error de análisis | Igualar exactamente los nombres de los campos de iOS |
| Tipo de datos incorrecto | Error de análisis | Hacer coincidir tipos de datos de iOS |
| Falta un objeto anidado | Datos incompletos | Incluir todas las estructuras anidadas |
Incluyendo attributes en actualización/fin |
Innecesario, pero generalmente ignorado | Incluir solo attributes en el evento de inicio |
| Marca de tiempo antigua al actualizar/finalizar | El dispositivo ignora la actualización o el final | Generar siempre nueva marca de tiempo |
Para obtener más ejemplos, consulte Crear página de actividad en vivo.
Compruebe la ejecución de la API y la entrega de carga útil mediante Assurance:
-
Abra la sesión de Assurance.
-
Ejecute la llamada de la API para almacenar en déclencheur la actividad en directo.
-
En Lista de eventos, compruebe lo siguiente:
- Eventos de ejecución de Campaign.
- Eventos de entrega de actividad en directo.
- Eventos de error de validación de carga útil.
-
Revise las cargas útiles de evento para verificar:
- La carga útil se ha procesado correctamente.
- No se han producido errores de validación.
- La actividad en directo se ha enviado a APNS.
Escenario 3: errores de entrega y análisis de errores scenario-3-delivery-failures-and-error-analysis
[Se aplica a los casos de uso unitario y de difusión]{class="badge positive"}
En este caso, todas las comprobaciones anteriores han pasado:
- El perfil existe con tokens de inserción de actividad en directo válidos
- La campaña se ha configurado correctamente con la carga útil adecuada
- Se sincronizan los tokens de actualización (solo para eventos de actualización/finalización, caso de uso unitario)
Pero la actividad en directo sigue sin aparecer, actualizarse ni finalizar según lo esperado. El problema puede deberse al sistema de entrega de Adobe o al proveedor de servicios de notificaciones push (APN).
Nota para casos de uso de difusión: los informes muestran métricas entre todos los miembros de la audiencia. Algunos perfiles pueden tener éxito mientras que otros fallan.
Comprobaciones previas
-
Escenarios Anteriores Validados:
- El perfil existe con
liveActivityPushNotificationDetailscorrectos - La superficie de campaña y el tipo de actividad son correctos
- La carga útil de API es válida con la marca de tiempo actual
- Los tokens de actualización se sincronizan (para eventos de actualización/finalización)
- El perfil existe con
-
Llamada API confirmada:
- La llamada de API devolvió HTTP 200 (correcto)
- El ID de campaña y los detalles del destinatario son correctos
Pasos de depuración
-
Vaya a su Actividad en directo en Campaign.
-
Haga clic en el botón Informes.
-
Seleccione Ver informe de todo el tiempo.
-
Revise las secciones siguientes:
-
Compruebe las métricas Estadísticas de envío para comprender el éxito de la entrega:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Métrica Lo que significa Qué se debe buscar Objetivos Número de perfiles cualificados para la audiencia Debe incluir el perfil de prueba Envíos Total de notificaciones push intentadas Debe coincidir con sus llamadas a la API Entregados Entregado correctamente a los dispositivos Comparar con Envíos para ver la tasa de éxito Enviar errores Notificaciones push que no se han enviado Números altos Envío de exclusiones Perfiles excluidos por Adobe Journey Optimizer Compruebe si su perfil se ha excluido -
Si Enviar errores > 0, consulte la tabla Motivos del error para ver los códigos de error y los mensajes específicos:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 Error común Significado Resolución Token no válido El token de inserción no es válido o ha caducado Volver a registrar tokens de actividad activos desde el dispositivo Token no encontrado No hay ningún token válido asociado al perfil Comprobar que liveActivityPushNotificationDetailsexisteAPNS rechazadas El servicio de notificaciones push de Apple rechazó la notificación push Comprobación del certificado de APNS, ID de paquete, entorno Tiempo de espera de red No se puede acceder a APNS Problema transitorio; vuelva a intentar la llamada de API -
Si Enviar exclusiones > 0, compruebe la tabla Motivos de exclusión:
table 0-row-3 1-row-3 2-row-3 3-row-3 Exclusión común Significado Resolución Perfil excluido El usuario ha excluido las notificaciones Comprobar estado de consentimiento del perfil Token Token marcado como no válido Volver a registrar el token o comprobar el estado de la lista de bloqueados de la Perfil no apto El perfil no cumple los criterios de la campaña Revisar reglas de audiencia de campaña
-
Obtenga más información en la página de informe de campaña de actividades en vivo.
-
Vaya a Cliente > Perfiles en Journey Optimizer.
-
Busque y abra el perfil.
-
Seleccione la ficha Eventos.
-
Filtre o busque eventos con
eventType = "message.feedback". -
Busque eventos de comentarios que coincidan con el tipo
liveActivityIDyeventde su actividad en directo. -
Revise los siguientes campos clave:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 Campo Valores posibles Lo que significa feedbackStatussent,error,denylistResultado del envío del proveedor de servicios serviceProviderapns/apnsSandboxDebe ser APNS para actividades de iOS Live errorCodeCódigo numérico para nullCódigo de error específico de APNS si falla errorMessageDescripción del error para nullMensaje de error legible por un ser humano -
Si
feedbackStatus: "error":- Compruebe si hay errores APN específicos en
errorCodeyerrorMessage - Los errores comunes de APNS incluyen token caducado, certificado no válido e ID de paquete incorrecto
- Compruebe si hay errores APN específicos en
-
Si no se encuentra ningún evento de comentarios:
- Es posible que no se haya intentado la notificación push
- Compruebe si el perfil se ha excluido en los informes de campaña tal como se detalla en el paso 1 anterior.
-
Abra la sesión de Assurance, debe estar activa durante la llamada de API.
-
Ejecute la llamada de API (inicio, actualización o finalización).
-
En Lista de eventos, busque Eventos de entrega de actividades en directo.
-
Busque eventos relacionados con la entrega push de APNS.
-
Compruebe la existencia de las luces testigo siguientes:
- Solicitud push a APNS: Confirma que Adobe envió la notificación push a los servidores de Apple
- Respuesta de APN: Muestra si APN aceptó o rechazó la notificación push
- Estado de entrega: Indicación de éxito o error
-
Si se encuentran problemas, consulte los siguientes problemas comunes de entrega de APN:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Problema Síntoma en Assurance Resolución Certificado de APNS caducado Error de autenticación Renovar y cargar un nuevo certificado de APN Entorno incorrecto (dev vs prod) Error de coincidencia de tokens Asegúrese de que el certificado coincida con el tipo de creación de aplicación ID de paquete no coincidente Identificador de paquete no válido Verificar que el ID del paquete de certificados coincida con la aplicación Token caducado Error InvalidToken de APNS Volver a registrar tokens de actividad activos Limitación de velocidad Demasiadas solicitudes Reducir frecuencia de llamada de API
-
Compruebe las métricas del ciclo vital de la actividad en directo en el informe de Campaign.
En el informe de campaña, revise la sección Ciclo de vida de la actividad en directo:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 Métrica Qué comprobar Inicios remotos Debe mostrar el recuento de inicios activados por API Actualizaciones Debe mostrar el recuento de eventos de actualización Finaliza Debe mostrar el recuento de eventos finales Recuento de totales Volumen general del evento de actividad en directo Si estas métricas son cero o no coinciden con sus llamadas de API, hay un problema de envío entre Adobe y APNS.
-
Si Adobe muestra un envío correcto pero el dispositivo no muestra la actividad en directo:
- Compruebe si hay errores de actividad en directo en los registros de dispositivos iOS.
- Verifique que la aplicación esté en primer o segundo plano (no finalizada).
- Confirme que el dispositivo tiene conectividad de red.
- Realice pruebas en varios dispositivos para descartar problemas específicos del dispositivo.
- Compruebe que la versión de iOS sea 16.1 o posterior.
Si ha completado todos los pasos y el problema sigue sin resolverse, póngase en contacto con el Servicio de atención al cliente de Adobe con:
Información necesaria:
- ID y nombre de la campaña
- Área de nombres e ID de perfil
liveActivityIDde carga útil de API- Marcas de hora de llamadas API
- Capturas de pantalla de:
- Informes De Campaña (Estadísticas De Envío, Motivos De Error, Motivos De Exclusión)
- Eventos de perfil (
liveActivity.updateToken,message.feedback) - Sesión de Assurance que muestra eventos de envío
- Carga útil de solicitud de API completa
- Detalles del certificado de APNS (caducidad, entorno, ID de paquete)
Situaciones específicas unitarias
Escenario 4: el token de actualización de actividades activas no está sincronizado scenario-4-live-activity-update-token-not-synced
La actividad Live se inicia correctamente en el dispositivo, pero las llamadas a la API update o end subsiguientes (que devuelven HTTP 200) no se pueden actualizar o descartar la actividad Live. Esto ocurre cuando el token de actualización de la actividad en directo no está sincronizado correctamente con el sistema de Adobe.
Explicación de los tokens de actualización
Cuando se inicia una actividad Live en un dispositivo, iOS genera un token de actualización único para esa instancia de actividad Live específica. Este token es necesario para lo siguiente:
- Envío de actualizaciones a la actividad en directo
- Finalización remota de la actividad Live
Cada instancia de actividad Live tiene su propio token de actualización único. Adobe necesita este token para entregar eventos de actualización y finalización.
Comportamiento esperado
Para que funcionen los eventos update y end, debe ocurrir lo siguiente:
- La actividad en directo se inicia correctamente en el dispositivo.
- El dispositivo genera un token de actualización para esa instancia de actividad en directo.
- Mobile SDK captura y envía el token de actualización a Adobe.
- El token de actualización se sincroniza y almacena en el sistema de Adobe.
- Las llamadas de API posteriores para la actualización/finalización utilizan este token para la entrega.
Comprobaciones previas:
- Permiso de usuario: La primera vez que se inicia una actividad en directo en un dispositivo, iOS muestra un mensaje del sistema: “¿Permitir que [Nombre de aplicación] proporcione actualizaciones de actividades en directo?” El usuario debe pulsar “Permitir” para que se generen y sincronicen los tokens de actualización. Si el usuario pulsa “No permitir”, no se crea ningún token de actualización y las solicitudes de actualización/finalización fallarán. Se trata de un permiso único por aplicación.
- Validación de perfiles y campañas: complete las comprobaciones de Escenario 1 y Escenario 2 para garantizar que la configuración del perfil, los tokens y la campaña sea correcta.
Pasos de depuración
-
Abra la sesión de Assurance.
-
Asegúrese de que la sesión esté activa cuando se inició la actividad en directo en el dispositivo.
-
Filtre o busque eventos con
eventType = "liveActivity.updateToken". -
Seleccione el evento e inspeccione la carga útil:
- Compruebe que el campo
tokencontenga una cadena de token de actualización válida. - Compruebe que
liveActivityIDcoincida con su instancia de actividad en directo. - Confirme que
activityTypecoincide con suattributes-type.
- Compruebe que el campo
-
Si no se encuentra el evento:
- SDK no ha generado ni capturado el token de actualización.
- Compruebe si el usuario ha concedido permisos de actividad en directo.
- Compruebe que la actividad Live se haya iniciado correctamente en el dispositivo.
- Confirme que el SDK móvil está correctamente integrado para capturar los tokens de actualización.
-
Si se encuentra el evento, continúe con el paso 2.
-
Vaya a Cliente > Perfiles en Journey Optimizer.
-
Busque y abra el perfil.
-
Seleccione la ficha Eventos.
-
Busque
liveActivity.updateTokeneventos. -
Compruebe los detalles del evento:
- Compruebe que la marca de tiempo sea reciente (coincide con el momento en el que se inició la actividad en directo).
- Confirme que
tokenyliveActivityIDestán presentes. - Asegúrese de que
activityTypesea correcto.
-
Si el evento no se encuentra en el perfil:
- Es posible que el evento de token de actualización aún no se haya introducido en el perfil.
- Espere de 5 a 10 minutos y vuelva a efectuar la comprobación.
- Si sigue faltando después de 15 minutos, puede haber un problema de ingesta de evento.
-
Si se encuentra el evento, se ha sincronizado el token de actualización. Puede continuar con el paso 3.
-
En la sesión de Assurance, ejecute una actualización o termine la llamada a la API.
-
En la Lista de eventos, busque Eventos de entrega de actividades en directo (eventos push de APN).
-
Compruebe si hay eventos que indiquen:
- Notificación push enviada a APNS.
- Respuesta de APNS (éxito o error).
- Confirmación de envío.
-
Si el evento de envío de APNS está presente: Se envió la notificación push. Si el dispositivo sigue sin actualizarse, el problema puede estar en el dispositivo (la aplicación no gestiona la notificación push, los problemas de red, etc.).
-
Si falta el evento de envío de APNS: es posible que el token de actualización no se almacene correctamente o no esté asociado al perfil en el sistema de Adobe.
-
Si hay eventos de error: inspeccione los detalles del error por motivos de error específicos (token no válido, APN rechazados, etc.).
Escenario 5: Comprobación del estado de ejecución mediante la API scenario-5-checking-execution-status-via-the-api
[Solo se aplica a casos de uso unitarios (1:1)]{class="badge informative"}
Después de activar una actividad en directo unitaria, la API de ejecución de mensajes GET devuelve el estado actual de la ejecución. Utilícelo para confirmar si una ejecución está en cola, en curso, completada o fallida, sin esperar a que el evento de comentarios aterrice en el conjunto de datos.
executionId es el ID de mensaje devuelto en la respuesta de déclencheur. Para ejecuciones unitarias, tiene el prefijo HUOC-.
Punto final y solicitud de ejemplo
Extremo: 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>'
Códigos de respuesta HTTP
Valores del estado de ejecución
El campo status en una respuesta 200 indica un progreso de ejecución:
PENDINGINPROGRESSCOMPLETEDFAILEDLa respuesta 200 también devuelve executionType (unitary o batch), executionRunMode (default o test) y un bloque source con metadatos (campaignId, journeyId, batchInstanceId, información del recurso) que vinculan la ejecución de nuevo a la campaña o al recorrido que la desencadenó.
Situaciones específicas de difusión
Escenario 6: problemas de carga útil y configuración de la campaña de difusión broadcast-config
[Solo se aplica a los casos de uso de difusión]{class="badge informative"}
Esta sección cubre la resolución de problemas específicos de las actividades de difusión en directo, que requieren diferentes enfoques de depuración que las campañas unitarias.
Cuando los perfiles tienen tokens válidos pero la actividad en directo no aparece, actualiza ni se comporta como se espera para los miembros de la audiencia, el problema suele deberse a uno de los siguientes motivos:
- La campaña no está configurada como marketing activado por API.
- La carga útil de la API usa una estructura de difusión incorrecta (faltan
audienceoinput-push-channel). - Los campos
content-stateyattributesno coinciden con la implementación de iOSActivityAttributes. input-push-channelno se creó correctamente en el portal para desarrolladores de Apple.
Este escenario de solución de problemas se aplica a todos los eventos de actividad en directo de las campañas de difusión: start, update y end.
Comprobaciones previas:
-
Tipo de campaña:
- Compruebe que la campaña se ha creado como marketing activado por API (necesario para las campañas de difusión/basadas en audiencia).
- Confirme que se ha definido una audiencia en la configuración de la campaña.
-
Validación de perfil y token: muestree varios perfiles de la audiencia para comprobar que tienen
liveActivityPushNotificationDetailsválidos. Para ver los pasos de validación detallados, siga Ejemplo 1.
Pasos de depuración
-
Abra Campaña de marketing activada por API en Journey Optimizer.
-
Vaya a la sección Audiencia y verifique:
- Se selecciona una audiencia para la campaña.
- El ID de audiencia coincide con el utilizado en la carga útil de la API.
- La audiencia contiene los perfiles esperados.
-
Vaya a la sección Acciones.
-
Compruebe la configuración de actividad activa:
- La configuración debe establecerse para la aplicación de iOS con el identificador de paquete correcto.
- El tipo de actividad debe coincidir con
attributes-typeen su carga útil de API. Por ejemplo, si la carga útil contiene"attributes-type": "AirplaneTrackingAttributes", la campaña debe especificar este mismo tipo de actividad.
La estructura de carga útil de difusión difiere de las campañas unitarias. Compruebe que la carga útil sigue el formato de difusión correcto.
Campos obligatorios para la difusión:
| code language-json |
|---|
|
Problemas comunes de carga útil:
| 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 | ||
|---|---|---|
| Campo | Requisito | Problema común |
campaignId |
Debe coincidir con el ID de campaña de marketing activado | ID de campaña incorrecto o uso de una campaña transaccional |
audience.id |
Debe coincidir con una audiencia existente en AEP | El ID de audiencia o la audiencia no son correctos |
input-push-channel |
Necesario para difusión: identificador único de esta instancia de difusión | Falta o no coincide con channelID en liveActivityData |
timestamp |
Siempre debe ser la hora actual/más reciente de Unix epoch en segundos | Usar marca de tiempo antigua/en caché |
event |
Debe ser "start", "update" o "end" |
Tipo de evento no válido |
attributes-type |
Debe coincidir con el tipo de actividad de campaña | Discordancia o error tipográfico |
content-available |
Debe ser 1 |
Falta un valor o es incorrecto |
Campos críticos específicos de difusión:
-
input-push-channel:- Necesario para todas las actividades de difusión en directo.
- Sirve como identificador único para esta instancia de difusión específica.
- Todos los perfiles de la audiencia reciben actividades en directo vinculadas a este canal.
- Debe coincidir con
channelIDenliveActivityData.channelID(consulte el paso 3). - El cliente debe crear para
appIDen Apple Developer Portal. - Solo se pueden usar los canales creados para
appIDen concreto para difundir una actividad en directo en esa aplicación.
-
audience.id:- Debe hacer referencia a un segmento de audiencia válido creado en Adobe Experience Platform.
- Todos los perfiles de esta audiencia están segmentados para la actividad en directo.
- La audiencia debe estar activada y contener perfiles con
liveActivityPushNotificationDetailsválidos.
Usar siempre la marca de tiempo más reciente:
- El campo
timestampdebe ser siempre el tiempo de Unix epoch actual (en segundos) para cada llamada de API. - Este requisito se aplica a todos los tipos de eventos:
start,updateyend. - Crítico para actualizaciones/finalización: el uso de marcas de tiempo antiguas provoca que las solicitudes de actualización y finalización fallen.
- Genere una nueva marca de tiempo para cada llamada de API de difusión.
Campos opcionales:
dismissal-date: tiempo de Unix Epoch para el despido automático (solo relevante paraendeventos)alert: objeto contitleybodypara notificación
Consulte la documentación de la API de mensajería Adobe Journey Optimizer para obtener especificaciones completas de la API.
Asegúrese de que los campos de carga útil coincidan con la implementación ActivityAttributes de su aplicación iOS y de que input-push-channel coincida con channelID en liveActivityData.
- Revise la definición de Atributos de actividad de iOS.
Su estructura ActivityAttributes personalizada debe implementar el protocolo LiveActivityAttributes de Adobe:
| code language-swift |
|---|
|
- Asigne campos de iOS a la carga útil de la API de difusión.
Para todos los eventos, incluya attributes y content-state:
| code language-json |
|---|
|
Crítico: input-push-channel debe coincidir conchannelID
- El valor
input-push-channelen la raíz deapsdebe coincidir exactamente conchannelIDenliveActivityData. - En el ejemplo anterior, ambos valores son
"FEt0NgvLEfEAAOqA6AXdIQ==". - Esta coincidencia vincula la instancia de difusión con los datos de la actividad en directo.
- Un desajuste provoca errores de entrega.
Puntos de validación clave:
- Incluir todos los
ContentStatecampos encontent-statepara todos los tipos de eventos. - Incluir todos los campos personalizados
LiveActivityAttributesenattributessolo para eventos de inicio. - Para los eventos de inicio,
liveActivityData.channelIDdebe coincidir coninput-push-channel. - Los nombres de campo distinguen entre mayúsculas y minúsculas y deben coincidir exactamente.
- Los tipos de datos deben coincidir (String, Int, Bool, objetos anidados, etc.).
- Para los eventos de actualización/finalización, use el mismo
input-push-channelque el evento de inicio original.
Errores comunes:
| 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 | ||
|---|---|---|
| Problema | Impacto | Corregir |
Falta input-push-channel |
La difusión no funcionará | Agregar un ID de canal único para cada difusión |
input-push-channel no coincide con channelID |
La actividad en directo no se inicia | Asegúrese de que ambos valores sean idénticos |
Diferente input-push-channel para actualizar/finalizar |
La actualización o el final no llegarán a las actividades activas. | Usar el mismo ID de canal durante el ciclo vital |
Falta liveActivityData.channelID |
La actividad en directo no se vinculará a la difusión | Incluir channelID en atributos para el evento de inicio |
| Falta un campo obligatorio en el evento de inicio | La actividad en directo no se inicia | Añadir todos los campos de la estructura de iOS |
| Nombre de campo incorrecto (error tipográfico/caso) | Campo omitido o error de análisis | Igualar exactamente los nombres de los campos de iOS |
| Marca de tiempo antigua al actualizar/finalizar | Los dispositivos ignoran la actualización o el final | Generar siempre nueva marca de tiempo |
Compruebe la ejecución de la API y la entrega de carga útil mediante Assurance:
-
Abra la sesión de Assurance en un dispositivo de prueba que forme parte de la audiencia.
-
Ejecute la llamada de API de difusión.
-
En Lista de eventos, busque:
- Eventos de ejecución de Campaign.
- Eventos de entrega de actividad en directo.
- Eventos de error que indican errores de validación de carga útil.
-
Inspeccione las cargas útiles de eventos para confirmar:
- La carga útil se ha procesado correctamente.
- El
input-push-channelestá presente. - No se han producido errores de validación.
- Se han enviado actividades activas a APNS para miembros de la audiencia.
Escenario 7: el perfil no está en la instantánea de audiencia o de audiencia antigua scenario-7-profile-not-in-audience-or-stale-audience-snapshot
En esta situación, la campaña y la carga útil están correctamente configuradas, pero los perfiles específicos no reciben la actividad en directo. Esto suele ocurrir cuando:
- El perfil no es miembro de la audiencia vinculada a la campaña.
- La audiencia es una audiencia por lotes y contiene una instantánea obsoleta de los datos del perfil.
- Los tokens de actividad en directo del perfil se añadieron recientemente, pero aún no se han reflejado en la instantánea de audiencia.
Este escenario de solución de problemas se aplica específicamente a las campañas de difusión que utilizan direccionamiento basado en audiencias.
Explicación de la evaluación de audiencias
Adobe Experience Platform utiliza diferentes métodos de evaluación de audiencias que determinan cuándo se reflejan las actualizaciones de perfil en la audiencia:
Comprobaciones previas:
-
Validación de campaña y carga útil:
- Complete las comprobaciones en este escenario para asegurarse de que la campaña y la carga útil sean correctas.
- Compruebe que
audience.iden la carga útil de la API coincida con la configuración de la campaña.
-
El perfil existe: confirme que el perfil existe en AEP con
liveActivityPushNotificationDetailsválido.
Pasos de depuración
En primer lugar, confirme si el perfil que debe recibir la actividad en directo es realmente parte de la audiencia.
-
Vaya a Audiencias en Adobe Experience Platform.
-
Busque y abra la audiencia usando
audience.idde su campaña. -
Haga clic en Examinar o Perfiles de muestra para ver los miembros de la audiencia.
-
Busque el perfil de prueba con el área de nombres y el valor de identidad.
-
Si no se encuentra el perfil en la audiencia:
- El perfil no cumple los criterios de audiencia ni las reglas de segmentos.
- Revise la definición de la audiencia para comprender los requisitos de pertenencia.
- Actualice los datos del perfil o la definición de audiencia para incluir el perfil.
- Espere a que se complete la evaluación de audiencias (consulte el paso 2).
-
Si el perfil se encuentra en la audiencia: Continúe con el paso 2 para comprobar la actualización de los datos.
Identifique si la audiencia utiliza la evaluación por lotes o de flujo continuo, ya que esto determina la actualización de los datos.
-
En la página Detalles de audiencia, compruebe el método de evaluación:
- Lote: evaluado una vez al día según una programación.
- Transmisión en tiempo real: se evalúa en tiempo real cuando se producen actualizaciones de perfil.
- Edge: evaluado en ubicaciones de Edge en tiempo real.
Siga los pasos adecuados para la resolución de problemas según el método de evaluación:
Si la audiencia usa la evaluación por lotes:
-
Comprenda las limitaciones de audiencia por lotes:
- Las audiencias por lotes se evalúan una vez al día (normalmente de la noche a la mañana).
- La instantánea de audiencia puede tener hasta 24 horas de antigüedad.
- Si un perfil ha registrado recientemente tokens de actividad en directo, es posible que esos tokens no estén en la instantánea actual.
- Las actualizaciones de los perfiles no se reflejarán hasta la siguiente evaluación por lotes.
-
Comprobar cuándo se produjo la última evaluación:
- En los detalles de la audiencia, busque la marca de tiempo Última evaluación.
- Si las
liveActivityPushNotificationDetailsdel perfil se actualizaron después de esta marca de tiempo, la audiencia tiene datos obsoletos.
-
Resolver datos obsoletos:
-
Opción 1: esperar la evaluación programada por lotes
- La siguiente evaluación por lotes incluirá los datos de perfil actualizados.
- Esto sucede automáticamente una vez al día.
- Ideal para escenarios no urgentes.
-
Opción 2: evaluación de audiencia bajo demanda de Déclencheur
- Vaya a Audiencias en AEP.
- Seleccione el público.
- Haga clic en Evaluar ahora o en Activar bajo demanda.
- Espere a que se complete la evaluación (esto puede tardar entre minutos y horas según el tamaño de la audiencia).
- Compruebe que el perfil tiene ahora datos actualizados en la instantánea de audiencia.
- Vuelva a intentar la llamada de API de difusión.
-
Si la audiencia usa la evaluación de transmisión:
-
Comprender el comportamiento de la audiencia de streaming:
- Las audiencias de streaming evalúan en tiempo real cuándo se producen actualizaciones de perfil.
- Nuevos perfiles: Se califican poco después de la creación si cumplen los criterios del segmento.
- Perfiles actualizados: Califique o descalifique poco después de ser actualizado.
- Perfiles existentes sin cambios: No se vuelven a evaluar a menos que se produzca una actualización.
-
Identificar el problema:
- Si un perfil ya existe y cumple los criterios del segmento, pero no se produce ninguna actualización en ese perfil, es posible que no se añada a una audiencia de streaming recién creada.
- El perfil debe recibir una actualización (cualquier cambio de atributo) para volver a evaluar los déclencheur.
-
Resolver el problema:
-
Para nuevos perfiles: Se califican automáticamente si se cumplen los criterios. No se necesita ninguna acción.
-
Para perfiles existentes sin actualizaciones recientes:
- Realice una actualización menor del perfil (por ejemplo, actualice un campo de marca de tiempo).
- Esto déclencheur la evaluación de la transmisión y añade el perfil a la audiencia.
- Alternativa: Utilice una audiencia por lotes o una audiencia perimetral para los perfiles existentes.
-
Avanzado: Depuración mediante consultas de conjuntos de datos advanced-debugging-via-dataset-queries
Audiencia: desarrolladores e ingenieros de datos. Requiere acceso SQL a los conjuntos de datos de Journey Optimizer a través del servicio de consultas de Adobe Experience Platform.
Cuándo se debe usar: Assurance está limitado a los dispositivos de prueba conectados durante una sesión activa. Utilice consultas de conjuntos de datos para investigar los problemas notificados por los usuarios finales de producción o para auditar el historial de envíos después del hecho. El conjunto de datos expone la misma información de ciclo vital y de error que el complemento de Assurance.
Localización del conjunto de datos
-
En Journey Optimizer, vaya a Administración de datos
>Conjuntos de datos. -
Habilite la opción Mostrar conjuntos de datos del sistema y abra Conjunto de datos de evento de comentarios de mensajes de AJO.
Anote el nombre exacto de la tabla que se muestra en la página de detalles. Las consultas siguientes utilizan ajo_message_feedback_event_dataset, reemplácelo por el nombre real de la tabla si difiere.
Consulta por ID de actividad en directo
Utilícelo cuando conozca el Live Activity ID (por ejemplo, un UUID de pedido o un ID de seguimiento de envío) y desee que todos los eventos de comentarios estén vinculados a él durante todo el ciclo de vida.
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
Consulta por ECID
Utilícelo cuando conozca el ECID del perfil afectado. Reemplazar <YOUR_ECID> con el valor de ECID recuperado del perfil.
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 es un tipo de MAP estructurado, no una cadena. Utilice la sintaxis del descriptor de acceso array y struct que se muestra arriba. Las funciones de cadena como LIKE devolverán un error DATATYPE_MISMATCH.feedbackStatus, valores
senterrorfailure_reason para obtener detallesexcludedelayla_event, el conjunto de datos registra remotestart, no start, para los eventos de envío iniciales. Filtre según corresponda al consultar por tipo de evento.Interpretación del estado enviado
Un(a) feedbackStatus de sent confirma que Journey Optimizer entregó correctamente la notificación a APNS. No confirma not que la actividad en directo se haya representado en el dispositivo.
iOS no proporciona llamadas de retorno una vez que una notificación abandona los APN. Los errores del lado del dispositivo, como una restricción del sistema operativo, una caída de red entre APNS y el dispositivo o el límite de duración de la actividad de 8 horas en directo que se alcanza, no se pueden observar desde el conjunto de datos. Si feedbackStatus es sent pero no aparece ninguna actividad Live en el dispositivo, el problema está fuera de la canalización de Journey Optimizer. Utilice el complemento de Assurance o el registro en el nivel de aplicación para diagnosticar el comportamiento del lado del dispositivo.