Notificaciones push
Las notificaciones push te permiten enviar notificaciones desde tu aplicación cuando se producen eventos importantes. Puedes enviar una notificación push cuando tengas nuevos mensajes instantáneos que entregar, alertas de noticias de última hora que enviar o el último episodio del programa de TV favorito de tu usuario listo para que lo descargue para verlo sin conexión. También son más eficientes que la obtención en segundo plano, ya que la aplicación solo se inicia cuando es necesario.
Esta guía utiliza ejemplos de código del SDK Web de Braze 4.0.0+. Para actualizar a la última versión del SDK Web, consulta la Guía de actualización del SDK.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Web Braze.
Protocolos push
Las notificaciones push web se implementan utilizando el estándar push del W3C, compatible con la mayoría de los principales navegadores. Para más información sobre las normas específicas de los protocolos push y la compatibilidad de los navegadores, puedes consultar los recursos de Apple , Mozilla y Microsoft.
Configuración de las notificaciones push
Paso 1: Configura tu prestador de servicios
En el archivo service-worker.js de tu proyecto, añade el siguiente fragmento de código y establece la opción de inicialización manageServiceWorkerExternally a true al inicializar el SDK Web.
Tu servidor Web debe devolver un Content-Type: application/javascript al servir tu archivo de prestador de servicios. Además, si el archivo de tu prestador de servicios no tiene el nombre service-worker.js, tendrás que utilizar la opción de inicialización serviceWorkerLocation.
Paso 2: Registra el navegador
Para solicitar inmediatamente permisos push a un usuario para que su navegador pueda recibir notificaciones push, llama a braze.requestPushPermission(). Para comprobar primero si se admite push en su navegador, llama a braze.isPushSupported().
También puedes enviar un aviso push suave al usuario antes de solicitar el permiso push para mostrar tu propia interfaz de usuario relacionada con push.
En macOS, tanto Google Chrome como Google Chrome Helper (Alertas) deben ser habilitados por el usuario final en Configuración del sistema > Notificaciones antes de que puedan mostrarse las notificaciones push, incluso si se conceden permisos.
Paso 3: Desactiva skipWaiting (opcional)
El archivo del prestador de servicios Braze llamará automáticamente a skipWaiting al instalarlo. Si quieres desactivar esta funcionalidad, añade el siguiente código a tu archivo de prestador de servicios, después de importar Braze:
Cancelar suscripción de un usuario
Para cancelar la suscripción de un usuario, llama a braze.unregisterPush().
Las versiones recientes de Safari y Firefox requieren que llames a este método desde un controlador de eventos de corta duración (como desde un controlador de clic en un botón o un indicador push suave). Esto es coherente con las mejores prácticas de experiencia del usuario de Chrome para el registro push.
Dominios alternativos
Para integrar el push web, tu dominio debe ser seguro, lo que generalmente significa https, localhost y otras excepciones definidas en el estándar push del W3C. También necesitarás poder registrar un prestador de servicios en la raíz de tu dominio, o al menos poder controlar las cabeceras HTTP de ese archivo. Este artículo explica cómo integrar Braze Web Push en un dominio alternativo.
Ejemplos
Si no puedes cumplir todos los criterios descritos en el estándar push del W3C, puedes utilizar este método para añadir un cuadro de diálogo push a tu sitio web. Esto puede ser útil si quieres que tus usuarios se adhieran voluntariamente desde un sitio web http o desde una ventana emergente de una extensión del navegador que impide que se muestre tu mensaje push.
Consideraciones
Ten en cuenta que, al igual que muchas soluciones en la Web, los navegadores evolucionan continuamente, y este método puede no ser viable en el futuro. Antes de continuar, asegúrate de que
- Posees un dominio seguro independiente (
https://) y permisos para registrar un prestador de servicios en ese dominio. - Los usuarios han iniciado sesión en tu sitio web, lo que garantiza que los tokens de notificaciones push coinciden con el perfil correcto.
No puedes utilizar este método para implementar notificaciones push para Shopify. Shopify eliminará automáticamente las cabeceras necesarias para entregar push de esta forma.
Configurar un dominio push alternativo
Para que el siguiente ejemplo quede claro, utilizaremos http://insecure.com y https://secure.com como nuestros dos dominios con el objetivo de conseguir que los visitantes se registren para push en http://insecure.com. Este ejemplo también podría aplicarse a un esquema chrome-extension:// para la página emergente de una extensión del navegador.
Paso 1: Iniciar flujo de avisos
En insecure.com, abre una nueva ventana a tu dominio seguro utilizando un parámetro URL para pasar el ID externo de Braze del usuario actualmente conectado.
http://insecure.com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<button id="opt-in">Opt-In For Push</button>
<script>
// the same ID you would use with `braze.changeUser`:
const user_id = getUserIdSomehow();
// pass the user ID into the secure domain URL:
const secure_url = `https://secure.com/push-registration.html?external_id=${user_id}`;
// when the user takes some action, open the secure URL in a new window
document.getElementById("opt-in").onclick = function(){
if (!window.open(secure_url, 'Opt-In to Push', 'height=500,width=600,left=150,top=150')) {
window.alert('The popup was blocked by your browser');
} else {
// user is shown a popup window
// and you can now prompt for push in this window
}
}
</script>
Paso 2: Registro para push
En este punto, secure.com abrirá una ventana emergente en la que podrás inicializar el SDK Braze Web para el mismo ID de usuario y solicitar el permiso del usuario para el push Web.
https://secure.com/push-registration.html
Paso 3: Comunicarse entre dominios (opcional)
Ahora que los usuarios pueden adherirse voluntariamente desde este flujo de trabajo originado en insecure.com, puede que quieras modificar tu sitio en función de si el usuario ya está adherido o no. No tiene sentido pedir al usuario que se registre en push si ya lo está.
Puedes utilizar iFrames y la API postMessage para comunicarte entre tus dos dominios.
insecure.com
En nuestro dominio insecure.com, pediremos al dominio seguro (donde se registra realmente push) información sobre el registro push del usuario actual:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- Create an iframe to the secure domain and run getPushStatus onload-->
<iframe id="push-status" src="https://secure.com/push-status.html" onload="getPushStatus()" style="display:none;"></iframe>
<script>
function getPushStatus(event){
// send a message to the iframe asking for push status
event.target.contentWindow.postMessage({type: 'get_push_status'}, 'https://secure.com');
// listen for a response from the iframe's domain
window.addEventListener("message", (event) => {
if (event.origin === "http://insecure.com" && event.data.type === 'set_push_status') {
// update the page based on the push permission we're told
window.alert(`Is user registered for push? ${event.data.isPushPermissionGranted}`);
}
}
}
</script>
secure.com/push-status.html
Preguntas más frecuentes (FAQ)
Prestadores de servicios
¿Qué pasa si no puedo registrar un prestador de servicios en el directorio raíz?
Por defecto, un prestador de servicios sólo puede utilizarse dentro del mismo directorio en el que está registrado. Por ejemplo, si tu archivo de prestador de servicios existe en /assets/service-worker.js, sólo sería posible registrarlo en example.com/assets/* o en un subdirectorio de la carpeta assets, pero no en tu página de inicio (example.com/). Por esta razón, se recomienda alojar y registrar el prestador de servicios en el directorio raíz (como https://example.com/service-worker.js).
Si no puedes registrar un prestador de servicios en tu dominio raíz, una alternativa es utilizar el encabezado HTTP Service-Worker-Allowed al servir el archivo de tu prestador de servicios. Configurando tu servidor para que devuelva Service-Worker-Allowed: / en la respuesta para el prestador de servicios, esto indicará al navegador que amplíe el alcance y permita utilizarlo desde un directorio diferente.
¿Puedo crear un prestador de servicios utilizando un administrador de etiquetas?
No, los prestadores de servicios deben estar alojados en el servidor de tu sitio web y no pueden cargarse a través del administrador de etiquetas.
Seguridad del sitio
¿Se requiere HTTPS?
Sí. Las normas web exigen que el dominio que solicita el permiso de notificación push sea seguro.
¿Cuándo se considera que un sitio es “seguro”?
Un sitio se considera seguro si coincide con uno de los siguientes patrones de origen seguro. Las notificaciones push de la Web Braze se basan en esta norma abierta, por lo que se evitan los ataques de intermediario.
(https, , *)(wss, *, *)(, localhost, )(, .localhost, *)(, 127/8, )(, ::1/128, *)(file, *, —)(chrome-extension, *, —)
¿Qué pasa si no está disponible un sitio seguro?
Aunque la mejor práctica del sector es hacer que todo tu sitio sea seguro, los clientes que no puedan asegurar el dominio de su sitio pueden eludir el requisito utilizando un modal seguro. Lee más en nuestra guía sobre el uso de Dominio push alternativo o ve una demostración en funcionamiento.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Android Braze.
Características integradas
Las siguientes características están integradas en el SDK de Braze para Android. Para utilizar cualquier otra característica de notificaciones push, deberás configurar las notificaciones push para tu aplicación.
| Característica | Descripción |
|---|---|
| Historias push | Las historias push de Android están integradas de forma predeterminada en el SDK de Braze para Android. Para obtener más información, consulta historias push. |
| Push primers | Las campañas push primer animan a tus usuarios a habilitar las notificaciones push de tu aplicación en sus dispositivos. Esto puede hacerse sin necesidad de personalizar el SDK utilizando nuestro primer push sin código. |
Acerca del ciclo de vida de las notificaciones push
El siguiente diagrama de flujo muestra cómo Braze gestiona el ciclo de vida de las notificaciones push, como las solicitudes de permiso, la generación de tokens y la entrega de mensajes.
Configuración de notificaciones push
Para ver una aplicación de ejemplo que utiliza FCM con el SDK de Braze para Android, consulta Braze: Aplicación de ejemplo de push Firebase.
Límites de tarifa
La API de Firebase Cloud Messaging (FCM) tiene un límite de velocidad predeterminado de 600 000 solicitudes por minuto. Si alcanzas este límite, Braze lo volverá a intentar automáticamente en unos minutos. Para solicitar un aumento, ponte en contacto con el servicio de asistencia de Firebase.
Paso 1: Añade Firebase a tu proyecto
Primero, añade Firebase a tu proyecto de Android. Para obtener instrucciones paso a paso, consulta la guía de configuración de Firebase de Google.
Paso 2: Añade Mensajería en la Nube a tus dependencias
A continuación, añade la biblioteca Cloud Messaging a las dependencias de tu proyecto. En tu proyecto Android, abre build.gradle, y añade la siguiente línea a tu bloque dependencies.
1
implementation "google.firebase:firebase-messaging:+"
Tus dependencias deben tener un aspecto similar al siguiente:
1
2
3
4
dependencies {
implementation project(':android-sdk-ui')
implementation "com.google.firebase:firebase-messaging:+"
}
Paso 3: Habilitar la API de mensajería en la nube de Firebase
En Google Cloud, selecciona el proyecto que utiliza tu aplicación Android y, a continuación, habilita la API de mensajería de Firebase Cloud.

Paso 4: Crear una cuenta de servicio
A continuación, crea una nueva cuenta de servicio, para que Braze pueda realizar llamadas autorizadas a la API al registrar tokens de FCM. En Google Cloud, ve a Service Accounts (Cuentas de servicio) y elige tu proyecto. En la página Cuentas de servicio, selecciona Crear cuenta de servicio.

Introduce un nombre de cuenta de servicio, un ID y una descripción, luego selecciona Crear y continuar.

En el campo Rol, busca y selecciona Administrador de la API de mensajería en la nube de Firebase en la lista de roles. Para un acceso más restrictivo, crea un rol personalizado con el permiso cloudmessaging.messages.create y, en su lugar, elígelo de la lista. Cuando hayas terminado, selecciona Hecho.
Asegúrate de seleccionar Firebase Cloud Messaging API Admin, no Firebase Cloud Messaging Admin.

Paso 5: Generar credenciales JSON
A continuación, genera las credenciales JSON de tu cuenta del servicio FCM. En Google Cloud IAM&Admin, ve a Cuentas de servicio y selecciona tu proyecto. Localiza la cuenta de servicio FCM que creaste anteriormente y, a continuación, selecciona Acciones > Gestionar claves.

Selecciona Añadir clave > Crear nueva clave.

Elige JSON y selecciona Crear. Si creaste tu cuenta de servicio utilizando un ID de proyecto de Google Cloud distinto del ID de tu proyecto de FCM, tendrás que actualizar manualmente el valor asignado a project_id en tu archivo JSON.
Asegúrate de recordar dónde descargaste la clave: la necesitarás en el siguiente paso.

Las claves privadas pueden suponer un riesgo para la seguridad si se ponen en peligro. Guarda tus credenciales JSON en una ubicación segura por ahora: eliminarás tu clave después de subirla a Braze.
Paso 6: Sube tus credenciales JSON a Braze
A continuación, carga tus credenciales JSON en tu panel de Braze. En Braze, selecciona Configuración > Configuración de la aplicación .

En la configuración de notificaciones push de tu aplicación Android, elige Firebase, luego selecciona Cargar archivo JSON y carga las credenciales que generaste anteriormente. Cuando haya terminado, seleccione Guardar.

Las claves privadas pueden suponer un riesgo para la seguridad si se ponen en peligro. Ahora que tu clave está cargada en Braze, borra el archivo que generaste anteriormente.
Paso 7: Configurar el registro automático de tokens
Cuando uno de tus usuarios opta por recibir notificaciones push, tu aplicación necesita generar un token de FCM en su dispositivo antes de que puedas enviarle notificaciones push. Con el SDK de Braze, puedes habilitar el registro automático del token FCM para cada dispositivo de usuario en los archivos de configuración Braze de tu proyecto.
Primero, ve a la Consola Firebase, abre tu proyecto y selecciona Configuración > Configuración del proyecto.

Selecciona Mensajería en la nube y, a continuación, en API de mensajería en la nube de Firebase (V1), copia el número en el campo ID del remitente.

A continuación, abre tu proyecto de Android Studio y utiliza tu ID de remitente de Firebase para habilitar el registro automático del token de FCM en tu braze.xml o BrazeConfig.
Para configurar el registro automático de tokens de FCM, añade las siguientes líneas a tu archivo braze.xml:
1
2
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>
Sustituye FIREBASE_SENDER_ID por el valor que copiaste de la configuración de tu proyecto Firebase. Tu braze.xml debe tener un aspecto similar al siguiente:
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string translatable="false" name="com_braze_api_key">12345ABC-6789-DEFG-0123-HIJK456789LM</string>
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">603679405392</string>
</resources>
Para configurar el registro automático de tokens de FCM, añade las siguientes líneas a tu BrazeConfig:
1
2
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")
1
2
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")
Sustituye FIREBASE_SENDER_ID por el valor que copiaste de la configuración de tu proyecto Firebase. Tu BrazeConfig debe tener un aspecto similar al siguiente:
1
2
3
4
5
6
7
8
9
10
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setApiKey("12345ABC-6789-DEFG-0123-HIJK456789LM")
.setCustomEndpoint("sdk.iad-01.braze.com")
.setSessionTimeout(60)
.setHandlePushDeepLinksAutomatically(true)
.setGreatNetworkDataFlushInterval(10)
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("603679405392")
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
6
7
8
9
10
val brazeConfig = BrazeConfig.Builder()
.setApiKey("12345ABC-6789-DEFG-0123-HIJK456789LM")
.setCustomEndpoint("sdk.iad-01.braze.com")
.setSessionTimeout(60)
.setHandlePushDeepLinksAutomatically(true)
.setGreatNetworkDataFlushInterval(10)
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("603679405392")
.build()
Braze.configure(this, brazeConfig)
Si quieres registrar manualmente los tokens de FCM, puedes llamar a Braze.setRegisteredPushToken() dentro del método onCreate() de tu aplicación.
Paso 8: Elimina las solicitudes automáticas en tu clase de aplicación
Para evitar que Braze desencadene solicitudes de red innecesarias cada vez que envíes notificaciones push silenciosas, elimina cualquier solicitud de red automática configurada en el método onCreate() de tu clase Application. Para más información, consulta Referencia para desarrolladores de Android: Aplicación.
Mostrar notificaciones
Paso 1: Registrar el servicio de mensajería Firebase de Braze
Puedes crear un servicio de mensajería Firebase nuevo, existente o que no sea de Braze. Elige la que mejor se adapte a tus necesidades específicas.
Braze incluye un servicio para gestionar la recepción push y las intenciones abiertas. Nuestra clase BrazeFirebaseMessagingService deberá registrarse en tu AndroidManifest.xml:
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>
Nuestro código de notificación también utiliza BrazeFirebaseMessagingService para gestionar el seguimiento de las acciones de apertura y clic. Este servicio debe estar registrado en AndroidManifest.xml para funcionar correctamente. Además, recuerda que Braze antepone una clave única a las notificaciones procedentes de nuestro sistema, de modo que sólo reproduzcamos las notificaciones enviadas desde nuestros sistemas. Puedes registrar servicios adicionales por separado para recibir notificaciones enviadas desde otros servicios de FCM. ConsultaAndroidManifest.xml en la aplicación de ejemplo de Firebase Push.
Antes del SDK de Braze 3.1.1, se utilizaba AppboyFcmReceiver para gestionar el push de FCM. La clase AppboyFcmReceiver debe eliminarse de tu manifiesto y sustituirse por la integración anterior.
Si ya tienes registrado un servicio de mensajería Firebase, puedes pasar RemoteMessage objetos a Braze a través de BrazeFirebaseMessagingService.handleBrazeRemoteMessage(). Este método sólo mostrará una notificación si el objeto RemoteMessage objeto procede de Braze y lo ignorará de forma segura en caso contrario.
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// This Remote Message originated from Braze and a push notification was displayed.
// No further action is needed.
} else {
// This Remote Message did not originate from Braze.
// No action was taken and you can safely pass this Remote Message to other handlers.
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage?) {
super.onMessageReceived(remoteMessage)
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// This Remote Message originated from Braze and a push notification was displayed.
// No further action is needed.
} else {
// This Remote Message did not originate from Braze.
// No action was taken and you can safely pass this Remote Message to other handlers.
}
}
}
Si tienes otro servicio de mensajería Firebase que también te gustaría utilizar, también puedes especificar un servicio de mensajería Firebase alternativo al que llamar si tu aplicación recibe un push que no procede de Braze.
En tu braze.xml, especifica:
1
2
<bool name="com_braze_fallback_firebase_cloud_messaging_service_enabled">true</bool>
<string name="com_braze_fallback_firebase_cloud_messaging_service_classpath">com.company.OurFirebaseMessagingService</string>
o mediante la configuración en tiempo de ejecución:
1
2
3
4
5
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setFallbackFirebaseMessagingServiceEnabled(true)
.setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
val brazeConfig = BrazeConfig.Builder()
.setFallbackFirebaseMessagingServiceEnabled(true)
.setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
.build()
Braze.configure(this, brazeConfig)
Paso 2: Ajustar los iconos pequeños a las directrices de diseño
Para obtener información general sobre los iconos de notificación de Android, visita el resumen de Notificaciones.
A partir de Android N, debes actualizar o eliminar los activos de los iconos de notificación pequeños que impliquen color. El sistema Android (no el SDK de Braze) ignora todos los canales no alfa y de transparencia en los iconos de acción y en el icono pequeño de notificación. En otras palabras, Android convertirá todas las partes de tu pequeño icono de notificación en monocromo, excepto las regiones transparentes.
Para crear un pequeño activo de notificación que se muestre correctamente:
- Elimina todos los colores de la imagen excepto el blanco.
- Todas las demás regiones no blancas del activo deben ser transparentes.
Un síntoma común de un activo incorrecto es que el pequeño icono de notificación se muestre como un cuadrado monocromo sólido. Esto se debe a que el sistema Android no puede encontrar ninguna región transparente en el activo del icono pequeño de notificación.
Los siguientes íconos grandes y pequeños son ejemplos de íconos correctamente diseñados:
![]()
Paso 3: Configurar iconos de notificación
Especificar íconos en braze.xml
Braze te permite configurar tus iconos de notificación especificando recursos dibujables en tu braze.xml:
1
2
<drawable name="com_braze_push_small_notification_icon">REPLACE_WITH_YOUR_ICON</drawable>
<drawable name="com_braze_push_large_notification_icon">REPLACE_WITH_YOUR_ICON</drawable>
Es necesario configurar un pequeño icono de notificación. Si no estableces ninguno, Braze utilizará por defecto el icono de la aplicación como icono pequeño de notificación, lo que puede parecer poco óptimo.
Configurar un icono de notificación grande es opcional pero recomendable.
Especificar el color de acento del icono
El color de acento del icono de notificación se puede anular en tu braze.xml. Si no se especifica el color, el color predeterminado es el mismo gris que Lollipop utiliza para las notificaciones del sistema.
1
<integer name="com_braze_default_notification_accent_color">0xFFf33e3e</integer>
También puedes utilizar opcionalmente una referencia de color:
1
<color name="com_braze_default_notification_accent_color">@color/my_color_here</color>
Paso 4: Añadir vínculos profundos
Habilitación de la apertura automática de vínculos profundos
Para habilitar Braze para que abra automáticamente tu aplicación y cualquier vínculo profundo cuando se haga clic en una notificación push, configura com_braze_handle_push_deep_links_automatically en true, en tu braze.xml:
1
<bool name="com_braze_handle_push_deep_links_automatically">true</bool>
Esta bandera también se puede establecer mediante la configuración en tiempo de ejecución:
1
2
3
4
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setHandlePushDeepLinksAutomatically(true)
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
val brazeConfig = BrazeConfig.Builder()
.setHandlePushDeepLinksAutomatically(true)
.build()
Braze.configure(this, brazeConfig)
Si quieres gestionar de forma personalizada los vínculos profundos, tendrás que crear una devolución de llamada push que escuche las intenciones push recibidas y abiertas de Braze. Para obtener más información, consulta Uso de una devolución de llamada para eventos push.
Manejo de notificaciones en primer plano
De forma predeterminada, cuando llega una notificación push mientras la aplicación está en primer plano en Android, el sistema la muestra automáticamente. Para que Braze procese la carga útil de la notificación push (para el seguimiento de análisis, la gestión de vínculos profundos y el procesamiento personalizado), envía los datos push entrantes a Braze dentro de tuFirebaseMessagingService.onMessageReceivedmétodo.
Cómo funciona
Cuando llamas BrazeFirebaseMessagingService.handleBrazeRemoteMessagea , Braze determina si la carga útil es una notificación push de Braze y, si es así, crea y muestra la notificación con elNotificationManagerCompatmétodo . A diferencia de iOS, Android muestra las notificaciones independientemente de si la aplicación está en primer plano o en segundo plano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.example.push;
import com.braze.push.BrazeFirebaseMessagingService;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
// Let Braze process the payload and display the notification
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// Braze successfully handled the push notification
} else {
// Handle non-Braze messages
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.example.push
import com.braze.push.BrazeFirebaseMessagingService
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
// Let Braze process the payload and display the notification
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// Braze successfully handled the push notification
} else {
// Handle non-Braze messages
}
}
}
Para obtener más información, consulta el ejemplo de integración de Firebase en el repositorio del SDK de Braze para Android.
Personalización del comportamiento en primer plano
Si deseas personalizar el comportamiento en primer plano, como suprimir la notificación del sistema o mostrar una interfaz de usuario dentro de la aplicación, puedes:
- Utiliza
subscribeToPushNotificationEventspara reaccionar ante eventos push y gestionar vínculos profundos con elBrazeNotificationUtils.routeUserWithNotificationOpenedIntentmétodo . Para obtener más información, consulta el ejemplo de notificaciones push de Firebase. - Crea y publica tu propia notificación utilizando una personalizada
IBrazeNotificationFactory, o suprime la notificación sin llamarnotificationManager.notifya en tu ruta de gestión.
Para obtener más información sobre cómo personalizar las notificaciones personalizadas, consulta Fábrica de notificaciones personalizadas.
Crear vínculos profundos personalizados
Sigue las instrucciones que se encuentran en la documentación para desarrolladores de Android sobre la vinculación en profundidad si aún no has añadido vínculos profundos a tu aplicación. Para saber más sobre qué son los vínculos profundos, consulta nuestro artículo de Preguntas frecuentes.
Añadir vínculos profundos
El panel de Braze admite la configuración de vínculos profundos o URL de Web en campañas de notificaciones push y Lienzos que se abrirán cuando se haga clic en la notificación.

Personalizar el comportamiento de la pila de actividades
El SDK de Android, de forma predeterminada, colocará la actividad principal iniciadora de tu aplicación anfitriona en la pila de actividades cuando se sigan vínculos profundos push. Braze te permite configurar una actividad personalizada para que se abra en la pila de actividades en lugar de tu actividad principal iniciadora o desactivar por completo la pila de actividades.
Por ejemplo, para establecer una actividad llamada YourMainActivity como actividad de la pila trasera mediante la configuración en tiempo de ejecución:
1
2
3
4
5
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setPushDeepLinkBackStackActivityEnabled(true)
.setPushDeepLinkBackStackActivityClass(YourMainActivity.class)
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
val brazeConfig = BrazeConfig.Builder()
.setPushDeepLinkBackStackActivityEnabled(true)
.setPushDeepLinkBackStackActivityClass(YourMainActivity.class)
.build()
Braze.configure(this, brazeConfig)
Consulta la configuración equivalente para tu braze.xml. Nota que el nombre de la clase debe ser el mismo que devuelve Class.forName().
1
2
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">true</bool>
<string name="com_braze_push_deep_link_back_stack_activity_class_name">your.package.name.YourMainActivity</string>
Paso 5: Definir canales de notificación
El SDK para Android de Braze es compatible con los canales de notificación de Android. Si una notificación Braze no contiene el ID de un canal de notificación o que una notificación Braze contiene un ID de canal no válido, Braze mostrará la notificación con el canal de notificación predeterminado definido en el SDK. Los usuarios de la empresa utilizan los canales de notificación de Android dentro de la plataforma para agrupar las notificaciones.
Para configurar el nombre de usuario del canal de notificación predeterminado de Braze, utiliza BrazeConfig.setDefaultNotificationChannelName().
Para configurar la descripción orientada al usuario del canal de notificación predeterminado de Braze, utiliza BrazeConfig.setDefaultNotificationChannelDescription().
Actualiza cualquier campaña de la API con el parámetro de objeto push de Android para incluir el campo notification_channel. Si no se especifica este campo, Braze enviará la carga útil de la notificación con el ID del canal alternativo del panel.
Aparte del canal de notificación predeterminado, Braze no creará ningún canal. Todos los demás canales deben ser definidos mediante programación por la aplicación anfitriona y luego introducidos en el panel de Braze.
El nombre y la descripción predeterminados del canal también se pueden configurar en braze.xml.
1
2
<string name="com_braze_default_notification_channel_name">Your channel name</string>
<string name="com_braze_default_notification_channel_description">Your channel description</string>
Paso 6: Visualización y análisis de las notificaciones de las pruebas
Pantalla de pruebas
En este punto, deberías poder ver las notificaciones enviadas desde Braze. Para probarlo, ve a la página Campañas de tu panel de Braze y crea una campaña de Notificación push. Elige Android Push y diseña tu mensaje. A continuación, haz clic en el icono del ojo en el compositor para obtener el remitente de la prueba. Introduce el ID de usuario o la dirección de correo electrónico de tu usuario actual y haz clic en Enviar prueba. Deberías ver aparecer el push en tu dispositivo.

Para problemas relacionados con la visualización push, consulta nuestra guía de solución de problemas.
Análisis de pruebas
En este punto, también deberías tener un registro de análisis de las aperturas de notificaciones push. Si haces clic en la notificación cuando llegue, las Direct Opens de la página de resultados de tu campaña aumentarán en 1. Consulta nuestro artículo sobre los informes push para obtener más información sobre los análisis push.
Para problemas relacionados con los análisis push, consulta nuestra guía de solución de problemas.
Pruebas desde la línea de comandos
Si quieres probar las notificaciones dentro de la aplicación y las notificaciones push a través de la interfaz de línea de comandos, puedes enviar una única notificación a través del terminal mediante cURL y la API de mensajería. Tendrás que sustituir los siguientes campos por los valores correctos para tu caso de prueba:
YOUR_API_KEY(Ve a Configuración > Claves de API).YOUR_EXTERNAL_USER_ID(Busca un perfil en la página Buscar usuarios ).YOUR_KEY1(opcional)YOUR_VALUE1(opcional)
1
2
3
4
5
6
7
8
9
10
11
12
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_API_KEY}" -d '{
"external_user_ids":["YOUR_EXTERNAL_USER_ID"],
"messages": {
"android_push": {
"title":"Test push title",
"alert":"Test push",
"extra": {
"YOUR_KEY1":"YOUR_VALUE1"
}
}
}
}' https://rest.iad-01.braze.com/messages/send
Este ejemplo utiliza la instancia US-01. Si no estás en esta instancia, sustituye el punto final US-01 por tu punto final.
Notificaciones push de conversaciones

La iniciativa de personas y conversaciones es una iniciativa plurianual de Android que pretende elevar las personas y las conversaciones en las superficies del sistema del teléfono. Esta prioridad se basa en el hecho de que la comunicación y la interacción con otras personas sigue siendo el área funcional más valorada e importante para la mayoría de los usuarios de Android de todos los grupos demográficos.
Requisitos de uso
- Este tipo de notificación requiere la versión 15.0.0 en adelante del SDK de Braze para Android y dispositivos Android a partir de la versión 11.
- Los dispositivos o SDK no compatibles recibirán como alternativa una notificación push estándar.
Esta característica sólo está disponible a través de la API REST de Braze. Consulta el objeto push de Android para más información.
Errores por exceso de cuota FCM
Cuando se supera el límite de Firebase FCM, Google devuelve errores de «cuota excedida». El límite predeterminado para FCM es de 600.000 peticiones por minuto. Braze vuelve a intentar el envío según las prácticas recomendadas por Google. Sin embargo, un gran volumen de estos errores puede prolongar el tiempo de envío varios minutos. Para mitigar el posible impacto, Braze te enviará una alerta de que se está superando el límite de velocidad y las medidas que puedes tomar para evitar los errores.
Para consultar tu límite actual, ve a Google Cloud Console > Servicios de& API > API de Firebase FCM > Cuotas Límites& del sistema, o visita la página Cuotas de la API de FCM.
Buenas prácticas
Recomendamos estas prácticas recomendadas para mantener bajos estos volúmenes de error.
Solicitar un aumento del límite de velocidad a FCM
Para solicitar un aumento del límite de velocidad a FCM, puedes ponerte en contacto directamente con el servicio de asistencia de Firebase o seguir estos pasos:
- Ve a la página Cuotas de la API de FCM.
- La ubicación de la cuota de solicitudes enviadas por minuto.
- Selecciona Editar cuota.
- Introduce un nuevo valor y envía tu solicitud.
Solicita el límite de velocidad para las tasas globales a través de Braze.
Para aplicar un límite en todo el espacio de trabajo para las notificaciones push de Android, ponte en contacto con el soporte de Braze.
Límites de tarifa
Las notificaciones push tienen una tasa limitada, así que no tengas miedo de enviar tantas como necesite tu aplicación. iOS y los servidores del servicio de notificaciones push de Apple (APN) controlarán la frecuencia con la que se entregan, y no te meterás en problemas por enviar demasiadas. Si tus notificaciones push están estranguladas, podrían retrasarse hasta la próxima vez que el dispositivo envíe un paquete de mantenimiento de conexión o reciba otra notificación.
Configuración de notificaciones push
Paso 1: Sube tu token APN
Antes de que puedas enviar una notificación push de iOS utilizando Braze, tienes que cargar tu archivo de notificación push .p8, como se describe en la documentación para desarrolladores de Apple:
- En tu cuenta de desarrollador de Apple, ve a Certificados, identificadores & Perfiles.
- En Claves, selecciona Todas y haz clic en el botón de añadir (+) de la esquina superior derecha.
- En Descripción de la clave, introduce un nombre único para la clave de firma.
- En Servicios clave, selecciona la casilla Servicio de notificaciones push de Apple (APN) y, a continuación, haz clic en Continuar. Haz clic en Confirmar.
- Nota el ID de la clave. Haz clic en Descargar para generar y descargar la clave. Asegúrate de guardar el archivo descargado en un lugar seguro, ya que no puedes descargarlo más de una vez.
- En Braze, ve a Configuración > Configuración de la aplicación y carga el archivo
.p8en Certificado Apple Push. Puedes subir tu certificado push de desarrollo o de producción. Para probar las notificaciones push después de que tu aplicación esté en vivo en el App Store, se recomienda configurar un espacio de trabajo separado para la versión de desarrollo de tu aplicación. - Cuando se te solicite, introduce el ID del paquete, el ID de la llave y el ID del equipo de tu aplicación. También tendrás que especificar si quieres enviar notificaciones al entorno de desarrollo o de producción de tu aplicación, que se define por su perfil de aprovisionamiento.
- Cuando haya terminado, seleccione Guardar.
Paso 2: Habilitar las capacidades push
En Xcode, ve a la sección Capacidades& de firma del objetivo principal de la aplicación y añade la capacidad de notificaciones push.

Paso 3: Configurar el manejo de notificaciones push
Puedes utilizar el SDK de SWIFT para automatizar el procesamiento de las notificaciones remotas recibidas de Braze. Esta es la forma más sencilla de gestionar las notificaciones push y es el método de gestión recomendado.
Paso 3.1: Habilita la automatización en la propiedad push.
Para habilitar la integración push automática, establece la propiedad automation de la configuración de push en true:
1
2
let configuration = Braze.Configuration(apiKey: "{YOUR-BRAZE-API-KEY}", endpoint: "{YOUR-BRAZE-API-ENDPOINT}")
configuration.push.automation = true
1
2
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"{YOUR-BRAZE-API-KEY}" endpoint:@"{YOUR-BRAZE-API-ENDPOINT}"];
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];
Esto indica al SDK lo siguiente:
- Registra tu aplicación para notificaciones push en el sistema.
- Solicita la autorización/permiso de notificación push en la inicialización.
- Proporciona dinámicamente implementaciones para los métodos de delegado del sistema relacionados con las notificaciones push.
Los pasos de automatización realizados por el SDK son compatibles con las integraciones de gestión de notificaciones push preexistentes en tu código base. El SDK solo automatiza el procesamiento de la notificación remota recibida de Braze. Cualquier controlador del sistema implementado para procesar tus propias notificaciones remotas SDK o las de terceros seguirá funcionando cuando automation esté habilitado.
El SDK debe inicializarse en el hilo principal para habilitar la automatización de las notificaciones push. La inicialización del SDK debe producirse antes de que la aplicación haya terminado de ejecutarse o en tu implementación de AppDelegate application(_:didFinishLaunchingWithOptions:).
Si tu aplicación requiere una configuración adicional antes de inicializar el SDK, consulta la página de documentación Inicialización retardada.
Paso 3.2: Anular configuraciones individuales (opcional)
Para un control más granular, cada paso de la automatización puede habilitarse o deshabilitarse individualmente:
1
2
3
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = true
configuration.push.automation.requestAuthorizationAtLaunch = false
1
2
3
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];
configuration.push.automation.requestAuthorizationAtLaunch = NO;
Consulta Braze.Configuration.Push.Automation para conocer todas las opciones disponibles y automation para más información sobre el comportamiento de la automatización.
Si dependes de las notificaciones push para un comportamiento adicional específico de tu aplicación, aún puedes utilizar la integración push automática en lugar de la integración manual de notificaciones push. El método subscribeToUpdates(_:) permite recibir notificaciones remotas procesadas por Braze.
Paso 3.1: Registro para notificaciones push con APNs
Incluye el ejemplo de código apropiado en el método delegadoapplication:didFinishLaunchingWithOptions: de tu aplicación para que los dispositivos de tus usuarios puedan registrarse con las APN. Asegúrate de que llamas a todo el código de integración push en el hilo principal de tu aplicación.
Braze también proporciona categorías push predeterminadas para el soporte del botón de acción push, que deben añadirse manualmente a tu código de registro push. Consulta los botones de acción para notificación push para conocer los pasos adicionales de la integración.
Añade el siguiente código al método application:didFinishLaunchingWithOptions: del delegado de tu aplicación.
El siguiente ejemplo de código incluye la integración para la autenticación push provisional (líneas 5 y 6). Si no piensas utilizar la autorización provisional en tu aplicación, puedes eliminar las líneas de código que añaden UNAuthorizationOptionProvisional a las opciones de requestAuthorization.
Visita las opciones de notificación de iOS para saber más sobre la autenticación provisional push.
1
2
3
4
5
6
7
8
9
10
11
application.registerForRemoteNotifications()
let center = UNUserNotificationCenter.current()
center.setNotificationCategories(Braze.Notifications.categories)
center.delegate = self
var options: UNAuthorizationOptions = [.alert, .sound, .badge]
if #available(iOS 12.0, *) {
options = UNAuthorizationOptions(rawValue: options.rawValue | UNAuthorizationOptions.provisional.rawValue)
}
center.requestAuthorization(options: options) { granted, error in
print("Notification authorization, granted: \(granted), error: \(String(describing: error))")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[application registerForRemoteNotifications];
UNUserNotificationCenter *center = UNUserNotificationCenter.currentNotificationCenter;
[center setNotificationCategories:BRZNotifications.categories];
center.delegate = self;
UNAuthorizationOptions options = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
if (@available(iOS 12.0, *)) {
options = options | UNAuthorizationOptionProvisional;
}
[center requestAuthorizationWithOptions:options
completionHandler:^(BOOL granted, NSError *_Nullable error) {
NSLog(@"Notification authorization, granted: %d, "
@"error: %@)",
granted, error);
}];
Debes asignar tu objeto delegado utilizando center.delegate = self de forma sincrónica antes de que tu aplicación termine de ejecutarse, preferiblemente en application:didFinishLaunchingWithOptions:. Si no lo haces, puede que tu aplicación no reciba notificaciones push. Visita la documentación UNUserNotificationCenterDelegate de Apple para obtener más información.
Paso 3.2: Registrar tokens de notificaciones push con Braze
Una vez completado el registro de APN, pasa el deviceToken resultante a Braze para habilitar las notificaciones push para el usuario.
Añade el siguiente código al método application(_:didRegisterForRemoteNotificationsWithDeviceToken:) de tu aplicación:
1
AppDelegate.braze?.notifications.register(deviceToken: deviceToken)
Añade el siguiente código al método application:didRegisterForRemoteNotificationsWithDeviceToken: de tu aplicación:
1
[AppDelegate.braze.notifications registerDeviceToken:deviceToken];
Se llama al método delegado application:didRegisterForRemoteNotificationsWithDeviceToken: cada vez que se llama a application.registerForRemoteNotifications().
Si estás migrando a Braze desde otro servicio push y el dispositivo de tu usuario ya se ha registrado con APN, este método recogerá tokens de los registros existentes la próxima vez que se llame al método, y los usuarios no tendrán que volver a abrirse al push.
Paso 3.3: Habilitar la gestión push
A continuación, pasa las notificaciones push recibidas a Braze. Este paso es necesario para registrar los análisis push y la gestión de enlaces. Asegúrate de que llamas a todo el código de integración push en el hilo principal de tu aplicación.
Manejo predeterminado de las notificaciones push
Para habilitar el manejo predeterminado de notificaciones push de Braze, agrega el siguiente código al método application(_:didReceiveRemoteNotification:fetchCompletionHandler:)de tu aplicación:
1
2
3
4
5
6
7
if let braze = AppDelegate.braze, braze.notifications.handleBackgroundNotification(
userInfo: userInfo,
fetchCompletionHandler: completionHandler
) {
return
}
completionHandler(.noData)
A continuación, añade lo siguiente al método userNotificationCenter(_:didReceive:withCompletionHandler:) de tu aplicación:
1
2
3
4
5
6
7
if let braze = AppDelegate.braze, braze.notifications.handleUserNotification(
response: response,
withCompletionHandler: completionHandler
) {
return
}
completionHandler()
Para habilitar el manejo predeterminado de notificaciones push de Braze, agrega el siguiente código al método application:didReceiveRemoteNotification:fetchCompletionHandler:de tu aplicación:
1
2
3
4
5
6
7
BOOL processedByBraze = AppDelegate.braze != nil && [AppDelegate.braze.notifications handleBackgroundNotificationWithUserInfo:userInfo
fetchCompletionHandler:completionHandler];
if (processedByBraze) {
return;
}
completionHandler(UIBackgroundFetchResultNoData);
A continuación, añade el siguiente código al método (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: de tu aplicación:
1
2
3
4
5
6
7
BOOL processedByBraze = AppDelegate.braze != nil && [AppDelegate.braze.notifications handleUserNotificationWithResponse:response
withCompletionHandler:completionHandler];
if (processedByBraze) {
return;
}
completionHandler();
Manejo de las notificaciones push en primer plano
Para habilitar las notificaciones push en primer plano y permitir que Braze las reconozca cuando se reciban, implementa UNUserNotificationCenter.userNotificationCenter(_:willPresent:withCompletionHandler:). Si un usuario toca tu notificación en primer plano, se llamará al delegado push de userNotificationCenter(_:didReceive:withCompletionHandler:) y Braze registrará el evento push click.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions
) -> Void) {
if let braze = AppDelegate.braze {
// Forward notification payload to Braze for processing.
braze.notifications.handleForegroundNotification(notification: notification)
}
// Configure application's foreground notification display options.
if #available(iOS 14.0, *) {
completionHandler([.list, .banner])
} else {
completionHandler([.alert])
}
}
Para habilitar las notificaciones push en primer plano y permitir que Braze las reconozca cuando se reciban, implementa userNotificationCenter:willPresentNotification:withCompletionHandler:. Si un usuario toca tu notificación en primer plano, se llamará al delegado push de userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: y Braze registrará el evento push click.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
if (AppDelegate.braze != nil) {
// Forward notification payload to Braze for processing.
[AppDelegate.braze.notifications handleForegroundNotificationWithNotification:notification];
}
// Configure application's foreground notification display options.
if (@available(iOS 14.0, *)) {
completionHandler(UNNotificationPresentationOptionList | UNNotificationPresentationOptionBanner);
} else {
completionHandler(UNNotificationPresentationOptionAlert);
}
}
Notificaciones de pruebas
Si quieres probar las notificaciones dentro de la aplicación y las notificaciones push a través de la línea de comandos, puedes enviar una única notificación a través del terminal mediante CURL y la API de mensajería. Tendrás que sustituir los siguientes campos por los valores correctos para tu caso de prueba:
YOUR_API_KEY- disponible en Configuración > Claves de API.YOUR_EXTERNAL_USER_ID- disponible en la página Buscar usuarios. Para más información, consulta asignar ID de usuario.YOUR_KEY1(opcional)YOUR_VALUE1(opcional)
En el siguiente ejemplo, se utiliza la instancia US-01. Si no estás en esta instancia, consulta nuestra documentación de la API para ver a qué punto final debes hacer solicitudes.
1
2
3
4
5
6
7
8
9
10
11
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_API_KEY}" -d '{
"external_user_ids":["YOUR_EXTERNAL_USER_ID"],
"messages": {
"apple_push": {
"alert":"Test push",
"extra": {
"YOUR_KEY1":"YOUR_VALUE1"
}
}
}
}' https://rest.iad-01.braze.com/messages/send
Suscribirse a las actualizaciones de las notificaciones push
Para acceder a las cargas útiles de notificación push procesadas por Braze, utiliza el método Braze.Notifications.subscribeToUpdates(payloadTypes:_:).
Puedes utilizar el parámetro payloadTypes para especificar si quieres suscribirte a las notificaciones de eventos push abiertos, eventos push recibidos o ambos.
1
2
3
4
5
6
// This subscription is maintained through a Braze cancellable, which will observe for changes until the subscription is cancelled.
// You must keep a strong reference to the cancellable to keep the subscription active.
// The subscription is canceled either when the cancellable is deinitialized or when you call its `.cancel()` method.
let cancellable = AppDelegate.braze?.notifications.subscribeToUpdates(payloadTypes: [.open, .received]) { payload in
print("Braze processed notification with title '\(payload.title)' and body '\(payload.body)'")
}
Ten en cuenta que los eventos push recibidos sólo se desencadenarán para las notificaciones en primer plano y content-available para las notificaciones en segundo plano. No se desencadenará para las notificaciones recibidas mientras están terminadas ni para las notificaciones en segundo plano sin el campo content-available.
1
2
3
4
5
NSInteger filtersValue = BRZNotificationsPayloadTypeFilter.opened.rawValue | BRZNotificationsPayloadTypeFilter.received.rawValue;
BRZNotificationsPayloadTypeFilter *filters = [[BRZNotificationsPayloadTypeFilter alloc] initWithRawValue: filtersValue];
BRZCancellable *cancellable = [notifications subscribeToUpdatesWithPayloadTypes:filters update:^(BRZNotificationsPayload * _Nonnull payload) {
NSLog(@"Braze processed notification with title '%@' and body '%@'", payload.title, payload.body);
}];
Ten en cuenta que los eventos push recibidos sólo se desencadenarán para las notificaciones en primer plano y content-available para las notificaciones en segundo plano. No se desencadenará para las notificaciones recibidas mientras están terminadas ni para las notificaciones en segundo plano sin el campo content-available.
Cuando utilices la integración push automática, subscribeToUpdates(_:) es la única forma de recibir notificaciones remotas procesadas por Braze. Los métodos del sistema UIAppDelegate y UNUserNotificationCenterDelegate no se llaman cuando la notificación es procesada automáticamente por Braze.
Crea tu suscripción a notificaciones push en application(_:didFinishLaunchingWithOptions:) para asegurarte de que tu suscripción se desencadena cuando un usuario final toca una notificación mientras tu aplicación está en estado finalizado.
Manejo de notificaciones en primer plano
De forma predeterminada, cuando llega una notificación push mientras la aplicación está en primer plano, iOS no la muestra automáticamente. Para mostrar notificaciones push en primer plano y realizar su seguimiento con Braze Análisis, llama alhandleForegroundNotification(notification:)método dentro de tuUNUserNotificationCenterDelegate.userNotificationCenter(_:willPresent:withCompletionHandler:)implementación.
Cómo funciona
Cuando llamashandleForegroundNotification(notification:), Braze procesa la carga útil de la notificación para registrar los análisis y gestionar cualquier vínculo profundo o acción de botón. El comportamiento real de la visualización está controlado por elUNNotificationPresentationOptions que pasas al controlador de finalización.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import BrazeKit
import UserNotifications
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
// Let Braze process the notification payload
if let braze = AppDelegate.braze {
braze.notifications.handleForegroundNotification(notification: notification)
}
// Control how the notification appears in the foreground
if #available(iOS 14.0, *) {
completionHandler([.banner, .list, .sound])
} else {
completionHandler([.alert, .sound])
}
}
}
Para ver un ejemplo completo, consulta la muestra de integración manual de notificaciones push en el repositorio Braze Swift SDK.
Push primers
Las campañas push primer animan a tus usuarios a habilitar las notificaciones push de tu aplicación en sus dispositivos. Esto puede hacerse sin necesidad de personalizar el SDK utilizando nuestro primer push sin código.
Gestión dinámica de la puerta de enlace APN
La gestión dinámica de la puerta de enlace del servicio de notificaciones push de Apple (APN) mejora la fiabilidad y la eficiencia de las notificaciones push de iOS al detectar automáticamente el entorno APN correcto. Anteriormente, debías seleccionar manualmente los entornos APN (desarrollo o producción) para tus notificaciones push, lo que a veces provocaba configuraciones de puerta de enlace incorrectas, fallos en la entrega yBadDeviceToken errores.
Con la administración dinámica de la puerta de enlace APN, tendrás:
- Mayor fiabilidad: Las notificaciones siempre se entregan al entorno APN correcto, lo que reduce los fallos en la entrega.
- Configuración simplificada: Ya no es necesario administrar manualmente la configuración de la puerta de enlace APN.
- Resistencia a los errores: Los valores de puerta de enlace no válidos o que faltan se gestionan correctamente, lo que garantiza un servicio ininterrumpido.
Requisitos previos
Braze admite la administración dinámica de puertas de enlace APN para notificaciones push en iOS con los siguientes requisitos de versión del SDK:
Cómo funciona
Cuando una aplicación iOS se integra con el SDK Swift de Braze, envía datos relacionados con el dispositivo, incluidosaps-environment a la API del SDK de Braze, si está disponible. Elapns_gatewayvalor indica si la aplicación utiliza el entorno APN de desarrollo (dev) o de producción (prod).
Braze también almacena el valor de puerta de enlace notificado para cada dispositivo. Si se recibe un nuevo valor de puerta de enlace válido, Braze actualiza automáticamente el valor almacenado.
Cuando Braze envía una notificación push:
- Si se almacena un valor de puerta de enlace válido (dev o prod) para el dispositivo, Braze lo utiliza para determinar el entorno APN correcto.
- Si no se almacena ningún valor de puerta de enlace, Braze utiliza de forma predeterminada el entorno APN configurado en la página Configuración de la aplicación.
Preguntas más frecuentes
¿Por qué se introdujo esta característica?
Con la administración dinámica de la puerta de enlace APN, se selecciona automáticamente el entorno adecuado. Anteriormente, era necesario configurar manualmente la puerta de enlace APN, lo que podía provocarBadDeviceToken errores, la invalidación de tokens y posibles problemas de límite de velocidad de APN.
¿Cómo afecta esto al rendimiento de las entregas urgentes?
Esta característica mejora las tasas de entrega al dirigir siempre los tokens de notificaciones push al entorno APN correcto, evitando fallos causados por puertas de enlace mal configuradas.
¿Puedo desactivar esta característica?
La gestión dinámica de puertas de enlace APN está activada de forma predeterminada y proporciona mejoras en la fiabilidad. Si tienes casos de uso específicos que requieren la selección manual de la puerta de enlace, ponte en contacto con el soporte de Braze.
Acerca de las notificaciones push para Android TV

Aunque no es una característica nativa, la integración push de Android TV es posible aprovechando el SDK de Android Braze y Firebase Cloud Messaging para registrar un token de notificaciones push para Android TV. Sin embargo, es necesario crear una interfaz de usuario que muestre la carga útil de la notificación una vez recibida.
Requisitos previos
Para utilizar esta característica, tendrás que completar lo siguiente:
Configuración de las notificaciones push
Para configurar las notificaciones push para Android TV:
- Crea una vista personalizada en tu aplicación para mostrar tus notificaciones.
- Crea una fábrica de notificaciones personalizada. Esto anulará el comportamiento predeterminado del SDK y te permitirá mostrar manualmente las notificaciones. Una devolución de
nullimpedirá que el SDK lo procese y requerirá código personalizado para mostrar la notificación. Una vez completados estos pasos, ¡ya puedes empezar a enviar push a Android TV! - (Opcional) Para realizar un seguimiento eficaz del análisis de clics, configura el seguimiento del análisis de clics. Esto puede conseguirse creando una devolución de llamada push para escuchar las intenciones Braze push abiertas y recibidas.
Estas notificaciones no persistirán y sólo serán visibles para el usuario cuando el dispositivo las muestre. Esto se debe a que el centro de notificaciones de Android TV no es compatible con las notificaciones históricas.
Probar las notificaciones push de Android TV
Para probar si tu implementación push tiene éxito, envía una notificación desde el panel de Braze como harías normalmente para un dispositivo Android.
- Si la aplicación está cerrada: El mensaje push mostrará una notificación push en la pantalla.
- Si la aplicación está abierta: Tienes la oportunidad de mostrar el mensaje en tu propia interfaz de usuario alojada. Te recomendamos que sigas el estilo de la interfaz de usuario de nuestros mensajes dentro de la aplicación Android Mobile SDK.
Buenas prácticas
Para los especialistas en marketing que utilicen Braze, lanzar una campaña a Android TV será idéntico a lanzar un push a aplicaciones móviles de Android. Para dirigirte exclusivamente a estos dispositivos, te recomendamos que selecciones la aplicación Android TV en la segmentación.
La respuesta entregada y cliqueada devuelta por FCM seguirá la misma convención que un dispositivo móvil Android; por tanto, cualquier error será visible en el registro de actividad del mensaje.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de Cordova. Después de la integración del SDK, la funcionalidad básica de notificaciones push se habilita de forma predeterminada. Para utilizar notificaciones push enriquecidas e historias push, deberás configurarlas individualmente. Para utilizar los mensajes push de iOS, también debes cargar un certificado push válido.
Cada vez que añadas, elimines o actualices tus complementos de Cordova, Cordova sobrescribirá el archivo de bibliotecas en el proyecto Xcode de tu aplicación para iOS. Esto significa que tendrás que volver a configurar estas características cada vez que modifiques tus complementos de Cordova.
Habilitar la vinculación en profundidad push
De forma predeterminada, el SDK de Braze Cordova no gestiona automáticamente los vínculos profundos de las notificaciones push. Para habilitar la vinculación en profundidad push, sigue los pasos de configuración que se indican en Vinculación en profundidad. Para obtener más información sobre estas y otras opciones de configuración push, consulta Configuraciones opcionales.
Desactivar las notificaciones push básicas (solo iOS)
Después de la integración del SDK de Braze Cordova para iOS, la funcionalidad básica de notificaciones push se habilita de forma predeterminada. Para desactivar esta funcionalidad en tu aplicación iOS, añade lo siguiente a tuconfig.xmlarchivo. Para obtener más información, consulta Configuraciones opcionales.
1
2
3
4
<platform name="ios">
<preference name="com.braze.ios_disable_automatic_push_registration" value="NO" />
<preference name="com.braze.ios_disable_automatic_push_handling" value="NO" />
</platform>
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Flutter Braze.
Configuración de las notificaciones push
Paso 1: Completa la configuración inicial
Paso 1.1: Registro para push
Regístrate para recibir mensajes push mediante la API Firebase Cloud Messaging (FCM) de Google. Para una guía completa, consulta los siguientes pasos de la guía de integración push para Android nativo:
- Añade Firebase a tu proyecto.
- Añade Cloud Messaging a tus dependencias.
- Crea una cuenta de servicio.
- Generar credenciales JSON.
- Carga tus credenciales JSON en Braze.
Paso 1.2: Obtén tu ID de remitente de Google
Primero, ve a la Consola Firebase, abre tu proyecto y selecciona Configuración > Configuración del proyecto.

Selecciona Mensajería en la nube y, a continuación, en API de mensajería en la nube de Firebase (V1), copia el ID del remitente en el portapapeles.

Paso 1.3: Actualiza tu braze.xml
Añade lo siguiente a tu archivo braze.xml. Sustituye FIREBASE_SENDER_ID por el ID de remitente que copiaste anteriormente.
1
2
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>
Paso 1.1: Cargar certificados APN
Genera un certificado del servicio de notificaciones push de Apple (APN) y cárgalo en el panel de Braze. Para más información, consulta Cargar tu certificado de APN.
Paso 1.2: Añade notificaciones push a tu aplicación
Sigue la guía de integración nativa de iOS.
Paso 2: Escuchar eventos de notificación push (opcional)
Para escuchar los eventos de notificación push que Braze ha detectado y gestionado, llama a subscribeToPushNotificationEvents() y pasa un argumento para ejecutar.
Los eventos de notificación push de Braze están disponibles tanto en Android como en iOS. Debido a las diferencias de plataforma, iOS sólo detectará los eventos push de Braze cuando un usuario haya interactuado con una notificación.
1
2
3
4
5
6
7
8
9
10
// Create stream subscription
StreamSubscription pushEventsStreamSubscription;
pushEventsStreamSubscription = braze.subscribeToPushNotificationEvents((BrazePushEvent pushEvent) {
print("Push Notification event of type ${pushEvent.payloadType} seen. Title ${pushEvent.title}\n and deeplink ${pushEvent.url}");
// Handle push notification events
});
// Cancel stream subscription
pushEventsStreamSubscription.cancel();
Campos de evento de notificación push
Debido a las limitaciones de la plataforma en iOS, el SDK de Braze solo puede procesar cargas útiles push mientras la aplicación está en primer plano. Los receptores solo se activarán para el tipo de evento push_opened en iOS después de que un usuario haya interactuado con un push.
Para obtener una lista completa de los campos de notificación push, consulta la tabla siguiente:
| Nombre del campo | Tipo | Descripción |
|---|---|---|
payloadType |
Cadena | Especifica el tipo de carga útil de la notificación. Los dos valores que se envían desde el SDK Flutter de Braze son push_opened y push_received. En iOS solo se admiten eventos de push_opened. |
url |
Cadena | Especifica la URL abierta por la notificación. |
useWebview |
Booleano | Si true, la URL se abrirá en la aplicación en una vista web modal. Si false, la URL se abrirá en el navegador del dispositivo. |
title |
Cadena | Representa el título de la notificación. |
body |
Cadena | Representa el cuerpo o texto del contenido de la notificación. |
summaryText |
Cadena | Representa el texto resumido de la notificación. Está mapeado desde subtitle en iOS. |
badgeCount |
Número | Representa el recuento de señales de la notificación. |
timestamp |
Número | Representa la hora a la que la aplicación recibió la carga útil. |
isSilent |
Booleano | Si true, la carga útil se recibe en silencio. Para más detalles sobre el envío de notificaciones push silenciosas en Android, consulta Notificaciones push silenciosas en Android. Para más detalles sobre el envío de notificaciones push silenciosas en iOS, consulta Notificaciones push silenciosas en iOS. |
isBrazeInternal |
Booleano | Esto será true si se envió una carga útil de notificación para una función interna del SDK, como la sincronización de geovallas, la sincronización de Feature flags o el seguimiento de desinstalación. La carga útil se recibe de forma silenciosa para el usuario. |
imageUrl |
Cadena | Especifica la URL asociada a la imagen de notificación. |
brazeProperties |
Objeto | Representa las propiedades Braze asociadas a la campaña (pares clave-valor). |
ios |
Objeto | Representa campos específicos de iOS. |
android |
Objeto | Representa campos específicos de Android. |
Paso 3: Prueba de visualización de notificaciones push
Para probar tu integración después de configurar las notificaciones push en la capa nativa:
- Configura un usuario activo en la aplicación Flutter. Para ello, inicializa tu plugin llamando a
braze.changeUser('your-user-id'). - Ve a Campañas y crea una nueva campaña de notificación push. Elige las plataformas que deseas probar.
- Redacta tu notificación de prueba y dirígete a la pestaña Prueba. Añade el mismo
user-idque el usuario de prueba y haz clic en Enviar prueba. - En breve recibirás la notificación en tu dispositivo. Puede que tengas que comprobarlo en el centro de notificaciones o actualizar la configuración si no se muestra.
A partir de Xcode 14, puedes probar las notificaciones push remotas en un simulador de iOS.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Android Braze.
Configuración de notificaciones push
Los teléfonos más nuevos fabricados por Huawei vienen equipados con Huawei Mobile Services (HMS), un servicio utilizado para entregar mensajes push en lugar de Firebase Cloud Messaging (FCM) de Google.
Paso 1: Registro para una cuenta de desarrollador de Huawei
Antes de empezar, tendrás que registrarte y configurar una cuenta de desarrollador de Huawei. En tu cuenta de Huawei, ve a My Projects > Project Settings > App Information (Mis proyectos > Configuración del proyecto > Información de la aplicación), y toma nota de App ID y App secret.

Paso 2: Crea una nueva aplicación Huawei en el panel de Braze
En el panel de Braze, ve a Configuración de la aplicación, que aparece en la navegación Configuración.
Haz clic en + Añadir aplicación, ponle un nombre (como Mi aplicación Huawei) y selecciona Android como plataforma.

Una vez creada tu nueva aplicación Braze, localiza la configuración de notificaciones push y selecciona Huawei como proveedor de notificaciones push. A continuación, proporciona tu Huawei Client Secret y Huawei App ID.

Paso 3: Integra el SDK de mensajería de Huawei en tu aplicación
Huawei proporcionó un codelab de integración en Android en el que se detalla la integración del servicio de mensajería de Huawei en tu aplicación. Sigue estos pasos para empezar.
Después de completar el codelab, tendrás que crear un servicio de mensajes personalizado de Huawei para obtener tokens de notificaciones push y reenviar mensajes al SDK de Braze.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class CustomPushService extends HmsMessageService {
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Braze.getInstance(this.getApplicationContext()).setRegisteredPushToken(token);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (BrazeHuaweiPushHandler.handleHmsRemoteMessageData(this.getApplicationContext(), remoteMessage.getDataOfMap())) {
// Braze has handled the Huawei push notification
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
class CustomPushService: HmsMessageService() {
override fun onNewToken(token: String?) {
super.onNewToken(token)
Braze.getInstance(applicationContext).setRegisteredPushToken(token!!)
}
override fun onMessageReceived(hmsRemoteMessage: RemoteMessage?) {
super.onMessageReceived(hmsRemoteMessage)
if (BrazeHuaweiPushHandler.handleHmsRemoteMessageData(applicationContext, hmsRemoteMessage?.dataOfMap)) {
// Braze has handled the Huawei push notification
}
}
}
Después de añadir tu servicio push personalizado, añade lo siguiente a tu AndroidManifest.xml:
1
2
3
4
5
6
7
<service
android:name="package.of.your.CustomPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
Paso 4: Gestionar las notificaciones en primer plano
De forma predeterminada, cuando llega una notificación push mientras la aplicación está en primer plano, Huawei la muestra automáticamente. Para que Braze procese la carga útil de la notificación push (para el seguimiento de análisis, la gestión de vínculos profundos y el procesamiento personalizado), envía los datos push entrantes a Braze dentro de tuHmsMessageService.onMessageReceivedmétodo.
Cuando llamasBrazeHuaweiPushHandler.handleHmsRemoteMessageData, Braze determina si la carga útil es una notificación push de Braze y, si es así, crea y muestra la notificación. Para obtener más información, consulta Gestión de notificaciones en primer plano en la documentación sobre notificaciones push de Android.
Para ver un ejemplo completo, consulta la referencia del controlador Huawei en la documentación del SDK de Braze para Android.
Paso 5: Prueba tus notificaciones push (opcional)
En este punto, habrás creado una nueva aplicación Android de Huawei en el panel de Braze, la habrás configurado con tus credenciales de desarrollador de Huawei y habrás integrado los SDK de Braze y Huawei en tu aplicación.
A continuación, podemos poner a prueba la integración probando una nueva campaña push en Braze.
Paso 5.1: Crear una nueva campaña de notificación push
En la página Campañas, crea una nueva campaña y elige Notificación push como tipo de mensaje.
Después de nombrar tu campaña, elige Android Push como plataforma push.

A continuación, crea tu campaña push con un título y un mensaje.
Paso 5.2: Envía un push de prueba
En la pestaña Prueba, introduce tu ID de usuario, que habrás configurado en tu aplicación utilizando el métodochangeUser(USER_ID_STRING) , y haz clic en Enviar prueba para enviar un push de prueba.

En este punto, deberías recibir una notificación push de prueba de Braze en tu dispositivo Huawei (HMS).
Paso 5.3: Configurar la segmentación de Huawei (opcional)
Como tu aplicación de Huawei en el panel de Braze se basa en la plataforma push de Android, tienes la flexibilidad de enviar push a todos los usuarios de Android (Firebase Cloud Messaging y Huawei Mobile Services), o puedes elegir segmentar la audiencia de tu campaña en aplicaciones específicas.
Para enviar notificaciones push solo a aplicaciones Huawei, crea un nuevo segmento](/docs/es/user_guide/engagement_tools/segments/creating_a_segment/#step-3-choose-your-app-or-platform) y selecciona tu aplicación Huawei en la sección Aplicaciones.

Por supuesto, si quieres enviar el mismo push a todos los proveedores de push de Android, puedes elegir no especificar la aplicación que enviará a todas las aplicaciones de Android configuradas dentro del espacio de trabajo actual.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de React Native.
Configuración de notificaciones push
Paso 1: Completa la configuración inicial
Requisitos previos
Antes de poder utilizar Expo para las notificaciones push, deberás configurar el complemento Braze Expo.
Paso 1.1: Actualiza tu archivo app.json
A continuación, actualiza tu archivo app.json para Android e iOS:
- Android: Añade la opción
enableFirebaseCloudMessaging. - iOS: Añade la opción
enableBrazeIosPush.
Paso 1.2: Añade tu ID de remitente de Google
Primero, ve a la consola de Firebase, abre tu proyecto y selecciona Configuración > Configuración del proyecto.

Selecciona Cloud Messaging y, a continuación, en Firebase Cloud Messaging API (V1), copia el ID del remitente en el portapapeles.

A continuación, abre el archivo app.json de tu proyecto y establece la propiedad firebaseCloudMessagingSenderId en el ID del remitente de tu portapapeles. Por ejemplo:
1
"firebaseCloudMessagingSenderId": "693679403398"
Paso 1.3: Añade la ruta a tu JSON de Google Services
En el archivo app.json de tu proyecto, añade la ruta a tu archivo google-services.json. Este archivo es necesario para establecer enableFirebaseCloudMessaging: true en tu configuración.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"expo": {
"android": {
"googleServicesFile": "PATH_TO_GOOGLE_SERVICES"
},
"plugins": [
[
"@braze/expo-plugin",
{
"androidApiKey": "YOUR-ANDROID-API-KEY",
"iosApiKey": "YOUR-IOS-API-KEY",
"enableBrazeIosPush": true,
"enableFirebaseCloudMessaging": true,
"firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
"androidHandlePushDeepLinksAutomatically": true
}
],
]
}
}
Ten en cuenta que tendrás que utilizar esta configuración en lugar de las instrucciones de configuración nativas si dependes de bibliotecas de notificaciones push adicionales como Expo Notifications.
Si no utilizas el complemento Braze Expo o prefieres configurar estos ajustes de forma nativa, realiza el registro para recibir notificaciones push consultando la guía de integración de notificaciones push nativas de Android.
Si no utilizas el complemento Braze Expo o prefieres configurar estos ajustes de forma nativa, realiza el registro para recibir notificaciones push siguiendo los pasos que se indican en la guía de integración nativa de notificaciones push para iOS:
Paso 1.1: Solicitud de permisos push
Si no tienes pensado solicitar permisos push cuando se inicie la aplicación, omite la llamada requestAuthorizationWithOptions:completionHandler: en tu AppDelegate. A continuación, pasa al paso 2. Si no, sigue la guía de integración nativa de iOS.
Paso 1.2 (Opcional): Migra tu clave push
Si antes utilizabas expo-notifications para administrar tu clave push, ejecuta expo fetch:ios:certs desde la carpeta raíz de tu aplicación. Esto descargará tu clave push (un archivo .p8), que luego podrás cargar en el panel de Braze.
Paso 2: Solicitar permiso para notificaciones push
Utiliza el método Braze.requestPushPermission() (disponible a partir de la v1.38.0) para solicitar permiso para notificaciones push al usuario en iOS y Android 13+. Para Android 12 e inferiores, este método no tiene efecto.
Este método recibe un parámetro obligatorio que especifica qué permisos debe solicitar el SDK al usuario en iOS. Estas opciones no tienen efecto en Android.
1
2
3
4
5
6
7
8
const permissionOptions = {
alert: true,
sound: true,
badge: true,
provisional: false
};
Braze.requestPushPermission(permissionOptions);
Paso 2.1: Escuchar notificaciones push (opcional)
Además, puedes suscribirte a eventos en los que Braze haya detectado y gestionado una notificación push entrante. Utiliza la clave de escucha Braze.Events.PUSH_NOTIFICATION_EVENT.
Los eventos push recibidos de iOS solo se desencadenarán para las notificaciones en primer plano y las notificaciones en segundo plano con content-available. No se desencadenarán para las notificaciones recibidas mientras la aplicación está terminada ni para las notificaciones en segundo plano sin el campo content-available.
1
2
3
4
Braze.addListener(Braze.Events.PUSH_NOTIFICATION_EVENT, data => {
console.log(`Push Notification event of type ${data.payload_type} seen. Title ${data.title}\n and deeplink ${data.url}`);
console.log(JSON.stringify(data, undefined, 2));
});
Campos de evento de notificación push
Para obtener una lista completa de los campos de notificación push, consulta la tabla siguiente:
| Nombre del campo | Tipo | Descripción |
|---|---|---|
payload_type |
Cadena | Especifica el tipo de carga útil de la notificación. Los dos valores que se envían desde el SDK de Braze para React Native son push_opened y push_received. |
url |
Cadena | Especifica la URL abierta por la notificación. |
use_webview |
Booleano | Si es true, la URL se abrirá dentro de la aplicación en una vista web modal. Si es false, la URL se abrirá en el navegador del dispositivo. |
title |
Cadena | Representa el título de la notificación. |
body |
Cadena | Representa el cuerpo o texto del contenido de la notificación. |
summary_text |
Cadena | Representa el texto resumido de la notificación. Está mapeado desde subtitle en iOS. |
badge_count |
Número | Representa el recuento de señales de la notificación. |
timestamp |
Número | Representa la hora a la que la aplicación recibió la carga útil. |
is_silent |
Booleano | Si es true, la carga útil se recibe en silencio. Para más detalles sobre el envío de notificaciones push silenciosas en Android, consulta Notificaciones push silenciosas en Android. Para más detalles sobre el envío de notificaciones push silenciosas en iOS, consulta Notificaciones push silenciosas en iOS. |
is_braze_internal |
Booleano | Será true si se envió una carga útil de notificación para una característica interna del SDK, como la sincronización de geovallas, la sincronización de conmutadores de características o Uninstall Tracking. La carga útil se recibe de forma silenciosa para el usuario. |
image_url |
Cadena | Especifica la URL asociada a la imagen de notificación. |
braze_properties |
Objeto | Representa las propiedades de Braze asociadas a la campaña (pares clave-valor). |
ios |
Objeto | Representa campos específicos de iOS. |
android |
Objeto | Representa campos específicos de Android. |
Paso 3: Habilitar la vinculación en profundidad (opcional)
Para habilitar que Braze pueda gestionar vínculos profundos dentro de los componentes React cuando se hace clic en una notificación push, primero implementa los pasos descritos en la biblioteca React Native Linking o con la solución que prefieras. A continuación, sigue los pasos adicionales que se indican a continuación.
Para saber más sobre qué son los vínculos profundos, consulta nuestro artículo de preguntas frecuentes.
Si utilizas el complemento Braze Expo, puedes gestionar automáticamente los vínculos profundos de las notificaciones push configurando androidHandlePushDeepLinksAutomatically en true en tu app.json.
Para gestionar los vínculos profundos manualmente, consulta la documentación nativa de Android: Añadir vínculos profundos.
Paso 3.1: Almacenar la carga útil de la notificación push al iniciar la aplicación
Esto es compatible a partir de React Native SDK 19.1.0.
Añade populateInitialPushPayloadFromIntent al método onCreate() de tu actividad principal. Esto debe llamarse antes de que React Native se inicialice para capturar los datos iniciales de intención. Por ejemplo:
1
2
3
4
override fun onCreate(savedInstanceState: Bundle?) {
BrazeReactUtils.populateInitialPushPayloadFromIntent(intent)
super.onCreate(savedInstanceState)
}
Paso 3.2: Gestionar vínculos profundos desde un estado cerrado
Además de los escenarios básicos que maneja React Native Linking, implementa el método Braze.getInitialPushPayload y recupera el valor url para tener en cuenta los vínculos profundos de las notificaciones push que abren tu aplicación cuando no está en ejecución. Por ejemplo:
1
2
3
4
5
6
7
8
// Handles deep links when an app is launched from a hard close via push click.
Braze.getInitialPushPayload(pushPayload => {
if (pushPayload) {
console.log('Braze.getInitialPushPayload is ' + pushPayload);
showToast('Initial URL is ' + pushPayload.url);
handleOpenUrl({ pushPayload.url });
}
});
Este método requiere la configuración nativa del paso 3.1 para tu plataforma. Si utilizas el complemento Braze Expo, es posible que esto se gestione automáticamente.
Para gestionar vínculos profundos desde notificaciones push en iOS, también debes configurar la gestión de enlaces en tu capa nativa de iOS.
Esto incluye registrar un esquema de URL personalizado e implementar un controlador de URL en tu AppDelegate. Para obtener instrucciones completas de configuración, consulta Gestión de vínculos profundos en la documentación nativa de iOS.
Paso 3.1: Almacenar la carga útil de la notificación push al iniciar la aplicación
Omite el paso 3.1 si utilizas el complemento Braze Expo, ya que esta función se gestiona automáticamente.
Para iOS, añade populateInitialPayloadFromLaunchOptions al método didFinishLaunchingWithOptions de tu AppDelegate. Por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// ... Perform regular React Native setup
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:apiKey endpoint:endpoint];
configuration.triggerMinimumTimeInterval = 1;
configuration.logger.level = BRZLoggerLevelInfo;
Braze *braze = [BrazeReactBridge initBraze:configuration];
AppDelegate.braze = braze;
[self registerForPushNotifications];
[[BrazeReactUtils sharedInstance] populateInitialPayloadFromLaunchOptions:launchOptions];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
// ... Perform regular React Native setup
let configuration = Braze.Configuration(apiKey: apiKey, endpoint: endpoint)
configuration.triggerMinimumTimeInterval = 1
configuration.logger.level = .info
let braze = BrazeReactBridge.initBraze(configuration)
AppDelegate.braze = braze
registerForPushNotifications()
BrazeReactUtils.shared().populateInitialPayload(fromLaunchOptions: launchOptions)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
Paso 3.2: Gestionar vínculos profundos desde un estado cerrado
Además de los escenarios básicos que maneja React Native Linking, implementa el método Braze.getInitialPushPayload y recupera el valor url para tener en cuenta los vínculos profundos de las notificaciones push que abren tu aplicación cuando no está en ejecución. Por ejemplo:
1
2
3
4
5
6
7
8
// Handles deep links when an app is launched from a hard close via push click.
Braze.getInitialPushPayload(pushPayload => {
if (pushPayload) {
console.log('Braze.getInitialPushPayload is ' + pushPayload);
showToast('Initial URL is ' + pushPayload.url);
handleOpenUrl({ pushPayload.url });
}
});
Este método requiere la configuración nativa del paso 3.1 para tu plataforma. Si utilizas el complemento Braze Expo, es posible que esto se gestione automáticamente.
Paso 3.3: Habilitar enlaces universales (opcional)
Para habilitar la compatibilidad con enlaces universales, implementa un delegado de Braze que determine si se debe abrir una URL determinada y, a continuación, regístralo en tu instancia de Braze.
Crea un archivo BrazeReactDelegate.swift en tu directorio iOS y añade lo siguiente. Reemplaza YOUR_DOMAIN_HOST por tu dominio real.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import Foundation
import BrazeKit
import UIKit
class BrazeReactDelegate: NSObject, BrazeDelegate {
/// This delegate method determines whether to open a given URL.
/// Reference the context to get additional details about the URL payload.
func braze(_ braze: Braze, shouldOpenURL context: Braze.URLContext) -> Bool {
if let host = context.url.host,
host.caseInsensitiveCompare("YOUR_DOMAIN_HOST") == .orderedSame {
// Sample custom handling of universal links
let application = UIApplication.shared
let userActivity = NSUserActivity(activityType: NSUserActivityTypeBrowsingWeb)
userActivity.webpageURL = context.url
// Routes to the `continueUserActivity` method, which should be handled in your AppDelegate.
application.delegate?.application?(
application,
continue: userActivity,
restorationHandler: { _ in }
)
return false
}
// Let Braze handle links otherwise
return true
}
}
A continuación, crea y registra tu BrazeReactDelegate en didFinishLaunchingWithOptions del archivo AppDelegate.swift de tu proyecto.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import BrazeKit
class AppDelegate: UIResponder, UIApplicationDelegate {
static var braze: Braze?
// Keep a strong reference to the BrazeDelegate so it is not deallocated.
private var brazeDelegate: BrazeReactDelegate?
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
// Other setup code (e.g., Braze initialization)
brazeDelegate = BrazeReactDelegate()
AppDelegate.braze?.delegate = brazeDelegate
return true
}
}
Crea un archivo BrazeReactDelegate.h en tu directorio iOS y, a continuación, añade el siguiente fragmento de código.
1
2
3
4
5
6
#import <Foundation/Foundation.h>
#import <BrazeKit/BrazeKit-Swift.h>
@interface BrazeReactDelegate: NSObject<BrazeDelegate>
@end
A continuación, crea un archivo BrazeReactDelegate.m y añade el siguiente fragmento de código. Reemplaza YOUR_DOMAIN_HOST por tu dominio real.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#import "BrazeReactDelegate.h"
#import <UIKit/UIKit.h>
@implementation BrazeReactDelegate
/// This delegate method determines whether to open a given URL.
///
/// Reference the `BRZURLContext` object to get additional details about the URL payload.
- (BOOL)braze:(Braze *)braze shouldOpenURL:(BRZURLContext *)context {
if ([[context.url.host lowercaseString] isEqualToString:@"YOUR_DOMAIN_HOST"]) {
// Sample custom handling of universal links
UIApplication *application = UIApplication.sharedApplication;
NSUserActivity* userActivity = [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
userActivity.webpageURL = context.url;
// Routes to the `continueUserActivity` method, which should be handled in your `AppDelegate`.
[application.delegate application:application
continueUserActivity:userActivity restorationHandler:^(NSArray<id<UIUserActivityRestoring>> * _Nullable restorableObjects) {}];
return NO;
}
// Let Braze handle links otherwise
return YES;
}
@end
A continuación, crea y registra tu BrazeReactDelegate en didFinishLaunchingWithOptions del archivo AppDelegate.m de tu proyecto.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#import "BrazeReactUtils.h"
#import "BrazeReactDelegate.h"
@interface AppDelegate ()
// Keep a strong reference to the BrazeDelegate to ensure it is not deallocated.
@property (nonatomic, strong) BrazeReactDelegate *brazeDelegate;
@end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Other setup code
self.brazeDelegate = [[BrazeReactDelegate alloc] init];
braze.delegate = self.brazeDelegate;
}
Para ver un ejemplo de integración, consulta nuestra aplicación de muestra aquí.
Paso 4: Gestionar las notificaciones en primer plano
El manejo de las notificaciones en primer plano funciona de manera diferente según la plataforma y la configuración. Elige el enfoque que mejor se adapte a tu integración:
En iOS, la gestión de las notificaciones en primer plano es igual que en la integración nativa de Swift. Llama a handleForegroundNotification(notification:) dentro de tu implementación de UNUserNotificationCenterDelegate.userNotificationCenter(_:willPresent:withCompletionHandler:).
Para obtener información detallada y ejemplos de código, consulta Gestión de notificaciones en primer plano en la documentación sobre notificaciones push de Swift.
En Android, la gestión de las notificaciones en primer plano es igual que en la integración nativa de Android. Llama a BrazeFirebaseMessagingService.handleBrazeRemoteMessage dentro de tu método FirebaseMessagingService.onMessageReceived.
Para obtener información detallada y ejemplos de código, consulta Gestión de notificaciones en primer plano en la documentación sobre notificaciones push de Android.
En el flujo de trabajo gestionado por Expo, no se llama directamente a los controladores de notificaciones nativos. En su lugar, utiliza la API de notificaciones de Expo para controlar la presentación en primer plano, mientras que el complemento Braze Expo se encarga automáticamente del procesamiento nativo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import * as Notifications from 'expo-notifications';
import Braze from '@braze/react-native-sdk';
// Control foreground presentation in Expo
Notifications.setNotificationHandler({
handleNotification: async () => ({
shouldShowAlert: true, // Show alert while in foreground
shouldPlaySound: false,
shouldSetBadge: false,
}),
});
// React to Braze push events
const subscription = Braze.addListener('pushNotificationEvent', (event) => {
console.log('Braze push event', {
type: event.payload_type, // "push_received" | "push_opened"
title: event.title,
url: event.url,
is_silent: event.is_silent,
});
// Handle deep links, custom behavior, etc.
});
// Handle initial payload when app launches via push
Braze.getInitialPushPayload((payload) => {
if (payload) {
console.log('Initial push payload', payload);
}
});
En el flujo de trabajo gestionado por Expo, el complemento Braze Expo se encarga automáticamente del procesamiento push nativo. Puedes controlar la interfaz de usuario en primer plano a través de las opciones de presentación de notificaciones de Expo que se muestran arriba.
Para integraciones con flujo de trabajo básico, sigue los enfoques nativos de iOS y Android.
Paso 5: Enviar una notificación push de prueba
En este punto, deberías poder enviar notificaciones a los dispositivos. Sigue los pasos siguientes para probar tu integración push.
A partir de macOS 13, en determinados dispositivos, puedes probar las notificaciones push de iOS en un simulador de iOS 16+ que se ejecute en Xcode 14 o superior. Para más detalles, consulta las Notas de la versión de Xcode 14.
- Establece un usuario activo en la aplicación React Native llamando al método
Braze.changeUserId('your-user-id'). - Ve a Campañas y crea una nueva campaña de notificación push. Elige las plataformas que deseas probar.
- Redacta tu notificación de prueba y dirígete a la pestaña Prueba. Añade el mismo
user-idque el usuario de prueba y haz clic en Enviar prueba. En breve recibirás la notificación en tu dispositivo.

Uso del complemento Expo
Después de configurar las notificaciones push para Expo, puedes utilizarlo para gestionar los siguientes comportamientos de las notificaciones push, sin necesidad de escribir ningún código en las capas nativas de Android o iOS.
Reenviar push de Android a FMS adicionales
Si quieres utilizar un Firebase Messaging Service (FMS) adicional, puedes especificar un FMS alternativo al que llamar si tu aplicación recibe un push que no procede de Braze. Por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"expo": {
"plugins": [
[
"@braze/expo-plugin",
{
...
"androidFirebaseMessagingFallbackServiceEnabled": true,
"androidFirebaseMessagingFallbackServiceClasspath": "com.company.OurFirebaseMessagingService"
}
]
]
}
}
Utilizar extensiones de aplicación con Expo Application Services
Si utilizas Expo Application Services (EAS) y has habilitado enableBrazeIosRichPush o enableBrazeIosPushStories, tendrás que declarar los identificadores de paquete correspondientes para cada extensión de aplicación en tu proyecto. Hay varias formas de abordar este paso, dependiendo de cómo esté configurado tu proyecto para gestionar la firma de código con EAS.
Una forma de hacerlo es utilizar la configuración de appExtensions en tu archivo app.json siguiendo la documentación sobre extensiones de aplicación de Expo. Alternativamente, puedes configurar la opción multitarget en tu archivo credentials.json siguiendo la documentación sobre credenciales locales de Expo.
Solución de problemas
Estos son los pasos habituales para la solución de problemas relacionados con las integraciones de notificaciones push con el SDK de Braze para React Native y el complemento Expo.
Las notificaciones push han dejado de funcionar
Si las notificaciones push a través del complemento Expo han dejado de funcionar:
- Comprueba que el SDK de Braze sigue realizando el seguimiento de las sesiones.
- Comprueba que el SDK no se haya desactivado mediante una llamada explícita o implícita a
wipeData. - Revisa cualquier actualización reciente de Expo o sus bibliotecas relacionadas, ya que puede haber conflictos con tu configuración de Braze.
- Revisa las dependencias del proyecto añadidas recientemente y comprueba si están anulando manualmente tus métodos delegados de notificaciones push existentes.
Para integraciones con iOS, también puedes consultar nuestro tutorial de configuración de notificaciones push, que te ayudará a identificar posibles conflictos con las dependencias de tu proyecto.
El token del dispositivo no se registra en Braze
Si el token de tu dispositivo no se registra en Braze, primero revisa Las notificaciones push han dejado de funcionar.
Si el problema persiste, es posible que haya una dependencia independiente que interfiera con la configuración de las notificaciones push de Braze. Puedes intentar eliminarla o llamar manualmente a Braze.registerPushToken en su lugar.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Web Braze. También tendrás que configurar las notificaciones push para el SDK web. Ten en cuenta que solo puedes enviar notificaciones push a usuarios de iOS y iPadOS que utilicen Safari v16.4 o posterior.
Configuración de Safari Push para dispositivos móviles
Paso 1: Crear un archivo de manifiesto
Un Manifiesto de Aplicación Web es un archivo JSON que controla cómo se presenta tu sitio web cuando se instala en la pantalla de inicio de un usuario.
Por ejemplo, puedes configurar el color del tema de fondo y el icono que utiliza el Conmutador de Aplicaciones, si se representa a pantalla completa para parecerse a una aplicación nativa, o si la aplicación debe abrirse en modo horizontal o vertical.
Crea un nuevo archivo manifest.json en el directorio raíz de tu sitio web, con los siguientes campos obligatorios.
1
2
3
4
5
6
7
8
9
{
"name": "your app name",
"short_name": "your app name",
"display": "fullscreen",
"icons": [{
"src": "favicon.ico",
"sizes": "128x128",
}]
}
La lista completa de campos admitidos se encuentra aquí.
Paso 2: Enlaza el archivo de manifiesto
Añade la siguiente etiqueta <link> al elemento <head> de tu sitio web, indicando dónde está alojado tu archivo de manifiesto.
1
<link rel="manifest" href="/manifest.json" />
Paso 3: Añadir un prestador de servicios
Tu sitio web debe tener un archivo de prestador de servicios que importe la biblioteca de prestadores de servicios Braze, como se describe en nuestra guía de integración push web.
Paso 4: Añadir a la pantalla de inicio
Los navegadores web más populares (como Safari, Chrome, Firefox y Edge) admiten notificaciones push web en sus últimas versiones. Para solicitar permiso push en iOS o iPadOS, tu sitio web debe añadirse a la pantalla de inicio del usuario seleccionando Compartir en > Añadir a la pantalla de inicio. La opción «Añadir a la pantalla de inicio» permite a los usuarios marcar tu sitio web como favorito, añadiendo tu icono a su valiosa pantalla de inicio.

Paso 5: Mostrar el mensaje push nativo
Una vez que la aplicación se haya añadido a tu pantalla de inicio, podrás solicitar permiso para enviar notificaciones push cuando el usuario realice una acción (como hacer clic en un botón). Esto puede hacerse utilizando el método requestPushPermission o con un mensaje dentro de la aplicación como push primer sin código.
Después de aceptar o rechazar el mensaje, debes eliminar y volver a instalar el sitio web en tu pantalla de inicio para poder volver a mostrar el mensaje.

Por ejemplo:
1
2
3
4
5
6
7
8
9
import { requestPushPermission } from "@braze/web-sdk";
button.onclick = function(){
requestPushPermission(() => {
console.log(`User accepted push prompt`);
}, (temporary) => {
console.log(`User ${temporary ? "temporarily dismissed" : "permanently denied"} push prompt`);
});
};
Próximos pasos
A continuación, envíate un mensaje de prueba para validar la integración. Una vez completada la integración, puedes utilizar nuestros mensajes push sin código para optimizar tus tasas de adhesión voluntaria push.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de Unity.
Configuración de la notificación push
Paso 1: Configurar la plataforma
Paso 1.1: Habilitar Firebase
Para empezar, sigue la documentación de configuración de Firebase Unity.
La integración del SDK Unity de Firebase puede hacer que se anule tu AndroidManifest.xml. Si eso ocurre, asegúrate de revertirlo al original.
Paso 1.2: Configura tus credenciales de Firebase
Tienes que introducir tu clave de servidor Firebase y tu ID de remitente en el panel de Braze. Para ello, accede a la consola de desarrolladores de Firebase y selecciona tu proyecto Firebase. A continuación, selecciona Mensajería en la nube en Configuración y copia la clave del servidor y el ID del remitente:
En Braze, selecciona tu aplicación Android en la página Configuración de la aplicación, en Administrar configuración. A continuación, introduce tu clave de servidor de Firebase en el campo Clave de servidor de mensajería en la nube de Firebase y el ID de remitente de Firebase en el campo ID de remitente de mensajería en la nube de Firebase.

Paso 1.1: Verifica el método de integración
Braze proporciona una solución nativa de Unity para automatizar las integraciones push de iOS. Si prefieres configurar y administrar tu integración manualmente, consulta Swift: Notificaciones push.
De lo contrario, continúa con el siguiente paso.
Nuestra solución de notificación push automática aprovecha la característica de Autorización Provisional de iOS 12 y no se puede utilizar con la ventana emergente de notificación push nativa.
Paso 1.1: Habilitar ADM
- Crea una cuenta en el Portal del Desarrollador de Amazon Apps & Games si aún no lo has hecho.
- Obtén credenciales OAuth (ID de cliente y secreto de cliente) y una clave de API de ADM.
- Habilita el Registro Automático de ADM Habilitado en la ventana de Configuración de Unity Braze.
- Alternativamente, puedes añadir la siguiente línea a tu archivo
res/values/braze.xmlpara habilitar el registro de ADM:
- Alternativamente, puedes añadir la siguiente línea a tu archivo
1
<bool name="com_braze_push_adm_messaging_registration_enabled">true</bool>
Paso 2: Configurar notificaciones push
Paso 2.1: Configurar los ajustes push
El SDK de Braze puede gestionar automáticamente el registro push con los servidores de mensajería en la nube de Firebase para que los dispositivos reciban notificaciones push. En Unity, habilita Automatizar integración Android de Unity y, a continuación, configura los siguientes ajustes de notificación push.
| Configuración | Descripción |
|---|---|
| Habilitado el registro automático de mensajería en la nube Firebase | Ordena al SDK de Braze que recupere y envíe automáticamente un token de notificaciones push de FCM para un dispositivo. |
| ID de remitente de Firebase Cloud Messaging | El ID de remitente de tu consola Firebase. |
| Gestiona los vínculos profundos push automáticamente | Si el SDK debe gestionar la apertura de vínculos profundos o la apertura de la aplicación cuando se hace clic en las notificaciones push. |
| Pequeño icono de notificación Dibujable | El dibujable debe mostrarse como el icono pequeño siempre que se reciba una notificación push. La notificación utilizará el icono de la aplicación como icono pequeño si no se proporciona ningún icono. |
Paso 2.1: Sube tu token de APNs
Antes de que puedas enviar una notificación push de iOS utilizando Braze, tienes que cargar tu archivo de notificación push .p8, como se describe en la documentación para desarrolladores de Apple:
- En tu cuenta de desarrollador de Apple, ve a Certificados, identificadores & Perfiles.
- En Claves, selecciona Todas y haz clic en el botón de añadir (+) de la esquina superior derecha.
- En Descripción de la clave, introduce un nombre único para la clave de firma.
- En Servicios clave, selecciona la casilla Servicio de notificaciones push de Apple (APN) y, a continuación, haz clic en Continuar. Haz clic en Confirmar.
- Nota el ID de la clave. Haz clic en Descargar para generar y descargar la clave. Asegúrate de guardar el archivo descargado en un lugar seguro, ya que no puedes descargarlo más de una vez.
- En Braze, ve a Configuración > Configuración de la aplicación y carga el archivo
.p8en Certificado Apple Push. Puedes subir tu certificado push de desarrollo o de producción. Para probar las notificaciones push después de que tu aplicación esté en vivo en el App Store, se recomienda configurar un espacio de trabajo separado para la versión de desarrollo de tu aplicación. - Cuando se te solicite, introduce el ID del paquete, el ID de la llave y el ID del equipo de tu aplicación. También tendrás que especificar si quieres enviar notificaciones al entorno de desarrollo o de producción de tu aplicación, que se define por su perfil de aprovisionamiento.
- Cuando haya terminado, seleccione Guardar.
Paso 2.2: Habilitar push automático
Abre los ajustes de configuración de Braze en el editor de Unity navegando hasta Braze > Configuración de Braze.
Marca Integrar Push con Braze para registrar automáticamente usuarios para notificaciones push, pasar tokens de notificaciones push a Braze, hacer un seguimiento de los análisis de aperturas push y aprovechar nuestra gestión predeterminada de notificaciones push.
Paso 2.3: Habilitar push en segundo plano (opcional)
Marca Activar Push en segundo plano si quieres habilitar background mode para las notificaciones push. Esto permite al sistema despertar tu aplicación del estado suspended cuando llega una notificación push, habilitando tu aplicación para descargar contenido en respuesta a las notificaciones push. Marcar esta opción es necesario para nuestra funcionalidad de seguimiento de la desinstalación.

Paso 2.4: Desactivar el registro automático (opcional)
Los usuarios que aún no hayan optado por la adhesión voluntaria a las notificaciones push serán autorizados automáticamente a recibir notificaciones push al abrir tu aplicación. Para desactivar esta característica y registrar manualmente a los usuarios para push, marca Desactivar registro push automático.
- Si la opción Desactivar autorización provisional no está marcada en iOS 12 o posterior, el usuario estará autorizado provisionalmente (de forma silenciosa) a recibir push silenciosos. Si está marcada, se mostrará al usuario el aviso push nativo.
- Si necesitas configurar exactamente cuándo se muestra el aviso en tiempo de ejecución, desactiva el registro automático desde el editor de configuración de Braze y utiliza en su lugar
AppboyBinding.PromptUserForPushPermissions().

Paso 2.1: Actualiza AndroidManifest.xml
Si tu aplicación no tiene una dirección AndroidManifest.xml, puedes utilizar la siguiente plantilla. De lo contrario, si ya tienes un AndroidManifest.xml, asegúrate de que cualquiera de las siguientes secciones que faltan se añaden a tu AndroidManifest.xml existente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="REPLACE_WITH_YOUR_PACKAGE_NAME">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<permission
android:name="REPLACE_WITH_YOUR_PACKAGE_NAME.permission.RECEIVE_ADM_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="REPLACE_WITH_YOUR_PACKAGE_NAME.permission.RECEIVE_ADM_MESSAGE" />
<uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE" />
<application android:icon="@drawable/app_icon"
android:label="@string/app_name">
<!-- Calls the necessary Braze methods to ensure that analytics are collected and that push notifications are properly forwarded to the Unity application. -->
<activity android:name="com.braze.unity.BrazeUnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:screenOrientation="sensor">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.braze.push.BrazeAmazonDeviceMessagingReceiver" android:permission="com.amazon.device.messaging.permission.SEND">
<intent-filter>
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
<category android:name="REPLACE_WITH_YOUR_PACKAGE_NAME" />
</intent-filter>
</receiver>
</application>
</manifest>
Paso 2.2: Almacena tu clave de API de ADM
En primer lugar, genera una clave de API ADM para tu aplicación, luego guarda la clave en un archivo llamado api_key.txt y añádelo al directorio Assets/ de tu proyecto.
Amazon no reconocerá tu clave si api_key.txt contiene algún carácter de espacio en blanco, como un salto de línea final.
A continuación, en tu archivo mainTemplate.gradle, añade lo siguiente:
1
2
3
4
5
6
7
task copyAmazon(type: Copy) {
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
from unityProjectPath + '/Assets/api_key.txt'
into new File(projectDir, 'src/main/assets')
}
preBuild.dependsOn(copyAmazon)
Paso 2.3: Añadir archivo jar de ADM
El archivo jar ADM necesario puede colocarse en cualquier lugar de tu proyecto de acuerdo con la documentación JAR de Unity.
Paso 2.4: Añadir el secreto de cliente y el ID de cliente a tu panel de Braze
Por último, debes añadir el secreto de cliente y el ID de cliente que obtuviste en el paso 1 a la página Administrar configuración del panel de Braze.

Paso 3: Configurar escuchas push
Paso 3.1: Habilitar la escucha push recibida
El receptor de notificaciones push se activa cuando un usuario recibe una notificación push. Para enviar la carga útil push a Unity, establece el nombre de tu objeto del juego y el método de devolución de llamada del receptor push en Establecer receptor push.
Paso 3.2: Habilitar la escucha abierta push
El receptor push abierto se activa cuando un usuario inicia la aplicación haciendo clic en una notificación push. Para enviar la carga útil de push a Unity, establece el nombre de tu objeto del juego y el método de devolución de llamada de escucha abierta push en Establecer escucha abierta push.
Paso 3.3: Habilitar la escucha push eliminada
El receptor de notificaciones push eliminadas se activa cuando un usuario elimina o rechaza una notificación push. Para enviar la carga útil de push a Unity, establece el nombre de tu objeto del juego y el método de devolución de llamada de escucha eliminada push en Establecer escucha eliminada push.
Ejemplo de receptor push
En el siguiente ejemplo se implementa el objeto del juego BrazeCallback utilizando un nombre de método de devolución de llamada de PushNotificationReceivedCallback, PushNotificationOpenedCallback y PushNotificationDeletedCallback respectivamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class MainMenu : MonoBehaviour {
void PushNotificationReceivedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationReceivedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification received: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push received Notification event: " + pushNotification);
#endif
}
void PushNotificationOpenedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationOpenedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification opened: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push opened Notification event: " + pushNotification);
#endif
}
void PushNotificationDeletedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationDeletedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification dismissed: " + pushNotification);
#endif
}
}
Paso 3.1: Habilitar la escucha push recibida
El receptor de notificaciones push se activa cuando un usuario recibe una notificación push mientras utiliza activamente la aplicación (por ejemplo, cuando la aplicación está en primer plano). Configura la escucha push recibida en el editor de configuración de Braze. Si necesitas configurar la escucha de tu objeto del juego en tiempo de ejecución, utiliza AppboyBinding.ConfigureListener() y especifica BrazeUnityMessageType.PUSH_RECEIVED.

Paso 3.2: Habilitar la escucha abierta push
El receptor push abierto se activa cuando un usuario inicia la aplicación haciendo clic en una notificación push. Para enviar la carga útil de push a Unity, establece el nombre de tu objeto del juego y el método de devolución de llamada de la escucha push abierta en la opción Establecer escucha push abierta:

Si necesitas configurar la escucha de tu objeto del juego en tiempo de ejecución, utiliza AppboyBinding.ConfigureListener() y especifica BrazeUnityMessageType.PUSH_OPENED.
Ejemplo de receptor push
El siguiente ejemplo implementa el objeto del juego AppboyCallback utilizando un nombre de método de devolución de llamada de PushNotificationReceivedCallback y PushNotificationOpenedCallback, respectivamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class MainMenu : MonoBehaviour {
void PushNotificationReceivedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationReceivedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification received: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push received Notification event: " + pushNotification);
#endif
}
void PushNotificationOpenedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationOpenedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification opened: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push opened Notification event: " + pushNotification);
#endif
}
}
Al actualizar tu AndroidManifest.xml en el paso anterior, las escuchas push se configuraron automáticamente cuando añadiste las siguientes líneas. Por lo tanto, no es necesaria ninguna otra configuración.
1
2
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
Para saber más sobre las escuchas push de ADM, consulta Amazon: Integra la mensajería de dispositivos de Amazon.
Configuraciones opcionales
Vinculación en profundidad a los recursos de la aplicación
Aunque Braze puede gestionar vínculos profundos estándar (como URL de sitios web, URI de Android, etc.) de forma predeterminada, la creación de vínculos profundos personalizados requiere una configuración adicional del Manifiesto.
Para obtener información sobre la configuración, visita Vinculación en profundidad con recursos de la aplicación.
Añadir iconos de notificación push Braze
Para añadir iconos push a tu proyecto, crea un plug-in Android Archive (AAR) o una biblioteca Android que contenga los archivos de imagen de los iconos. Para conocer los pasos y la información, consulta la documentación de Unity: Proyectos de bibliotecas Android y plug-ins de archivos Android.
Devolución de llamada de token de notificaciones push
Para recibir una copia de los tokens de dispositivo Braze del SO, establece un delegado mediante AppboyBinding.SetPushTokenReceivedFromSystemDelegate().
De momento no hay configuraciones opcionales para ADM.
Requisitos previos
Antes de poder utilizar esta característica, deberás realizar la integración del SDK .NET MAUI Braze.
Configuración de notificaciones push
Para ver cómo cambian los espacios de nombres entre Java y C#, consulta nuestra aplicación de ejemplo Xample en GitHub.
Para la integración de las notificaciones push para .NET MAUI (antes Xamarin), deberás completar los pasos para las notificaciones push nativas de Android. Los pasos siguientes son sólo un resumen. Para una guía completa, consulta la guía de notificaciones push nativas.
Paso 1: Actualiza tu proyecto
- Añade Firebase a tu proyecto Android.
- Añade la biblioteca de Mensajería en la nube a la página
build.gradlede tu proyecto Android:1
implementation "google.firebase:firebase-messaging:+"
Paso 2: Crea tus credenciales JSON
- En Google Cloud, habilita la API de Firebase Cloud Messaging.
- Selecciona Cuentas de servicio > tu proyecto > Crear cuenta de servicio, e introduce un nombre de cuenta de servicio, un ID y una descripción. Cuando hayas terminado, selecciona Crear y continuar.
- En el campo Rol, busca y selecciona Administrador de la API de mensajería en la nube de Firebase en la lista de roles.
- En Cuentas de servicio, elige tu proyecto y selecciona Acciones > Gestionar claves > Añadir clave > Crear nueva clave. Elige JSON y selecciona Crear.
Paso 3: Sube tus credenciales JSON
- En Braze, selecciona Configuración > Configuración de la aplicación . En la configuración de notificaciones push de tu aplicación Android, elige Firebase, luego selecciona Cargar archivo JSON y carga las credenciales que generaste anteriormente. Cuando hayas terminado, selecciona Guardar.
- Habilita el registro automático del token FCM, accediendo a la Consola Firebase. Abre tu proyecto y selecciona Configuración > Configuración del proyecto. Selecciona Mensajería en la nube y, a continuación, en API de mensajería en la nube de Firebase (V1), copia el número en el campo ID del remitente.
- En tu proyecto de Android Studio agrega lo siguiente a tu
braze.xml.
1
2
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>
Para evitar que Braze desencadene solicitudes de red innecesarias cada vez que envíes notificaciones push silenciosas, elimina cualquier solicitud de red automática configurada en el método onCreate() de tu clase Application. Para más información, consulta Referencia para desarrolladores de Android: Aplicación.
Paso 1: Completa la configuración inicial
Consulta las instrucciones de integración de Swift para obtener información sobre la configuración de tu aplicación con push y el almacenamiento de tus credenciales en nuestro servidor. Consulta la aplicación de ejemplo MAUI de iOS para más detalles.
Paso 2: Solicitar permiso para notificaciones push
Nuestro SDK .NET MAUI ahora admite la configuración automática de push. Configura la automatización push y los permisos añadiendo el siguiente código a la configuración de tu instancia de Braze:
1
2
configuration.Push.Automation = new BRZConfigurationPushAutomation(true);
configuration.Push.Automation.RequestAuthorizationAtLaunch = false;
Consulta la aplicación de ejemplo MAUI de iOS para más detalles. Para obtener más información, consulta la documentación de Xamarin sobre Notificaciones de usuario mejoradas en Xamarin.iOS.
Editar esta página en GitHub