Solución de problemas de mensajes dentro de la aplicación
Usa esta página para diagnosticar por qué los mensajes dentro de la aplicación no se entregan o no se muestran en un dispositivo. Para la configuración del dashboard (prioridad, desencadenantes, Segments y reelegibilidad), consulta las preguntas frecuentes sobre mensajes dentro de la aplicación.
Antes de depurar, añádete como usuario de prueba y revisa Envío de mensajes de prueba.
Empieza aquí: identifica tu síntoma
| Síntoma | Ir a |
|---|---|
| El mensaje dentro de la aplicación no se mostró para un usuario | Un usuario |
| El mensaje dentro de la aplicación no se mostró en una plataforma (Android, iOS o Web) | Una plataforma |
| El mensaje dentro de la aplicación de un paso de Canvas no se mostró | Mensajes dentro de la aplicación en Canvas |
| El mensaje dentro de la aplicación se mostró tarde o con retraso | Temporización y visualización retrasada |
| Las impresiones o los clics parecen incorrectos | Impresiones y análisis |
triggers faltantes o vacíos en los registros de eventos de usuario |
Solución de problemas de entrega |
| Los desencadenantes se devolvieron pero nada se muestra en el dispositivo | Solución de problemas de visualización específica por plataforma |
Los activos del mensaje dentro de la aplicación no se cargan (iOS, NSURLError -1008) |
Carga de activos (pestaña Swift) |
Ruta de investigación estándar
Usa este flujo de trabajo para cada incidente. Comienza en el paso 1.
- Confirma que se registra un inicio de sesión para el dispositivo de prueba. Los mensajes dentro de la aplicación se solicitan al inicio de sesión.
- Abre los registros de eventos de usuario y busca la solicitud del SDK para ese inicio de sesión. En Response Data:
- En el JSON sin procesar, confirma que
respond_withincluye"triggers": true. - La fila Requested Responses debe incluir
triggers. - Las filas Trigger In-App Message enumeran cada mensaje dentro de la aplicación devuelto para esa solicitud.
- Si no hay una clave
triggersni filas Trigger In-App Message, ve a Solución de problemas de mensajes no solicitados. - Si
triggersestá presente pero vacío ([]), ve a Solución de problemas de mensajes no devueltos. - Si hay filas Trigger In-App Message pero nada se muestra, ve a Solución de problemas de visualización específica por plataforma.
- Cada carga útil de desencadenante incluye un
type:inapp(estándar) otemplated_iam(requiere una solicitud de plantilla antes de mostrarse). Consulta Tipos de mensajes dentro de la aplicación.
- En el JSON sin procesar, confirma que
- Para la elegibilidad del lado del dashboard (Segment, reelegibilidad, límites de frecuencia, prioridad, grupos de control), consulta Solución de problemas de entrega y las preguntas frecuentes sobre mensajes dentro de la aplicación.
- Para problemas de visualización del lado del dispositivo (delegados, límites de velocidad, orientación, tiempo de espera de sesión), selecciona la pestaña de tu SDK en Solución de problemas de visualización específica por plataforma.
Mensajes dentro de la aplicación en Canvas
Síntoma: Un usuario entró en un paso de mensaje dentro de la aplicación en Canvas pero no vio el mensaje cuando se esperaba.
Tres comportamientos generan la mayoría de los tickets de Canvas y mensajes dentro de la aplicación:
- Visualización en la siguiente sesión: Los mensajes dentro de la aplicación en Canvas son elegibles en el siguiente inicio de sesión después de que se procese el paso, no inmediatamente a mitad de sesión. Consulta ¿Cuándo se envían los mensajes dentro de la aplicación en Canvas? en las preguntas frecuentes de Canvas.
- Validaciones de entrega en la entrada del paso: Si Validar audiencia al enviar el mensaje está habilitado en el paso de mensaje, la pertenencia al Segment y los límites de frecuencia se evalúan cuando el usuario entra en el paso, no en el momento de la visualización. Consulta Validaciones de entrega.
- Retraso y tiempo de espera de sesión: Si un usuario entra en un paso de retraso más largo que el tiempo de espera de sesión de tu SDK, puede iniciar una nueva sesión antes del paso de mensaje dentro de la aplicación. Es posible que el mensaje no se obtenga en el inicio de sesión cuando esperas que se muestre.
Para ventanas de disponibilidad, expiración y cero Envíos en los análisis de Canvas, consulta Mensajes dentro de la aplicación y entrega en las preguntas frecuentes de Canvas.

