Skip to content


Solución de problemas

Comprender el flujo de trabajo de Braze/APN

El servicio de notificaciones push de Apple (APN) es la infraestructura de Apple para el envío de notificaciones push a aplicaciones de iOS y OS X. A continuación se muestra 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:

  1. Configuras el certificado push y el perfil de aprovisionamiento
  2. Los dispositivos se registran en APN y proporcionan a Braze los tokens de notificaciones push
  3. Lanzas una Campaign push de Braze
  4. Braze elimina los tokens no válidos

Paso 1: Configurar el certificado push y el perfil de aprovisionamiento

Cuando desarrolles tu aplicación, crea un certificado SSL para habilitar las notificaciones push. Este certificado se incluye en el perfil de aprovisionamiento con el que se compila tu aplicación y también debe cargarse en el panel de Braze. El certificado permite a Braze indicar a APN que estamos autorizados a enviar notificaciones push en tu nombre.

Existen dos tipos de perfiles de aprovisionamiento y certificados: desarrollo y distribución. Recomendamos utilizar únicamente perfiles y certificados de distribución para evitar confusiones. Si decides utilizar perfiles y certificados diferentes para desarrollo y distribución, asegúrate de que el certificado cargado en el panel coincida con el perfil de aprovisionamiento que estás utilizando actualmente.

Paso 2: Los dispositivos se registran en APN y proporcionan a Braze los tokens de push

Cuando los usuarios abran tu aplicación, se les pedirá que acepten las notificaciones push. Si aceptan esta solicitud, APN generará un token de push para ese dispositivo en particular. El SDK de iOS enviará de forma inmediata y asíncrona el token de push para las aplicaciones que utilicen la política de vaciado automático predeterminada. Una vez que tengamos un token de push asociado a un usuario, aparecerá como “Push Registered” en el panel, en su perfil de usuario, en la pestaña Interacción, y será elegible para recibir notificaciones push de Campaigns de Braze.

Paso 3: Lanzar una Campaign push de Braze

Cuando se lanza una Campaign push, Braze realizará solicitudes a APN para entregar tu mensaje. Braze utilizará el certificado SSL push cargado en el panel para autenticarse y verificar que estamos autorizados a enviar notificaciones push a los tokens de push proporcionados. Si un dispositivo está en línea, la notificación debería recibirse poco después de que se haya enviado la Campaign. Ten en cuenta que Braze establece la fecha de expiración predeterminada de 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 push a los que intentábamos enviar un mensaje no es válido, eliminamos esos tokens de los perfiles de usuario con los que estaban asociados.

Uso de los registros de errores de push

Braze proporciona un registro de errores de notificaciones push dentro del Registro de actividad de mensajes. Este registro de errores ofrece una variedad de advertencias que pueden ser muy útiles para identificar por qué tus Campaigns no están funcionando como se espera. Al seleccionar un mensaje de error, se te redirige a la documentación relevante para ayudarte a solucionar un incidente en particular.

Registros de errores de push que muestran la hora en que ocurrió el error, el nombre de la aplicación, el canal, el tipo de error y el mensaje de error.

Los errores comunes que podrías ver aquí incluyen notificaciones específicas del usuario, como “Received Unregistered Sending to Push Token”.

Además, Braze también proporciona un registro de cambios de push en el perfil de usuario, en la pestaña Interacción. Este registro de cambios ofrece información sobre el comportamiento del registro push, como la invalidación de tokens, errores de registro push, tokens que se transfieren a nuevos usuarios, etc.

Ejemplo animado de tarjeta de contenido.

Problemas con el registro push

Para añadir verificación a la lógica de registro push de tu aplicación, implementa pruebas unitarias de push.

Sin solicitud de registro push

