Solución de problemas de las notificaciones push
Aprende a solucionar problemas de notificaciones push para el SDK de Braze.
Comprender el flujo de trabajo push de Braze
El servicio de mensajería en la nube de Firebase (FCM) es la infraestructura de Google para las notificaciones push enviadas a las aplicaciones de Android. Esta es la estructura simplificada de cómo se habilitan las notificaciones push para los dispositivos de tus usuarios y cómo Braze puede enviarles notificaciones push:
---
config:
theme: mc
---
sequenceDiagram
participant Device as User Device
participant App as Android App
participant BrazeSDK as Braze SDK
participant BrazeAPI as Braze Server
participant Firebase as Google Firebase
Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
BrazeSDK ->> App: Get push token from Firebase Manager
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Register Option 2<br/>Manual registration.
App ->> BrazeSDK: App sets `Braze.registeredPushToken`
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Push permission
BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
BrazeSDK -> App: In-App Message is displayed
App -> BrazeSDK: User requests permissions
BrazeSDK -> App: Displays the Push Authorization prompt
BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
Note over Device, Firebase: Push Notification Is Sent
BrazeAPI ->> Firebase: Sends push message
Firebase ->> Device: Push message sent
Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.
Paso 1: Configurar tu clave de API de Google Cloud
Al desarrollar tu aplicación, tendrás que proporcionar al SDK de Android de Braze tu ID de remitente de Firebase. Además, tendrás que proporcionar al panel de Braze una clave de API para aplicaciones de servidor. Braze utilizará esta clave de API para enviar mensajes a tus dispositivos. También tendrás que comprobar que el servicio FCM está habilitado en la consola del desarrollador de Google.
Un error común durante este paso es utilizar la clave de API identificadora de la aplicación en lugar de la clave de API REST.
Paso 2: Los dispositivos se registran en el FCM y proporcionan a Braze tokens de notificaciones push
En las integraciones típicas, el SDK para Android de Braze se encargará de registrar los dispositivos para la función FCM. Esto suele ocurrir inmediatamente después de abrir la aplicación por primera vez. Tras el registro, Braze recibirá un ID de registro de FCM, que se utiliza para enviar mensajes a ese dispositivo en concreto. Almacenaremos el ID de registro de ese usuario, y ese usuario se convertirá en “registrado push” si antes no tenía un token de notificaciones push para ninguna de tus aplicaciones.
Paso 3: Lanzamiento de una campaña push Braze
Cuando se lance una campaña push, Braze hará solicitudes a FCM para que entregue tu mensaje. Braze utilizará la clave de API copiada en el panel para autenticar y verificar que podemos enviar notificaciones push a los tokens de notificaciones push proporcionados.
Paso 4: Eliminar tokens no válidos
Si FCM nos informa de que alguno de los tokens de notificaciones push a los que intentábamos enviar un mensaje no es válido, eliminamos esos tokens de los perfiles de usuario a los que estaban asociados. Si los usuarios no tienen otros tokens de notificaciones push, ya no aparecerán como “Registrados push” en la página Segmentos.
Para más detalles sobre FCM, visita Mensajería en la nube.
Utilizar los registros de errores push
Braze proporciona errores de notificación push dentro del registro de actividad de mensajes. Este registro de errores proporciona una serie de advertencias que pueden ser muy útiles para identificar por qué tus campañas no funcionan como esperabas. Si haces clic en un mensaje de error, se te redirigirá a la documentación pertinente para ayudarte a solucionar una incidencia concreta.
Escenarios de solución de problemas
Push no está enviando
Puede que tus mensajes push no se envíen debido a las siguientes situaciones:
- Tus credenciales existen en un ID de proyecto de Google Cloud Platform incorrecto (ID de remitente incorrecto).
- Tus credenciales tienen un ámbito de permiso incorrecto.
- Has cargado credenciales erróneas en el espacio de trabajo Braze equivocado (ID de remitente erróneo).
Para otros problemas que puedan impedirte enviar un mensaje push, consulta la Guía del usuario de : Solución de problemas de las notificaciones push.
No se muestran los usuarios “registrados push” en el panel de Braze (antes de enviar mensajes)
Confirma que tu aplicación está correctamente configurada para permitir notificaciones push. Los puntos de fallo habituales que hay que comprobar incluyen lo siguiente:
ID de remitente incorrecto
Comprueba que el ID de remitente del FCM correcto está incluido en el archivo braze.xml
. Un ID de remitente incorrecto dará lugar a errores de MismatchSenderID
en el registro de actividad de mensajes del panel.
No se produce el registro de Braze
Dado que el registro de FCM se gestiona fuera de Braze, el fallo en el registro sólo puede producirse en dos lugares:
- Durante el registro en la FCM
- Al pasar el token de notificaciones push generado por FCM a Braze
Recomendamos establecer un punto de interrupción o de registro para confirmar que el token de notificaciones push generado por FCM se envía a Braze. Si un token no se genera correctamente o no se genera en absoluto, te recomendamos que consultes la documentación de FCM.
Los servicios de Google Play no están presentes
Para que FCM push funcione, Google Play Services debe estar presente en el dispositivo. Si Google Play Services no está en un dispositivo, no se producirá el registro push.
Nota: Los servicios de Google Play no se instalan en emuladores de Android que no tengan instaladas las API de Google.
Dispositivo no conectado a Internet
Comprueba que tu dispositivo tiene una buena conexión a Internet y que no está enviando tráfico de red a través de un proxy.
Al tocar la notificación push no se abre la aplicación
Comprueba si com_braze_handle_push_deep_links_automatically
está configurado como true
o false
. Para habilitar Braze para que abra automáticamente la aplicación y cualquier vínculo profundo al tocar una notificación push, configura com_braze_handle_push_deep_links_automatically
en true
en tu archivo braze.xml
.
Si com_braze_handle_push_deep_links_automatically
está predeterminado a false
, tienes que utilizar una devolución de llamada Push Braze para escuchar y gestionar las intenciones push recibidas y abiertas.
Notificaciones push rebotadas
Si no se entrega una notificación push, asegúrate de que no ha rebotado consultando la consola para desarrolladores. A continuación se describen errores comunes que pueden registrarse en la consola para desarrolladores:
Error: MismatchSenderID
MismatchSenderID
indica un fallo de autenticación. Confirma que tu ID de remitente de Firebase y tu clave de API de FCM son correctos.
Error: InvalidRegistration
InvalidRegistration
puede deberse a un token de notificaciones push mal formado.
- Asegúrate de pasar un token de notificaciones push válido a Braze desde Firebase Cloud Messaging.
Error: NoRegistrado
-
NotRegistered
suele ocurrir cuando se elimina una aplicación de un dispositivo. Braze utilizaNotRegistered
internamente para indicar que se ha desinstalado una aplicación de un dispositivo. -
NotRegistered
También puede ocurrir cuando se producen varios registros y un segundo registro invalida el primer token.
Notificaciones push enviadas pero no mostradas en los dispositivos de los usuarios
Hay algunas razones por las que esto podría estar ocurriendo:
Se forzó la salida de la aplicación
Si fuerzas la salida de tu aplicación a través de la configuración del sistema, no se enviarán tus notificaciones push. Si vuelves a iniciar la aplicación, tu dispositivo volverá a estar habilitado para recibir notificaciones push.
BrazeFirebaseMessagingService no registrado
El servicio BrazeFirebaseMessagingService debe estar correctamente registrado en AndroidManifest.xml
para que aparezcan las notificaciones push:
1
2
3
4
5
6
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
El cortafuegos bloquea el push
Si estás probando el push a través de Wi-Fi, puede que tu cortafuegos esté bloqueando los puertos necesarios para que FCM reciba mensajes. Confirma que los puertos 5228
, 5229
y 5230
están abiertos. Además, como el FCM no especifica sus IP, también debes permitir que tu cortafuegos acepte conexiones salientes a todas las direcciones IP contenidas en los bloques IP enumerados en el ASN de Google de 15169
.
Fábrica de notificaciones personalizada que devuelve null
Si has implementado una fábrica de notificaciones personalizada, asegúrate de que no devuelve null
. Esto hará que no se muestren las notificaciones.
Los usuarios “registrados por push” ya no están habilitados después de enviar mensajes
Hay varias razones por las que esto puede estar ocurriendo:
Se ha desinstalado la aplicación
Los usuarios han desinstalado la aplicación. Esto invalidará su token de notificaciones push de FCM.
Clave inválida del servidor de mensajería en la nube Firebase
La clave del servidor de mensajería en la nube de Firebase proporcionada en el panel de Braze no es válida. El ID de remitente proporcionado debe coincidir con el indicado en el archivo braze.xml
de tu aplicación. La clave del servidor y el ID del remitente se encuentran aquí, en tu Consola Firebase:
Los clics push no se registran
Braze registra automáticamente los clics push, por lo que esta situación debería ser relativamente rara.
Si no se registran los clics push, es posible que los datos de los clics push aún no se hayan enviado a nuestros servidores. Braze regula la frecuencia de sus descargas en función de la potencia de la conexión a la red. Con una buena conexión de red, los datos push-clic deberían llegar al servidor en menos de un minuto en la mayoría de los casos.
Los deep links no funcionan
Verificar la configuración del vínculo profundo
Los vínculos en profundidad pueden probarse con el ADB. Te recomendamos que pruebes tu vínculo profundo con el siguiente comando:
adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME
Si el vínculo profundo no funciona, es posible que esté mal configurado. Un vínculo profundo mal configurado no funcionará cuando se envíe a través de notificaciones push de Braze.
Verificar la lógica de manipulación personalizada
Si el vínculo profundo funciona correctamente con ADB pero no funciona desde Braze push, comprueba si se ha implementado alguna gestión personalizada de apertura de push. Si es así, comprueba que el código de gestión personalizado gestiona correctamente el vínculo profundo entrante.
Desactivar el comportamiento del back stack
Si el vínculo profundo funciona correctamente con ADB pero no funciona desde Braze push, prueba a desactivar el back stack. Para ello, actualiza tu archivo braze.xml para incluir:
1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>
Comprender el flujo de trabajo Braze/APNs
El servicio de notificaciones push de Apple (APN) es la infraestructura para enviar notificaciones push a las aplicaciones que se ejecutan en las plataformas de Apple. Esta es la estructura simplificada de cómo se habilitan las notificaciones push para los dispositivos de tus usuarios y cómo Braze puede enviarles notificaciones push:
- Configura el certificado push y el perfil de aprovisionamiento
- Los dispositivos se registran para APN y proporcionan a Braze tokens de notificaciones push
- Lanza una campaña push de Braze
- Braze elimina los tokens no válidos
Paso 1: Configurar el certificado push y el perfil de aprovisionamiento
Al desarrollar tu aplicación, tendrás que crear un certificado SSL para habilitar las notificaciones push. Este certificado se incluirá en el perfil de aprovisionamiento con el que se cree tu aplicación y también deberá cargarse en el panel de Braze. El certificado permite a Braze indicar a los APN que estamos autorizados a enviar notificaciones push en tu nombre.
Hay dos tipos de perfiles de aprovisionamiento y certificados: de desarrollo y de distribución. Recomendamos utilizar sólo perfiles de distribución y certificados para evitar confusiones. Si decides utilizar perfiles y certificados diferentes para el desarrollo y la distribución, asegúrate de que el certificado cargado en el panel coincide con el perfil de aprovisionamiento que utilizas actualmente.
No cambies el entorno del certificado push (desarrollo frente a producción). Cambiar el certificado push a un entorno incorrecto puede hacer que a tus usuarios se les elimine accidentalmente el token de notificaciones push, haciéndoles inaccesibles por push.
Paso 2: Los dispositivos se registran para APN y proporcionan a Braze tokens de notificaciones push
Cuando los usuarios abran tu aplicación, se les pedirá que acepten notificaciones push. Si aceptan esta indicación, los APN generarán un token de notificaciones push para ese dispositivo concreto. El SDK de Swift enviará de forma inmediata y asíncrona el token de notificaciones push para las aplicaciones que utilicen la política predeterminada de descarga automática. Una vez que tengamos un token de notificaciones push asociado a un usuario, aparecerá como “Registrado push” en el panel de su perfil de usuario, en la pestaña de interacción, y será elegible para recibir notificaciones push de las campañas Braze.
A partir de macOS 13, en determinados dispositivos, puedes probar las notificaciones push en un simulador de iOS 16 que se ejecute en Xcode 14. Para más detalles, consulta las Notas de la versión de Xcode 14.
Consideraciones para la generación de tokens de notificaciones push
- Si los usuarios instalan tu aplicación en otro dispositivo, se creará otro token y se capturará del mismo modo.
- Si los usuarios reinstalan tu aplicación, se generará un nuevo token y se pasará a Braze. Sin embargo, APN y Braze pueden seguir registrando como válido el token original.
- Si los usuarios desinstalan tu aplicación, Braze no recibe una notificación inmediata de ello y el token seguirá apareciendo como válido hasta que sea retirado por APN.
- En algún momento, los APN retirarán los tokens antiguos. Braze no tiene control ni visibilidad de esto.
Paso 3: Lanzamiento de una campaña push Braze
Cuando se lance una campaña push, Braze hará peticiones a los APN para que entreguen tu mensaje. En concreto, las solicitudes se pasan a APN para cada token de notificaciones push válido actual, a menos que se seleccione Enviar al dispositivo más reciente del usuario. Después de que Braze reciba una respuesta satisfactoria de los APN, registraremos una entrega satisfactoria en el perfil de usuario, aunque es posible que el usuario no haya recibido el mensaje real por motivos como:
- Su dispositivo está apagado.
- Su dispositivo no está conectado a Internet (Wi-Fi o móvil).
- Hace poco desinstalaron la aplicación.
Braze utilizará el certificado SSL push cargado en el panel para autenticar y verificar que se nos permite enviar notificaciones push a los tokens de notificaciones push proporcionados. Si un dispositivo está en línea, la notificación debería recibirse poco después de que se haya enviado la campaña. Ten en cuenta que Braze establece la fecha de caducidad predeterminada de los APN para las notificaciones en 30 días.
Paso 4: Eliminar tokens no válidos
Si APN nos informa de que alguno de los tokens de notificaciones push a los que intentábamos enviar un mensaje no es válido, eliminamos esos tokens de los perfiles de usuario a los que estaban asociados.
Es normal que APN devuelva inicialmente un estado correcto aunque un token deje de estar registrado, ya que APN no informa inmediatamente de los eventos de invalidación de token. Las APN retrasan intencionadamente la devolución del estado 410
para los tokens no válidos según un calendario aleatorio, diseñado para proteger la privacidad del usuario y evitar el seguimiento de las desinstalaciones de aplicaciones. Puedes seguir enviando notificaciones a un token no registrado hasta que APNs devuelva el estado 410
.
Utilizar los registros de errores push
El Registro de actividad de mensajes te da la oportunidad de ver todos los mensajes (especialmente los de error) asociados a tus campañas y envíos, incluidos los errores de notificación push. Este registro de errores proporciona una serie de advertencias que pueden ser muy útiles para identificar por qué tus campañas no funcionan como esperabas. Si haces clic en un mensaje de error, se te redirigirá a la documentación pertinente para ayudarte a solucionar una incidencia concreta.
Los errores comunes que puedes ver aquí incluyen notificaciones específicas del usuario, como “Recibido no registrado enviando a token de notificaciones push”.
Además, Braze también proporciona un registro de cambios push en el perfil de usuario, en la pestaña de interacción. Este registro de cambios proporciona información sobre el comportamiento del registro push, como la invalidación del token, los errores de registro push, los tokens que se mueven a nuevos usuarios, etc.
Errores del registro de actividad de mensajes
Se recibió envío no registrado a token de notificaciones push
- Asegúrate de que el token de notificaciones push que se envía a Braze desde el método
AppDelegate.braze?.notifications.register(deviceToken:)
es válido. Puedes mirar en el Registro de actividad de mensajes para ver el token de notificaciones push. Debería parecerse a6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6
, una cadena larga que contiene una mezcla de letras y números. Si tu token de notificaciones push tiene un aspecto diferente, comprueba tu código para enviar a Braze los tokens de notificaciones push. - Asegúrate de que tu perfil de aprovisionamiento push coincide con el entorno que estás probando. Los certificados universales pueden configurarse en el panel de Braze para enviarlos al entorno de APN de desarrollo o de producción. Utilizar un certificado de desarrollador para una aplicación de producción o un certificado de producción para una aplicación de desarrollo no funcionará.
- Comprueba que el token de notificaciones push que has cargado en Braze coincide con el perfil de aprovisionamiento que utilizaste para crear la aplicación desde la que enviaste el token de notificaciones push.
Token de dispositivo no para el tema
Este error indica que el certificado push y el ID de paquete de tu aplicación no coinciden. Comprueba que el certificado push que subiste a Braze coincide con el perfil de aprovisionamiento utilizado para crear la aplicación desde la que se envió el token de notificaciones push.
BadDeviceToken enviando a token de notificaciones push
El BadDeviceToken
es un código de error de APNs y no tiene su origen en Braze. Puede haber varias razones para que se devuelva esta respuesta, entre ellas las siguientes:
- La aplicación recibió un token de notificaciones push que no era válido para las credenciales cargadas en el panel.
- Se ha desactivado la función push en este espacio de trabajo.
- El usuario ha optado por no recibir push.
- La aplicación fue desinstalada.
- Apple actualizó el token de notificaciones push, lo que invalidó el token antiguo.
- La aplicación se creó para un entorno de producción, pero las credenciales push cargadas en Braze están configuradas para un entorno de desarrollo (o al revés).
Problemas de registro push
No hay aviso de registro push
Si la aplicación no te pide que te registres para recibir notificaciones push, es probable que haya un problema con tu integración de registro push. Asegúrate de que has seguido nuestra documentación e integrado correctamente nuestro registro push. También puedes establecer puntos de interrupción en tu código para asegurarte de que el código de registro push se está ejecutando.
No se muestran los usuarios “registrados push” en el panel (antes de enviar mensajes)
Asegúrate de que tu aplicación está correctamente configurada para permitir notificaciones push. Los puntos de fallo habituales que hay que comprobar incluyen lo siguiente:
- Comprueba que tu aplicación te pide que permitas las notificaciones push. Normalmente, este mensaje aparecerá la primera vez que abras la aplicación, pero puedes programarlo para que aparezca en cualquier otro momento. Si no aparece donde debería, es probable que el problema esté en la configuración básica de las capacidades push de tu aplicación.
- Comprueba que los pasos para la integración push se han completado correctamente.
- Comprueba que el perfil de aprovisionamiento con el que se creó tu aplicación incluye permisos para push. Asegúrate de que obtienes todos los perfiles de aprovisionamiento disponibles de tu cuenta de desarrollador de Apple. Para confirmarlo, realiza los siguientes pasos:
- En Xcode, ve a Preferencias > Cuentas (o utiliza el atajo de teclado Comando+,).
- Selecciona el ID de Apple que utilizas para tu cuenta de desarrollador y haz clic en Ver detalles.
- En la página siguiente, haz clic en Actualizar y confirma que estás extrayendo todos los perfiles de aprovisionamiento disponibles.
- Comprueba que has habilitado correctamente la función push en tu aplicación.
- Comprueba que tu perfil de aprovisionamiento push coincide con el entorno en el que estás realizando las pruebas. Los certificados universales pueden configurarse en el panel de Braze para enviarlos al entorno de APN de desarrollo o de producción. Utilizar un certificado de desarrollador para una aplicación de producción o un certificado de producción para una aplicación de desarrollo no funcionará.
- Comprueba que estás llamando a nuestro método
registerPushToken
estableciendo un punto de interrupción en tu código. - Asegúrate de que estás probando con un dispositivo (push no funcionará en un simulador) y de que tienes una buena conectividad de red.
Notificaciones push enviadas pero no mostradas en los dispositivos de los usuarios
Los usuarios “registrados por push” ya no están habilitados después de enviar mensajes
Esto probablemente indica que el usuario tenía un token de notificaciones push no válido. Esto puede ocurrir por varias razones:
Desajuste entre el panel y el certificado de la aplicación
Si el certificado push que has cargado en el panel no es el mismo que el del perfil de aprovisionamiento con el que se creó tu aplicación, las APN rechazarán el token. Comprueba que has cargado el certificado correcto y que has completado otra sesión en la aplicación antes de intentar otra notificación de prueba.
Se ha desinstalado la aplicación
Si un usuario ha desinstalado tu aplicación, su token de notificaciones push no será válido y se eliminará en el siguiente envío.
Regenerar tu perfil de aprovisionamiento
Como último recurso, empezar de cero y crear un perfil de aprovisionamiento completamente nuevo puede eliminar los errores de configuración que se producen al trabajar con varios entornos, perfiles y aplicaciones al mismo tiempo. Hay muchas “partes móviles” en la configuración de las notificaciones push, así que a veces es mejor volver a intentarlo desde el principio. Esto también te ayudará a aislar el problema si necesitas continuar con la solución de problemas.
Los mensajes no se entregan a los usuarios “registrados push”.
La aplicación está en primer plano
En las versiones de iOS que no integran push a través del framework UserNotifications
, si la aplicación está en primer plano cuando se recibe el mensaje push, éste no se mostrará. Debes poner la aplicación en segundo plano en tus dispositivos de prueba antes de enviar mensajes de prueba.
Notificación de prueba programada incorrectamente
Comprueba la programación que has establecido para tu mensaje de prueba. Si está configurada como entrega según la zona horaria local o Intelligent Timing, es posible que aún no hayas recibido el mensaje (o que tuvieras la aplicación en primer plano cuando lo recibiste).
Usuario no “registrado para push” para la aplicación que se está probando
Comprueba el perfil de usuario del usuario al que intentas enviar un mensaje de prueba. En la pestaña “Interacción”, debería haber una lista de “aplicaciones pushables”. Comprueba que la aplicación a la que intentas enviar mensajes de prueba está en esta lista. Los usuarios aparecerán como “Registrados push” si tienen un token de notificaciones push para cualquier aplicación de tu espacio de trabajo, por lo que podría tratarse de un falso positivo.
Lo siguiente indicaría un problema con el registro push o que el token de notificaciones push del usuario ha sido devuelto a Braze como no válido por las APN después de haber sido enviado:
Los clics push no se registran
- Asegúrate de haber seguido los pasos de la integración push.
- Braze no gestiona las notificaciones push recibidas silenciosamente en primer plano (comportamiento push predeterminado en primer plano antes del marco
UserNotifications
). Esto significa que los enlaces no se abrirán y los clics push no se registrarán. Si tu aplicación aún no ha integrado el frameworkUserNotifications
, Braze no gestionará las notificaciones push cuando el estado de la aplicación seaUIApplicationStateActive
. Asegúrate de que tu aplicación no retrasa las llamadas a los métodos de gestión push; de lo contrario, el SDK de Swift puede tratar las notificaciones push como eventos push silenciosos en primer plano y no gestionarlos.
Los deep links no funcionan
Los enlaces Web de los clics push no se abren
Los enlaces de las notificaciones push deben ser compatibles con ATS para poder abrirse en vistas web. Asegúrate de que tus enlaces Web utilizan HTTPS. Para más información, consulta el cumplimiento de la ATS.
Los vínculos profundos de los clics push no se abren
La mayor parte del código que gestiona los vínculos en profundidad también gestiona las aperturas push. Primero, asegúrate de que se registran las aperturas push. Si no es así, soluciona ese problema (ya que la solución suele arreglar la gestión de enlaces).
Si se registran aperturas, comprueba si se trata de un problema con el vínculo en profundidad en general o con la gestión de los clics push de vinculación en profundidad. Para ello, prueba a ver si funciona un vínculo profundo desde un clic de mensaje dentro de la aplicación.
Troubleshooting
If you’re experiencing issues after setting up push notifications, consider the following:
- Web push notifications require that your site be HTTPS.
- Not all browsers can receive push messages. Ensure that
braze.isPushSupported()
returnstrue
in the browser. - If a user has denied a site push access, they won’t be prompted for permission again unless they remove the denied status from their browser preferences.
Comprender el flujo de trabajo push de Braze
El servicio de mensajería en la nube de Firebase (FCM) es la infraestructura de Google para las notificaciones push enviadas a las aplicaciones de Android. Esta es la estructura simplificada de cómo se habilitan las notificaciones push para los dispositivos de tus usuarios y cómo Braze puede enviarles notificaciones push:
---
config:
theme: mc
---
sequenceDiagram
participant Device as User Device
participant App as Android App
participant BrazeSDK as Braze SDK
participant BrazeAPI as Braze Server
participant Firebase as Google Firebase
Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
BrazeSDK ->> App: Get push token from Firebase Manager
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Register Option 2<br/>Manual registration.
App ->> BrazeSDK: App sets `Braze.registeredPushToken`
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Push permission
BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
BrazeSDK -> App: In-App Message is displayed
App -> BrazeSDK: User requests permissions
BrazeSDK -> App: Displays the Push Authorization prompt
BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
Note over Device, Firebase: Push Notification Is Sent
BrazeAPI ->> Firebase: Sends push message
Firebase ->> Device: Push message sent
Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.
Paso 1: Configurar tu clave de API de Google Cloud
Al desarrollar tu aplicación, tendrás que proporcionar al SDK de Android de Braze tu ID de remitente de Firebase. Además, tendrás que proporcionar al panel de Braze una clave de API para aplicaciones de servidor. Braze utilizará esta clave de API para enviar mensajes a tus dispositivos. También tendrás que comprobar que el servicio FCM está habilitado en la consola del desarrollador de Google.
Un error común durante este paso es utilizar la clave de API identificadora de la aplicación en lugar de la clave de API REST.
Paso 2: Los dispositivos se registran en el FCM y proporcionan a Braze tokens de notificaciones push
En las integraciones típicas, el SDK para Android de Braze se encargará de registrar los dispositivos para la función FCM. Esto suele ocurrir inmediatamente después de abrir la aplicación por primera vez. Tras el registro, Braze recibirá un ID de registro de FCM, que se utiliza para enviar mensajes a ese dispositivo en concreto. Almacenaremos el ID de registro de ese usuario, y ese usuario se convertirá en “registrado push” si antes no tenía un token de notificaciones push para ninguna de tus aplicaciones.
Paso 3: Lanzamiento de una campaña push Braze
Cuando se lance una campaña push, Braze hará solicitudes a FCM para que entregue tu mensaje. Braze utilizará la clave de API copiada en el panel para autenticar y verificar que podemos enviar notificaciones push a los tokens de notificaciones push proporcionados.
Paso 4: Eliminar tokens no válidos
Si FCM nos informa de que alguno de los tokens de notificaciones push a los que intentábamos enviar un mensaje no es válido, eliminamos esos tokens de los perfiles de usuario a los que estaban asociados. Si los usuarios no tienen otros tokens de notificaciones push, ya no aparecerán como “Registrados push” en la página Segmentos.
Para más detalles sobre FCM, visita Mensajería en la nube.
Utilizar los registros de errores push
Braze proporciona errores de notificación push dentro del registro de actividad de mensajes. Este registro de errores proporciona una serie de advertencias que pueden ser muy útiles para identificar por qué tus campañas no funcionan como esperabas. Si haces clic en un mensaje de error, se te redirigirá a la documentación pertinente para ayudarte a solucionar una incidencia concreta.
Escenarios de solución de problemas
Push no está enviando
Puede que tus mensajes push no se envíen debido a las siguientes situaciones:
- Tus credenciales existen en un ID de proyecto de Google Cloud Platform incorrecto (ID de remitente incorrecto).
- Tus credenciales tienen un ámbito de permiso incorrecto.
- Has cargado credenciales erróneas en el espacio de trabajo Braze equivocado (ID de remitente erróneo).
Para otros problemas que puedan impedirte enviar un mensaje push, consulta la Guía del usuario de : Solución de problemas de las notificaciones push.
No se muestran los usuarios “registrados push” en el panel de Braze (antes de enviar mensajes)
Confirma que tu aplicación está correctamente configurada para permitir notificaciones push. Los puntos de fallo habituales que hay que comprobar incluyen lo siguiente:
ID de remitente incorrecto
Comprueba que el ID de remitente del FCM correcto está incluido en el archivo braze.xml
. Un ID de remitente incorrecto dará lugar a errores de MismatchSenderID
en el registro de actividad de mensajes del panel.
No se produce el registro de Braze
Dado que el registro de FCM se gestiona fuera de Braze, el fallo en el registro sólo puede producirse en dos lugares:
- Durante el registro en la FCM
- Al pasar el token de notificaciones push generado por FCM a Braze
Recomendamos establecer un punto de interrupción o de registro para confirmar que el token de notificaciones push generado por FCM se envía a Braze. Si un token no se genera correctamente o no se genera en absoluto, te recomendamos que consultes la documentación de FCM.
Los servicios de Google Play no están presentes
Para que FCM push funcione, Google Play Services debe estar presente en el dispositivo. Si Google Play Services no está en un dispositivo, no se producirá el registro push.
Nota: Los servicios de Google Play no se instalan en emuladores de Android que no tengan instaladas las API de Google.
Dispositivo no conectado a Internet
Comprueba que tu dispositivo tiene una buena conexión a Internet y que no está enviando tráfico de red a través de un proxy.
Al tocar la notificación push no se abre la aplicación
Comprueba si com_braze_handle_push_deep_links_automatically
está configurado como true
o false
. Para habilitar Braze para que abra automáticamente la aplicación y cualquier vínculo profundo al tocar una notificación push, configura com_braze_handle_push_deep_links_automatically
en true
en tu archivo braze.xml
.
Si com_braze_handle_push_deep_links_automatically
está predeterminado a false
, tienes que utilizar una devolución de llamada Push Braze para escuchar y gestionar las intenciones push recibidas y abiertas.
Notificaciones push rebotadas
Si no se entrega una notificación push, asegúrate de que no ha rebotado consultando la consola para desarrolladores. A continuación se describen errores comunes que pueden registrarse en la consola para desarrolladores:
Error: MismatchSenderID
MismatchSenderID
indica un fallo de autenticación. Confirma que tu ID de remitente de Firebase y tu clave de API de FCM son correctos.
Error: InvalidRegistration
InvalidRegistration
puede deberse a un token de notificaciones push mal formado.
- Asegúrate de pasar un token de notificaciones push válido a Braze desde Firebase Cloud Messaging.
Error: NoRegistrado
-
NotRegistered
suele ocurrir cuando se elimina una aplicación de un dispositivo. Braze utilizaNotRegistered
internamente para indicar que se ha desinstalado una aplicación de un dispositivo. -
NotRegistered
También puede ocurrir cuando se producen varios registros y un segundo registro invalida el primer token.
Notificaciones push enviadas pero no mostradas en los dispositivos de los usuarios
Hay algunas razones por las que esto podría estar ocurriendo:
Se forzó la salida de la aplicación
Si fuerzas la salida de tu aplicación a través de la configuración del sistema, no se enviarán tus notificaciones push. Si vuelves a iniciar la aplicación, tu dispositivo volverá a estar habilitado para recibir notificaciones push.
BrazeFirebaseMessagingService no registrado
El servicio BrazeFirebaseMessagingService debe estar correctamente registrado en AndroidManifest.xml
para que aparezcan las notificaciones push:
1
2
3
4
5
6
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
El cortafuegos bloquea el push
Si estás probando el push a través de Wi-Fi, puede que tu cortafuegos esté bloqueando los puertos necesarios para que FCM reciba mensajes. Confirma que los puertos 5228
, 5229
y 5230
están abiertos. Además, como el FCM no especifica sus IP, también debes permitir que tu cortafuegos acepte conexiones salientes a todas las direcciones IP contenidas en los bloques IP enumerados en el ASN de Google de 15169
.
Fábrica de notificaciones personalizada que devuelve null
Si has implementado una fábrica de notificaciones personalizada, asegúrate de que no devuelve null
. Esto hará que no se muestren las notificaciones.
Los usuarios “registrados por push” ya no están habilitados después de enviar mensajes
Hay varias razones por las que esto puede estar ocurriendo:
Se ha desinstalado la aplicación
Los usuarios han desinstalado la aplicación. Esto invalidará su token de notificaciones push de FCM.
Clave inválida del servidor de mensajería en la nube Firebase
La clave del servidor de mensajería en la nube de Firebase proporcionada en el panel de Braze no es válida. El ID de remitente proporcionado debe coincidir con el indicado en el archivo braze.xml
de tu aplicación. La clave del servidor y el ID del remitente se encuentran aquí, en tu Consola Firebase:
Los clics push no se registran
Braze registra automáticamente los clics push, por lo que esta situación debería ser relativamente rara.
Si no se registran los clics push, es posible que los datos de los clics push aún no se hayan enviado a nuestros servidores. Braze regula la frecuencia de sus descargas en función de la potencia de la conexión a la red. Con una buena conexión de red, los datos push-clic deberían llegar al servidor en menos de un minuto en la mayoría de los casos.
Los deep links no funcionan
Verificar la configuración del vínculo profundo
Los vínculos en profundidad pueden probarse con el ADB. Te recomendamos que pruebes tu vínculo profundo con el siguiente comando:
adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME
Si el vínculo profundo no funciona, es posible que esté mal configurado. Un vínculo profundo mal configurado no funcionará cuando se envíe a través de notificaciones push de Braze.
Verificar la lógica de manipulación personalizada
Si el vínculo profundo funciona correctamente con ADB pero no funciona desde Braze push, comprueba si se ha implementado alguna gestión personalizada de apertura de push. Si es así, comprueba que el código de gestión personalizado gestiona correctamente el vínculo profundo entrante.
Desactivar el comportamiento del back stack
Si el vínculo profundo funciona correctamente con ADB pero no funciona desde Braze push, prueba a desactivar el back stack. Para ello, actualiza tu archivo braze.xml para incluir:
1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>
Solución de problemas
El push no aparece después de cerrar la aplicación desde el conmutador de tareas
Si observas que las notificaciones push ya no aparecen después de cerrar la aplicación desde el conmutador de tareas, es probable que tu aplicación esté en modo Depuración. Xamarin añade un andamiaje en el modo Depuración que impide que las aplicaciones reciban push después de que su proceso haya finalizado. Si ejecutas tu aplicación en Modo Lanzamiento, deberías ver push incluso después de cerrar la aplicación desde el conmutador de tareas.
La fábrica de notificaciones personalizadas no se configura correctamente
Las fábricas de notificaciones personalizadas (y todos los delegados) deben extender Java.Lang.Object
para que funcionen correctamente entre C# y Java. Consulta Xamarin sobre la implementación de interfaces Java para obtener más información.