Los mensajes dentro de la aplicación en Canvas solo pueden ser desencadenados por eventos enviados a través del SDK, no por la REST API.
El mensaje dentro de la aplicación no se mostró para un usuario
Síntoma: Un usuario no recibió un mensaje dentro de la aplicación esperado; otros usuarios pueden no estar afectados.
Comprueba lo siguiente:
- ¿Estaba el usuario en el Segment al inicio de sesión, cuando el SDK solicita nuevos mensajes dentro de la aplicación?
- ¿Era el usuario elegible o reelegible según las reglas de segmentación de la Campaign o Canvas? Consulta Reelegibilidad para Campaigns y Canvas.
- ¿Se aplicó un límite de frecuencia?
- ¿Estaba el usuario en un grupo de control de la Campaign? Comprueba si la Campaign está configurada para pruebas A/B.
- ¿Se mostró en su lugar un mensaje dentro de la aplicación de mayor prioridad? Consulta ¿Pueden mostrarse varios mensajes dentro de la aplicación en la misma sesión? en las preguntas frecuentes de mensajes dentro de la aplicación.
- ¿Estaba el dispositivo en la orientación especificada por la Campaign?
- ¿Fue suprimido el mensaje por el intervalo mínimo predeterminado de 30 segundos entre desencadenantes? Consulta Anular el límite de velocidad predeterminado.
Luego sigue la ruta de investigación estándar.
El mensaje dentro de la aplicación no se mostró en una plataforma
Síntoma: Los mensajes dentro de la aplicación no se muestran en Android, iOS o Web, pero pueden funcionar en otras plataformas.
| Causa probable | Qué comprobar |
|---|---|
| Objetivo de Send To incorrecto | Confirma que la Campaign o el paso de Canvas apunta a Mobile Apps o Web Browsers según corresponda. Una Campaign solo para Web no se enviará a dispositivos Android. |
| Una UI personalizada o un controlador suprime la visualización | Revisa los delegados (móvil) o braze.subscribeToInAppMessage (Web). Consulta Personalización y la pestaña de tu SDK a continuación. |
| La integración nunca funcionó en esta plataforma | Confirma que esta plataforma y versión de la aplicación han mostrado mensajes dentro de la aplicación anteriormente. |
| El desencadenante no se activó en el dispositivo | El desencadenante debe ocurrir localmente a través del SDK. Una llamada a la REST API no puede desencadenar un mensaje dentro de la aplicación en el SDK. Consulta Desencadenar mensajes. |
triggers vacíos en los registros de eventos de usuario |
Segment, reelegibilidad, límite de frecuencia o grupo de control. Consulta Solución de problemas de mensajes no devueltos. |
El mensaje dentro de la aplicación no se mostró para todos los usuarios
Síntoma: Ningún usuario o menos usuarios de los esperados recibieron el mensaje dentro de la aplicación.
Comprueba lo siguiente:
- ¿Está la acción desencadenante configurada correctamente en el dashboard y en la integración de la aplicación?
- ¿Interceptó un mensaje dentro de la aplicación de mayor prioridad la Campaign? Consulta las preguntas frecuentes sobre mensajes dentro de la aplicación.
- ¿Estás usando una versión reciente del SDK? Algunos tipos de mensajes dentro de la aplicación tienen requisitos mínimos de SDK.
- ¿Están las sesiones integradas correctamente? Confirma que los análisis de sesión funcionan para esta aplicación.
- ¿Está una biblioteca de UI personalizada interfiriendo con la visualización? Consulta Personalización.
Luego sigue la ruta de investigación estándar.
Temporización y visualización retrasada
Síntoma: El mensaje dentro de la aplicación apareció más tarde de lo esperado o no hasta una nueva sesión.
Causas comunes:
- Precarga en el inicio de sesión de la Campaign: Los mensajes dentro de la aplicación se almacenan en caché al inicio de sesión y se muestran cuando se activa el desencadenante. Un desencadenante que ocurre antes del siguiente inicio de sesión no se mostrará hasta esa sesión. Consulta Desencadenar mensajes.
- Comportamiento de siguiente sesión en Canvas: Consulta Mensajes dentro de la aplicación en Canvas.
- Retraso planificado en el dashboard: Confirma si hay un retraso configurado en la Campaign o el paso.
- Condición de carrera en la sincronización de desencadenantes: Si los usuarios registran un evento inmediatamente después del inicio de sesión, es posible que los desencadenantes aún no se hayan sincronizado. Considera desencadenar a partir del inicio de sesión y segmentar por el evento deseado para que la entrega ocurra en la siguiente sesión después del evento.
- Mensajes dentro de la aplicación secuenciales: Si estás aplazando o restaurando mensajes en un recorrido, consulta Aplazar mensajes dentro de la aplicación desencadenados.
- Activos grandes o CDN lento: Optimiza las imágenes y el video para mensajes dentro de la aplicación HTML. En dispositivos móviles, las imágenes pueden descargarse antes de mostrarse en redes lentas; selecciona la pestaña de tu SDK a continuación para notas específicas de la plataforma.