Si la aplicación no te solicita registrarte para notificaciones push, es probable que haya un problema con la integración del registro push. Asegúrate de haber 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 aparecen usuarios “registrados para push” en el panel

  • Comprueba que tu aplicación te solicita permitir las notificaciones push. Normalmente, esta solicitud aparecerá la primera vez que abras la aplicación, pero puede programarse para que aparezca en otro lugar. 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.
    • Verifica que los pasos de la integración push se completaron correctamente.
    • Comprueba que el perfil de aprovisionamiento con el que se compiló tu aplicación incluye permisos para push. Asegúrate de que estás descargando todos los perfiles de aprovisionamiento disponibles de tu cuenta de desarrollador de Apple. Para confirmarlo, sigue estos pasos:
      1. En Xcode, ve a Preferences > Accounts (o usa el atajo de teclado Command+,).
      2. Selecciona el Apple ID que usas para tu cuenta de desarrollador y haz clic en View Details.
      3. En la siguiente página, haz clic en Refresh y confirma que estás descargando todos los perfiles de aprovisionamiento disponibles.
  • Comprueba que has habilitado correctamente la capacidad push en tu aplicación.
  • Comprueba que tu perfil de aprovisionamiento push coincide con el entorno en el que estás probando. Los certificados universales pueden configurarse en el panel de Braze para enviar al entorno de APN de desarrollo o de producción. Usar un certificado de desarrollo 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.
  • Comprueba que estás en un dispositivo (push no funcionará en un simulador) y que tienes buena conectividad de red.

Dispositivos que no reciben notificaciones push

Los usuarios ya no están “registrados para push” después de enviar una notificación push

Esto probablemente indica que el usuario tenía un token de push no válido. Esto puede ocurrir por varias razones:

Discrepancia entre el certificado del panel y la aplicación

Si el certificado push que subiste en el panel no es el mismo que el del perfil de aprovisionamiento con el que se compiló tu aplicación, APN rechazará el token. Verifica que hayas subido el certificado correcto y completado otra sesión en la aplicación antes de intentar otra notificación de prueba.

Desinstalaciones

Si un usuario ha desinstalado tu aplicación, su token de push será no 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 resolver errores de configuración que surgen al trabajar con múltiples entornos, perfiles y aplicaciones al mismo tiempo. Hay muchas “piezas en movimiento” al configurar las notificaciones push para aplicaciones iOS, por lo 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 usuarios siguen “registrados para push” después de enviar una notificación 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, 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 estableciste para tu mensaje de prueba. Si está configurada para entrega en zona horaria local o sincronización inteligente, es posible que simplemente aún no hayas recibido el mensaje (o que la aplicación estuviera en primer plano cuando se recibió).

El usuario no está “registrado para push” en la aplicación que se está probando

Comprueba el perfil de usuario de la persona a la que intentas enviar un mensaje de prueba. En la pestaña Interacción, debería haber una lista de “aplicaciones con push habilitado”. Verifica que la aplicación a la que intentas enviar mensajes de prueba esté en esta lista. Los usuarios aparecerán como “Push Registered” si tienen un token de push para cualquier aplicación en tu espacio de trabajo, por lo que esto podría ser un falso positivo.

Lo siguiente indicaría un problema con el registro de push o que el token del usuario fue devuelto a Braze como no válido por APN después de haber sido enviado:

Un perfil de usuario que muestra la configuración de contacto de un usuario. Aquí puedes ver para qué aplicaciones está registrado el push.

Los mensajes push no se envían

Para solucionar problemas con las notificaciones push que no se envían, consulta Solución de problemas de push.

Errores del registro de actividad de mensajes

Recibido no registrado enviando al token de push

  • Asegúrate de que el token de push que se envía a Braze desde el método [[Appboy sharedInstance] registerPushToken:] sea válido. Puedes consultar el Registro de actividad de mensajes para ver el token de push. Debería tener un aspecto similar a 6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6, una cadena larga que contiene una mezcla de letras y números. Si tu token de push tiene un aspecto diferente, revisa tu código para el envío de tokens de push a Braze.
  • Asegúrate de que tu perfil de aprovisionamiento push coincida con el entorno en el que estás realizando pruebas. Los certificados universales pueden configurarse en el panel de Braze para enviar al entorno de APN de desarrollo o de producción. Usar un certificado de desarrollo 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 push que has subido a Braze coincida con el perfil de aprovisionamiento que usaste para compilar la aplicación desde la que enviaste el token de push.

El token del dispositivo no corresponde al tema

Este error indica que el certificado push de tu aplicación y el ID del paquete no coinciden. Comprueba que el certificado push que subiste a Braze coincida con el perfil de aprovisionamiento utilizado para compilar la aplicación desde la que se envió el token de push.

BadDeviceToken al enviar al token de push

BadDeviceToken es un código de error de APN y no se origina en Braze. Puede haber varias razones por las que se devuelve 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.
  • Las notificaciones push estaban desactivadas para este espacio de trabajo.
  • El usuario ha rechazado las notificaciones push.
  • La aplicación fue desinstalada.
  • Apple actualizó el token de notificaciones push, lo que invalidó el token anterior.
  • La aplicación se compiló para un entorno de producción, pero las credenciales push cargadas en Braze están configuradas para un entorno de desarrollo (o viceversa).

Problemas después de la entrega push

Para añadir verificación del manejo de push en tu aplicación, implementa pruebas unitarias de push.

Los clics en push no se registran

  • Si esto solo ocurre en iOS 10, asegúrate de haber seguido los pasos de integración push para iOS 10.
  • Braze no gestiona las notificaciones push recibidas silenciosamente en primer plano (por ejemplo, el comportamiento push en primer plano predeterminado antes del framework UserNotifications). Esto significa que los enlaces no se abrirán y los clics en push no se registrarán. Si tu aplicación aún no ha integrado el framework UserNotifications, Braze no gestionará las notificaciones push cuando el estado de la aplicación sea UIApplicationStateActive. Debes asegurarte de que tu aplicación no retrase las llamadas a nuestros métodos de manejo de push; de lo contrario, el SDK de iOS puede tratar las notificaciones push como eventos push silenciosos en primer plano y no gestionarlas.

iOS 9+ requiere que los enlaces cumplan con ATS para abrirse en vistas web. Asegúrate de que tus enlaces web usen HTTPS. Consulta nuestro artículo sobre cumplimiento de ATS para más información.

La mayor parte del código que gestiona los vínculos profundos también gestiona las aperturas de push. Primero, asegúrate de que las aperturas de push se estén registrando. Si no es así, soluciona ese problema (ya que la solución a menudo también corrige el manejo de enlaces).

Si las aperturas se están registrando, comprueba si el problema es con el vínculo profundo en general o con el manejo de clics en push con vinculación en profundidad. Para ello, prueba si un vínculo profundo desde un clic en un mensaje dentro de la aplicación funciona.

Pocas o ninguna apertura directa

Si al menos un usuario abre tu notificación push de iOS, pero se registran pocas o ninguna Direct Opens en Braze, puede haber un problema con tu integración de SDK. Ten en cuenta que las Direct Opens no se registran para envíos de prueba ni para notificaciones push silenciosas.

  • Asegúrate de que los mensajes no se estén enviando como notificaciones push silenciosas. El mensaje debe tener texto en el título o en el cuerpo para no considerarse silencioso.
  • Vuelve a comprobar los siguientes pasos de la guía de integración push:
    • Registrarse para push: En cada inicio de la aplicación, preferiblemente dentro de application:didFinishLaunchingWithOptions:, el código del paso 3 debe ejecutarse. La propiedad delegate de UNUserNotificationCenter.current() debe asignarse a un objeto que implemente UNUserNotificationCenterDelegate y contenga el método (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:.
    • Habilitar el manejo de push: Verifica que el método (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: se haya implementado.
New Stuff!