Si tu mensaje dentro de la aplicación se desencadena por el inicio de sesión y has configurado un tiempo de espera de sesión extendido, cerrar y volver a abrir la aplicación dentro de esa ventana no actualizará la sesión. Por ejemplo, con un tiempo de espera de 300 segundos, un mensaje dentro de la aplicación desencadenado por inicio de sesión no se mostrará hasta que la sesión se actualice realmente. Ajusta el tiempo de espera de sesión o el tipo de desencadenante si esto afecta tu prueba.
Solución de problemas de entrega
La mayoría de los problemas con mensajes dentro de la aplicación son de entrega (el dispositivo no recibió los desencadenantes) o de visualización (los desencadenantes llegaron pero no se mostraron). Confirma primero la entrega y luego comprueba la visualización.
Solución de problemas de entrega
El SDK solicita mensajes dentro de la aplicación a los servidores de Braze al inicio de sesión. Confirma que el SDK está solicitando desencadenantes y que Braze los está devolviendo.
Comprueba si los mensajes se solicitan y se devuelven
- Añádete como usuario de prueba.
- Configura una Campaign de mensaje dentro de la aplicación dirigida a tu usuario.
- Inicia una nueva sesión en tu aplicación.
- En los registros de eventos de usuario, busca la solicitud del SDK para el evento de inicio de sesión. En Response Data:
- En el JSON sin procesar, confirma que
respond_withincluye"triggers": true. - La fila Requested Responses enumera las claves de nivel superior en la respuesta. Para mensajes dentro de la aplicación, espera
triggers. - Las filas Trigger In-App Message enumeran cada mensaje dentro de la aplicación devuelto para esa solicitud.
Luego clasifica:
- Si no hay una clave
triggersni filas Trigger In-App Message, consulta Solución de problemas de mensajes no solicitados. - Si
triggersestá presente pero vacío ([]), consulta Solución de problemas de mensajes no devueltos. - Si hay filas Trigger In-App Message pero nada se muestra en el dispositivo, consulta Solución de problemas de visualización específica por plataforma.
- Cada carga útil de desencadenante incluye un
type:inapp(estándar) otemplated_iam(requiere una solicitud de plantilla antes de mostrarse). Consulta Tipos de mensajes dentro de la aplicación.
- En el JSON sin procesar, confirma que
- Confirma que los mensajes dentro de la aplicación correctos aparecen en los datos de respuesta.

Solución de problemas de mensajes no solicitados
Si los mensajes dentro de la aplicación no se están solicitando, es posible que tu aplicación no esté rastreando las sesiones correctamente; los mensajes dentro de la aplicación se actualizan al inicio de sesión. Confirma que la aplicación está iniciando una sesión según la semántica de tiempo de espera de sesión:

Solución de problemas de mensajes no devueltos
Si los mensajes dentro de la aplicación no se están devolviendo, es probable que haya un problema de segmentación o elegibilidad:
- Tu Segment no contiene a tu usuario.
- Comprueba la pestaña Interacción del usuario para el Segment esperado.
- Tu usuario ya recibió el mensaje y no era reelegible.
- Tu usuario alcanzó el límite de frecuencia.
- Comprueba la configuración de límites de frecuencia.
- Tu usuario cayó en un grupo de control.
- Crea un Segment con un filtro Received campaign variant establecido en Control, o excluye los grupos de control durante las pruebas de integración.
- Un mensaje dentro de la aplicación de mayor prioridad tuvo precedencia. Consulta las preguntas frecuentes sobre mensajes dentro de la aplicación.
Para Campaigns archivadas, configuración de desencadenantes y horas tranquilas, consulta las preguntas frecuentes sobre mensajes dentro de la aplicación.
Impresiones y análisis
Síntoma: Los recuentos de impresiones o clics no coinciden con las expectativas.
- Impresiones mayores que Impresiones únicas: Es esperado cuando los usuarios tienen varios dispositivos o cuando un retraso planificado hace que el mismo usuario califique más de una vez. Consulta Reelegibilidad para Campaigns y Canvas.
- Impresiones menores de lo esperado: Es posible que los usuarios no hayan visto el mensaje (las impresiones se registran al mostrarse), que varios mensajes de alta prioridad se intercepten entre sí, o que se apliquen condiciones de carrera en la sincronización de desencadenantes. Para mensajes dentro de la aplicación en Canvas, consulta Mensajes dentro de la aplicación en Canvas. Para definiciones completas de métricas, consulta Informes de mensajes dentro de la aplicación y las preguntas frecuentes sobre mensajes dentro de la aplicación.
- Impresiones menores que antes: Revisa los registros de cambios del Segment y la Campaign. Confirma que no reutilizaste el mismo evento desencadenante en una Campaign de mayor prioridad.

Si usas un delegado o un controlador personalizado para mostrar mensajes dentro de la aplicación manualmente, debes registrar las impresiones y los clics tú mismo. Consulta la pestaña de tu SDK en Solución de problemas de visualización específica por plataforma para detalles de Swift y Android, o Registrar datos de mensajes dentro de la aplicación para Web.
Solución de problemas de visualización específica por plataforma
Si aparecen filas Trigger In-App Message en los registros de eventos de usuario pero nada se muestra en el dispositivo, selecciona la pestaña de tu SDK para comprobaciones de visualización (delegados, límites de velocidad, orientación y controladores personalizados).
Solución de problemas de visualización
Si tu aplicación solicita y recibe mensajes dentro de la aplicación, pero no se muestran, es posible que la lógica del dispositivo esté impidiendo la visualización:
-
¿Se desencadena el evento como se espera? Para comprobarlo, configura el mensaje para que se desencadene mediante una acción diferente (como el inicio de sesión) y verifica si se muestra.
-
Los mensajes desencadenados dentro de la aplicación tienen una tasa limitada en función del intervalo de tiempo mínimo entre desencadenamientos, que es de 30 segundos de forma predeterminada.
-
Las descargas de imágenes fallidas impiden que se muestren los mensajes dentro de la aplicación con imágenes. Comprueba los registros del dispositivo en busca de fallos en las descargas. Prueba a eliminar temporalmente la imagen para ver si el mensaje se muestra.
-
Si utilizas una gestión personalizada de mensajes dentro de la aplicación a través de
braze.subscribeToInAppMessage, verifica que la devolución de llamada no está suprimiendo la visualización. Consulta Personalización.
Solución de problemas de visualización
Si tu aplicación solicita y recibe mensajes dentro de la aplicación, pero no se muestran, es posible que la lógica del dispositivo esté impidiendo la visualización:
-
¿Se desencadena el evento como se espera? Para comprobarlo, configura el mensaje para que se desencadene mediante una acción diferente (como el inicio de sesión) y verifica si se muestra.
-
Los mensajes desencadenados dentro de la aplicación tienen una tasa limitada en función del intervalo de tiempo mínimo entre desencadenamientos, que es de 30 segundos de forma predeterminada.
-
Las descargas de imágenes fallidas impiden que se muestren los mensajes dentro de la aplicación con imágenes. Comprueba los registros del dispositivo en busca de fallos en las descargas. Prueba a eliminar temporalmente la imagen para ver si el mensaje se muestra.
-
Si has configurado un delegado para personalizar la gestión de mensajes dentro de la aplicación, confirma que no está suprimiendo la visualización. Consulta Personalización.
-
Si la orientación del dispositivo no coincide con la configuración del mensaje dentro de la aplicación, el mensaje no se mostrará.
-
Dependiendo de las condiciones de la red, es posible que las imágenes se descarguen antes de mostrarse. En conexiones lentas o dispositivos de bajo rendimiento, permite tiempo adicional u optimiza el tamaño de los activos.
Las impresiones y los clics no se registran
Si has configurado un delegado de mensajes dentro de la aplicación para gestionar manualmente la visualización del mensaje o las acciones de clic, debes registrar manualmente los clics y las impresiones en el mensaje dentro de la aplicación.
Solución de problemas de visualización
Si tu aplicación solicita y recibe mensajes dentro de la aplicación, pero no se muestran, es posible que la lógica del dispositivo esté impidiendo la visualización:
-
¿Se desencadena el evento como se espera? Para comprobarlo, configura el mensaje para que se desencadene mediante una acción diferente (como el inicio de sesión) y verifica si se muestra.
-
Los mensajes desencadenados dentro de la aplicación tienen una tasa limitada en función del intervalo de tiempo mínimo entre desencadenamientos, que es de 30 segundos de forma predeterminada.
-
Las descargas de imágenes fallidas impiden que se muestren los mensajes dentro de la aplicación con imágenes. Comprueba los registros del dispositivo en busca de fallos en las descargas. Prueba a eliminar temporalmente la imagen para ver si el mensaje se muestra.
-
Si has configurado un delegado para personalizar la gestión de mensajes dentro de la aplicación, confirma que no está suprimiendo la visualización. Consulta Personalización.
-
Si la orientación del dispositivo no coincide con la configuración del mensaje dentro de la aplicación, el mensaje no se mostrará.
-
Dependiendo de las condiciones de la red, es posible que las imágenes se descarguen antes de mostrarse. En conexiones lentas o dispositivos de bajo rendimiento, permite tiempo adicional u optimiza el tamaño de los activos.
Las impresiones y los clics no se registran
Si has configurado un delegado de mensajes dentro de la aplicación para gestionar manualmente la visualización del mensaje o las acciones de clic, debes registrar los clics y las impresiones manualmente en el mensaje dentro de la aplicación.
Solución de problemas de carga de activos (NSURLError código -1008)
Al integrar Braze junto con bibliotecas de registro de red de terceros, los desarrolladores pueden encontrarse habitualmente con un NSURLError con el código de dominio -1008. Este error indica que activos como imágenes y fuentes no se han podido recuperar o no se han almacenado en caché. Para evitar estos casos, tendrás que registrar las URL de CDN de Braze en la lista de dominios que deben ser ignorados por estas bibliotecas.
Dominios
La lista completa de dominios CDN es la siguiente:
"appboy-images.com""braze-images.com""cdn.braze.eu""cdn.braze.com"
Ejemplos
A continuación se muestran las bibliotecas que se sabe que entran en conflicto con el almacenamiento en caché de activos de Braze, junto con código de ejemplo para solucionar el problema. Si tu proyecto utiliza una biblioteca que provoca un error de recurso no disponible y no aparece en la lista siguiente, consulta la documentación de esa biblioteca para conocer las API de uso similares.
Netfox
1
NFX.sharedInstance().ignoreURLs(["https://cdn.braze.com"])
1
[NFX.sharedInstance ignoreURLs:@[@"https://cdn.braze.com"]];
NetGuard
1
NetGuard.blackListHosts.append(contentsOf: ["cdn.braze.com"])
1
2
3
NSMutableArray<NSString *> *blackListHosts = [NetGuard.blackListHosts mutableCopy];
[blackListHosts addObject:@"cdn.braze.com"];
NetGuard.blackListHosts = blackListHosts;
XNLogger
1
2
let brazeAssetsHostFilter = XNHostFilter(host: "https://cdn.braze.com")
XNLogger.shared.addFilters([brazeAssetsHostFilter])
1
2
XNHostFilter *brazeAssetsHostFilter = [[XNHostFilter alloc] initWithHost: @"https://cdn.braze.com"];
[XNLogger.shared addFilters:@[brazeAssetsHostFilter]];