Personalizar las notificaciones push
Aprende a personalizar las notificaciones push para el SDK de Braze.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Braze para Android. También tendrás que configurar las notificaciones push.
Uso de una devolución de llamada para eventos push
Braze proporciona una devolución de llamada subscribeToPushNotificationEvents() para cuando se reciben, abren o descartan notificaciones push. Se recomienda colocar esta devolución de llamada en tu Application.onCreate() para no perderte ningún evento que ocurra mientras tu aplicación no se esté ejecutando.

Si antes utilizabas un receptor de difusión personalizado para esta funcionalidad en tu aplicación, puedes eliminarlo sin problemas en favor de esta opción de integración.
Braze.getInstance(context).subscribeToPushNotificationEvents(event -> {
final BrazeNotificationPayload parsedData = event.getNotificationPayload();
//
// The type of notification itself
//
final boolean isPushOpenEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_OPENED;
final boolean isPushReceivedEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_RECEIVED;
// Sent when a user has dismissed a notification
final boolean isPushDeletedEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_DELETED;
//
// Notification data
//
final String pushTitle = parsedData.getTitleText();
final Long pushArrivalTimeMs = parsedData.getNotificationReceivedTimestampMillis();
final String deeplink = parsedData.getDeeplink();
//
// Custom KVP data
//
final String myCustomKvp1 = parsedData.getBrazeExtras().getString("my first kvp");
final String myCustomKvp2 = parsedData.getBrazeExtras().getString("my second kvp");
});
Braze.getInstance(context).subscribeToPushNotificationEvents { event ->
val parsedData = event.notificationPayload
//
// The type of notification itself
//
val isPushOpenEvent = event.eventType == BrazePushEventType.NOTIFICATION_OPENED
val isPushReceivedEvent = event.eventType == BrazePushEventType.NOTIFICATION_RECEIVED
// Sent when a user has dismissed a notification
val isPushDeletedEvent = event.eventType == BrazePushEventType.NOTIFICATION_DELETED
//
// Notification data
//
val pushTitle = parsedData.titleText
val pushArrivalTimeMs = parsedData.notificationReceivedTimestampMillis
val deeplink = parsedData.deeplink
//
// Custom KVP data
//
val myCustomKvp1 = parsedData.brazeExtras.getString("my first kvp")
val myCustomKvp2 = parsedData.brazeExtras.getString("my second kvp")
}

Con los botones de acción de notificación, las intenciones BRAZE_PUSH_INTENT_NOTIFICATION_OPENED se disparan cuando se hace clic en los botones con acciones opens app o deep link. El tratamiento de los vínculos profundos y los extras sigue siendo el mismo. Los botones con acciones close no disparan las intenciones BRAZE_PUSH_INTENT_NOTIFICATION_OPENED y descartan la notificación automáticamente.

Crea tu receptor de notificaciones push en Application.onCreate para asegurarte de que se desencadena cuando un usuario final toca una notificación mientras tu aplicación está en estado finalizado.
Personalización de la visualización de notificaciones
Paso 1: Crea tu fábrica de notificaciones personalizada
En algunos casos, es posible que desees personalizar las notificaciones push de formas que serían engorrosas o no estarían disponibles en el servidor. Para darte un control completo de la visualización de notificaciones, hemos añadido la posibilidad de definir tu propia IBrazeNotificationFactory para crear objetos de notificación que Braze mostrará.
Si se configura un IBrazeNotificationFactory personalizado, Braze llamará al método createNotification() de tu fábrica tras la recepción push antes de que se muestre la notificación al usuario. Braze pasará un Bundle que contiene datos push de Braze y otro Bundle que contiene pares clave-valor personalizados enviados a través del panel o de las API de mensajería:
Braze pasará un BrazeNotificationPayload que contiene los datos de la notificación push de Braze.
// Factory method implemented in your custom IBrazeNotificationFactory
@Override
public Notification createNotification(BrazeNotificationPayload brazeNotificationPayload) {
// Example of getting notification title
String title = brazeNotificationPayload.getTitleText();
// Example of retrieving a custom KVP ("my_key" -> "my_value")
String customKvp = brazeNotificationPayload.getBrazeExtras().getString("my_key");
}
// Factory method implemented in your custom IBrazeNotificationFactory
override fun createNotification(brazeNotificationPayload: BrazeNotificationPayload): Notification {
// Example of getting notification title
val title = brazeNotificationPayload.getTitleText()
// Example of retrieving a custom KVP ("my_key" -> "my_value")
val customKvp = brazeNotificationPayload.getBrazeExtras().getString("my_key")
}
Puedes devolver null desde tu método personalizado createNotification() para no mostrar la notificación en absoluto, utilizar BrazeNotificationFactory.getInstance().createNotification() para obtener nuestro objeto predeterminado notification para esos datos y modificarlo antes de mostrarlo, o generar un objeto notification completamente independiente para mostrarlo.

Para obtener documentación sobre las claves de datos push de Braze, consulta el SDK de Android.
Paso 2: Configura tu fábrica de notificaciones personalizada
Para indicar a Braze que utilice tu fábrica de notificaciones personalizada, utiliza el método setCustomBrazeNotificationFactory para configurar tu IBrazeNotificationFactory:
setCustomBrazeNotificationFactory(IBrazeNotificationFactory brazeNotificationFactory);
setCustomBrazeNotificationFactory(brazeNotificationFactory: IBrazeNotificationFactory)
El lugar recomendado para configurar tu IBrazeNotificationFactory personalizado es el método de ciclo de vida de la aplicación Application.onCreate() (no la actividad). Esto permitirá que la fábrica de notificaciones se configure correctamente siempre que el proceso de tu aplicación esté activo.

Crear tu propia notificación desde cero es un caso de uso avanzado y solo debe hacerse con pruebas exhaustivas y un conocimiento profundo de la funcionalidad push de Braze. Por ejemplo, debes asegurarte de que tu notificación registre correctamente las aperturas push.
Para desactivar tu IBrazeNotificationFactory personalizado y volver a la gestión predeterminada de Braze para push, pasa null al configurador de fábrica de notificaciones personalizadas:
setCustomBrazeNotificationFactory(null);
setCustomBrazeNotificationFactory(null)
Renderizar texto multicolor
En la versión 3.1.1 del SDK de Braze, se puede enviar HTML a un dispositivo para renderizar texto multicolor en las notificaciones push.

Este ejemplo se renderiza con el siguiente HTML:
<p><span style="color: #99cc00;">M</span>u<span style="color: #008080;">lti</span>Colo<span style="color: #ff6600;">r</span> <span style="color: #000080;">P</span><span style="color: #00ccff;">u</span><span style="color: #ff0000;">s</span><span style="color: #808080;">h</span></p>
<p><em>test</em> <span style="text-decoration: underline; background-color: #ff6600;"><strong>message</strong></span></p>
Ten en cuenta que Android limita qué elementos y etiquetas HTML son válidos en tus notificaciones push. Por ejemplo, marquee no está permitido.

La renderización de texto multicolor es específica del dispositivo y puede no mostrarse dependiendo del dispositivo o la versión de Android.
Para renderizar texto multicolor en una notificación push, puedes actualizar tu braze.xml o BrazeConfig:
Añade lo siguiente en tu braze.xml:
<bool translatable="false" name="com_braze_push_notification_html_rendering_enabled">true</bool>
Añade lo siguiente en tu BrazeConfig:
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build();
Braze.configure(this, brazeConfig);
val brazeConfig = BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build()
Braze.configure(this, brazeConfig)
Etiquetas HTML compatibles
Actualmente, Google no enumera directamente en su documentación las etiquetas HTML compatibles con Android—esta información solo se puede encontrar en el archivo Html.java de su repositorio Git. Ten esto en cuenta al consultar la siguiente tabla, ya que esta información se extrajo de ese archivo y las etiquetas HTML compatibles podrían cambiar.
| Categoría | Etiqueta HTML | Descripción |
|---|---|---|
| Estilo de texto básico | <b>, <strong> |
Texto en negrita |
<i>, <em> |
Texto en cursiva | |
<u> |
Texto subrayado | |
<s>, <strike>, <del> |
Texto tachado | |
<sup> |
Texto en superíndice | |
<sub> |
Texto en subíndice | |
<tt> |
Texto monoespaciado | |
| Tamaño/Fuente | <big>, <small> |
Cambios relativos de tamaño de texto |
<font color="..."> |
Establece el color de primer plano | |
<span> (con CSS en línea) |
Estilos en línea (por ejemplo, color, fondo) | |
| Párrafo y bloque | <p>, <div> |
Secciones a nivel de bloque |
<br> |
Salto de línea | |
<blockquote> |
Bloque de cita | |
<ul> + <li> |
Lista desordenada con viñetas | |
| Encabezados | <h1> - <h6> |
Encabezados (varios tamaños) |
| Enlaces e imágenes | <a href="..."> |
Enlace clicable |
<img src="..."> |
Imagen en línea | |
| Otros en línea | <em>, <strong>, <dfn>, <cite> |
Sinónimos de cursiva o negrita |
Renderizado de imágenes en línea
Cómo funciona
Puedes mostrar una imagen más grande dentro de tu notificación push de Android usando push con imagen en línea. Con este diseño, los usuarios no tendrán que expandir manualmente la push para ampliar la imagen. A diferencia de las notificaciones push estándar de Android, las imágenes de push con imagen en línea tienen una relación de aspecto de 3:2.

Compatibilidad
Aunque puedes enviar imágenes en línea a cualquier dispositivo, los dispositivos y SDK que no cumplan con las versiones mínimas mostrarán una imagen estándar en su lugar. Para que las imágenes en línea se muestren correctamente, se requiere tanto el SDK de Braze para Android v10.0.0+ como un dispositivo con Android M+. El SDK también debe estar habilitado para que la imagen se renderice.

Los dispositivos con Android 12 se renderizarán de manera diferente debido a cambios en los estilos personalizados de notificaciones push.
Enviar una push con imagen en línea
Al crear un mensaje push de Android, esta característica está disponible en el menú desplegable Notification Type.

Configuración
Hay muchas configuraciones avanzadas disponibles para las notificaciones push de Android enviadas a través del panel de Braze. Este artículo describirá estas características y cómo usarlas con éxito.

ID de notificación
Un ID de notificación es un identificador único para una categoría de mensaje de tu elección que indica al servicio de mensajería que solo respete el mensaje más reciente de ese ID. Establecer un ID de notificación te permite enviar solo el mensaje más reciente y relevante, en lugar de una pila de mensajes obsoletos e irrelevantes.
Evitar que notificaciones duplicadas se sobrescriban
De forma predeterminada, cuando las notificaciones push tienen títulos y texto del cuerpo idénticos, Android genera el mismo ID de notificación para ambos mensajes haciendo un hash del título y las cadenas del cuerpo juntos. Esto hace que la segunda notificación sobrescriba la primera, lo que resulta en que solo aparezca una única notificación en la bandeja de notificaciones.
Para evitar que las notificaciones idénticas se sobrescriban entre sí, puedes especificar valores únicos de ID de notificación en la configuración de tus notificaciones push de Android. Aquí tienes algunas opciones:
- Usa plantillas Liquid con marca de tiempo: Genera un valor único basado en la hora actual.
{% assign random_number = 'now' | date: '%s' | plus: 1000000 %}
{{random_number}}
- Generación del lado del servidor: Para valores verdaderamente aleatorios, genera el ID de notificación en tu servidor y pásalo a través de Liquid. Esto garantiza que cada notificación tenga un identificador distinto, lo que permite que múltiples notificaciones se muestren simultáneamente.
Prioridad de entrega de Firebase Messaging
El campo de prioridad de entrega de Firebase Messaging te permite controlar si un push se envía con prioridad “normal” o “alta” a Firebase Cloud Messaging.
Tiempo de vida (TTL)
El campo de tiempo de vida (TTL) te permite establecer una duración personalizada para almacenar mensajes con el servicio de mensajería push. Los valores predeterminados del tiempo de vida son cuatro semanas para FCM y 31 días para ADM.
Texto de resumen
El texto de resumen te permite establecer texto adicional en la vista expandida de la notificación. También sirve como pie de foto para notificaciones con imágenes.

El texto de resumen se mostrará debajo del cuerpo del mensaje en la vista expandida.

Para las notificaciones push que incluyen imágenes, el texto del mensaje se mostrará en la vista contraída, mientras que el texto de resumen se mostrará como pie de foto de la imagen cuando la notificación esté expandida.
URI personalizados
La característica de URI personalizado te permite especificar una URL web o un recurso de Android al que navegar cuando se hace clic en la notificación. Si no se especifica un URI personalizado, al hacer clic en la notificación los usuarios entrarán en tu aplicación. Puedes usar el URI personalizado para crear vínculos profundos dentro de tu aplicación y dirigir a los usuarios a recursos que existen fuera de tu aplicación. Esto se puede especificar a través de la API de mensajería o en nuestro panel en Configuración avanzada en el creador de push, como se muestra:

Prioridad de visualización de la notificación

La configuración de prioridad de visualización de la notificación ya no se utiliza en dispositivos que ejecutan Android O o versiones más recientes. Para dispositivos más nuevos, establece la prioridad a través de la configuración de canal de notificación.
El nivel de prioridad de una notificación push afecta cómo se muestra tu notificación en la bandeja de notificaciones en relación con otras notificaciones. También puede afectar la velocidad y el modo de entrega, ya que los mensajes de prioridad normal e inferior pueden enviarse con una latencia ligeramente mayor o agruparse para preservar la vida de la batería, mientras que los mensajes de alta prioridad siempre se envían de inmediato.
En Android O, la prioridad de la notificación se convirtió en una propiedad de los canales de notificación. Necesitarás trabajar con tu desarrollador para definir la prioridad de un canal durante su configuración y luego usar el panel para seleccionar el canal adecuado al enviar los sonidos de tus notificaciones. Para dispositivos que ejecutan versiones de Android anteriores a O, es posible especificar un nivel de prioridad para las notificaciones de Android a través del panel de Braze y la API de mensajería.
Para enviar mensajes a toda tu base de usuarios con una prioridad específica, te recomendamos que especifiques indirectamente la prioridad a través de la configuración de canal de notificación (para dispositivos O+) y envíes la prioridad individual desde el panel (para dispositivos <O).
Los niveles de prioridad que puedes establecer en las notificaciones push de Android o Fire OS son:
| Prioridad | Descripción/Uso previsto | Valor de priority (para mensajes de API) |
|---|---|---|
| Máx. | Mensajes urgentes o de tiempo crítico | 2 |
| Alta | Comunicación importante, como un nuevo mensaje de un amigo | 1 |
| Predeterminada | La mayoría de las notificaciones: úsala si tu mensaje no entra explícitamente en ninguno de los otros tipos de prioridad | 0 |
| Baja | Información que quieres que los usuarios conozcan pero que no requiere acción inmediata | -1 |
| Mín. | Información contextual o de segundo plano. | -2 |
Para más información, consulta la documentación de Google sobre notificaciones de Android.
Sonidos
En Android O, los sonidos de notificación se convirtieron en una propiedad de los canales de notificación. Necesitarás trabajar con tu desarrollador para definir el sonido de un canal durante su configuración y luego usar el panel para seleccionar el canal adecuado al enviar tus notificaciones.
Para dispositivos que ejecutan versiones de Android anteriores a O, Braze te permite establecer el sonido de un mensaje push individual a través del creador del panel. Puedes hacerlo especificando un recurso de sonido local en el dispositivo (por ejemplo, android.resource://com.mycompany.myapp/raw/mysound). Especificar “default” en este campo reproducirá el sonido de notificación predeterminado del dispositivo. Esto se puede especificar a través de la API de mensajería o en el panel en Configuración avanzada en el creador de push.

Ingresa el URI completo del recurso de sonido (por ejemplo, android.resource://com.mycompany.myapp/raw/mysound) en el campo del panel.
Para enviar mensajes a toda tu base de usuarios con un sonido específico, te recomendamos que especifiques indirectamente el sonido a través de la configuración de canal de notificación (para dispositivos O+) y envíes el sonido individual desde el panel (para dispositivos <O).
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK Swift de Braze. También tendrás que configurar las notificaciones push.
Personalización de los botones de acción
El SDK Swift de Braze proporciona soporte de gestión de URL para botones de acción push. Hay cuatro conjuntos de botones de acción para notificación push predeterminados para las categorías push predeterminadas de Braze: Accept/Decline, Yes/No, Confirm/Cancel y More.

Registro manual de botones de acción

No se recomienda el registro manual de los botones de acción para notificación push.
Si configuras las notificaciones push mediante la opción de configuración configuration.push.automation, Braze registra automáticamente los botones de acción para las categorías push predeterminadas y gestiona el análisis de clics en los botones de acción push y el enrutamiento de URL.
Sin embargo, puedes optar por registrar manualmente los botones de acción para notificación push.
Paso 1: Añadir categorías push predeterminadas de Braze
Utiliza el siguiente código para registrarte en las categorías push predeterminadas cuando te registres para push:
a
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
[[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:BRZNotifications.categories];

Al hacer clic en los botones de acción push con modo de activación en segundo plano, solo se descartará la notificación y no se abrirá la aplicación. La próxima vez que el usuario abra la aplicación, el análisis de clics en el botón de estas acciones se enviará al servidor.
Paso 2: Habilitar la gestión interactiva de push
Para habilitar la gestión de nuestro botón de acción push, incluidos el análisis de clics y el enrutamiento de URL, añade el siguiente código al método delegado didReceive(_:completionHandler:) de tu aplicación:
AppDelegate.braze?.notifications.handleUserNotification(response: response, withCompletionHandler: completionHandler)
[AppDelegate.braze.notifications handleUserNotificationWithResponse:response
withCompletionHandler:completionHandler];
Si utilizas el framework UNNotification y has implementado los métodos de notificación de Braze, ya deberías tener integrado este método.
Personalización de categorías push
Además de proporcionar un conjunto de categorías push predeterminadas, Braze admite categorías y acciones de notificación personalizadas. Después de registrar las categorías en tu aplicación, puedes utilizar el panel de Braze para enviar estas categorías de notificación personalizadas a tus usuarios.
Aquí tienes un ejemplo que aprovecha la LIKE_CATEGORY que aparece en el dispositivo:

Paso 1: Registrar una categoría
Para registrar una categoría en tu aplicación, utiliza un enfoque similar al siguiente:
Braze.Notifications.categories.insert(
.init(identifier: "LIKE_CATEGORY",
actions: [
.init(identifier: "LIKE_IDENTIFIER", title: "Like", options: [.foreground]),
.init(identifier: "UNLIKE_IDENTIFIER", title: "Unlike", options: [.foreground])
],
intentIdentifiers: []
)
)
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
NSMutableSet<UNNotificationCategory *> *categories = [BRZNotifications.categories mutableCopy];
UNNotificationAction *likeAction = [UNNotificationAction actionWithIdentifier:@"LIKE_IDENTIFIER"
title:@"Like"
options:UNNotificationActionOptionForeground];
UNNotificationAction *unlikeAction = [UNNotificationAction actionWithIdentifier:@"UNLIKE_IDENTIFIER"
title:@"Unlike"
options:UNNotificationActionOptionForeground];
UNNotificationCategory *likeCategory = [UNNotificationCategory categoryWithIdentifier:@"LIKE_CATEGORY"
actions:@[likeAction, unlikeAction]
intentIdentifiers:@[]
options:UNNotificationCategoryOptionNone];
[categories addObject:likeCategory];
[UNUserNotificationCenter.currentNotificationCenter setNotificationCategories:categories];

Cuando creas un UNNotificationAction, puedes especificar una lista de opciones de acción. Por ejemplo, .foreground permite a tus usuarios abrir tu aplicación después de pulsar el botón de acción. Esto es necesario para los comportamientos de navegación al hacer clic, como “Abrir aplicación” y “Vínculo profundo dentro de la aplicación”. Si deseas un botón de acción que simplemente descarte la notificación sin abrir la aplicación, omite .foreground de la matriz options de la acción. Para más información, consulta UNNotificationActionOptions.
Paso 2: Selecciona tus categorías
Después de registrar una categoría, utiliza el panel de Braze para enviar notificaciones de ese tipo a los usuarios.

Solo necesitas definir botones de acción en el panel de Braze para comportamientos que no se pueden crear localmente en tu código Swift, como vínculos en profundidad a tu aplicación o redireccionamientos a una URL web. Estas acciones deben configurarse en el panel para que puedan definir qué URL o vínculo profundo abrir. En el caso de los botones de acción que simplemente descartan la notificación sin abrir la aplicación, no es necesario configurarlos en el panel, ya que iOS gestiona automáticamente el comportamiento de descarte. Solo tienes que registrar tu categoría personalizada y sus acciones en el código de tu aplicación y, a continuación, introducir el nombre de la categoría correspondiente en el panel.
- En el panel de Braze, selecciona Mensajería > Notificaciones push y, a continuación, elige tu Campaign push de iOS.
- En Redactar notificación push, activa Botones de acción.
- En el desplegable Categoría de notificación de iOS, selecciona Introducir categoría personalizada de iOS previamente registrada.
- Por último, introduce una de las categorías que creaste anteriormente. El siguiente ejemplo utiliza la categoría personalizada:
LIKE_CATEGORY.

Ejemplo: categoría push personalizada
Supongamos que deseas crear una notificación push con dos botones de acción: Administrar, que establece un vínculo profundo a tu aplicación, y Conservar, que simplemente descarta la notificación.
En el siguiente ejemplo, la acción MANAGE_IDENTIFIER incluye la opción .foreground, que abre la aplicación cuando se pulsa; esto es necesario porque establecerá un vínculo profundo con una parte específica de la aplicación. La acción KEEP_IDENTIFIER utiliza una matriz de opciones vacía, lo que significa que descartará la notificación sin abrir la aplicación.
Braze.Notifications.categories.insert(
.init(identifier: "YOUR_CATEGORY",
actions: [
.init(identifier: "KEEP_IDENTIFIER", title: "Keep", options: []),
.init(identifier: "MANAGE_IDENTIFIER", title: "Manage", options: [.foreground])
],
intentIdentifiers: []
)
)
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
Dado que MANAGE_IDENTIFIER establece un vínculo profundo a la aplicación, deberías configurar ese botón de acción en el panel de Braze con la URL del vínculo profundo asociado. Sin embargo, no es necesario definir un botón en el panel para KEEP_IDENTIFIER, ya que solo descarta la notificación. En el panel, solo tienes que introducir el nombre de la categoría (por ejemplo, YOUR_CATEGORY) que coincida con el que registraste en el código de tu aplicación.
Personalizar señales
Las señales son pequeños iconos ideales para captar la atención del usuario. Puedes especificar un conteo de señales en la pestaña Configuración cuando redactas una notificación push utilizando el panel de Braze. También puedes actualizar manualmente tu conteo de señales a través de la propiedad applicationIconBadgeNumber de tu aplicación o la carga útil de la notificación remota.
Braze borrará automáticamente el conteo de señales cuando se reciba una notificación de Braze mientras la aplicación está en primer plano. Establecer manualmente el número de señales en 0 también borrará las notificaciones en el centro de notificaciones.
Si no tienes un plan para borrar las señales como parte de la operación normal de la aplicación o mediante el envío de notificaciones push que borren la señal, deberías borrar la señal cuando la aplicación se active añadiendo el siguiente código al método sceneDidBecomeActive(_:) del archivo SceneDelegate.swift (o al método delegado applicationDidBecomeActive: de tu aplicación, si tu aplicación aún no ha adoptado el ciclo de vida de UIScene):
// For iOS 16.0+
let center = UNUserNotificationCenter.current()
do {
try await center.setBadgeCount(0)
} catch {
// Handle errors
}
// Prior to iOS 16. Deprecated in iOS 17+.
UIApplication.shared.applicationIconBadgeNumber = 0
// For iOS 16.0+
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center setBadgeCount:0 withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
// Handle errors
}
}];
// Prior to iOS 16. Deprecated in iOS 17+.
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
Personalizar sonidos
Paso 1: Aloja el sonido en tu aplicación
Los sonidos personalizados de notificaciones push deben alojarse localmente dentro del paquete principal de tu aplicación. Se aceptan los siguientes formatos de datos de audio:
- Linear PCM
- MA4
- µLaw
- aLaw
Puedes empaquetar los datos de audio en un archivo AIFF, WAV o CAF. En Xcode, añade el archivo de sonido a tu proyecto como un recurso no localizado del paquete de la aplicación.

Los sonidos personalizados deben durar menos de 30 segundos cuando se reproducen. Si un sonido personalizado supera ese límite, se reproduce en su lugar el sonido predeterminado del sistema.
Convertir archivos de sonido
Puedes usar la herramienta afconvert para convertir sonidos. Por ejemplo, para convertir el sonido del sistema Submarine.aiff de PCM lineal de 16 bits a audio IMA4 en un archivo CAF, usa el siguiente comando en la terminal:
afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v

Puedes inspeccionar un sonido para determinar su formato de datos abriéndolo en QuickTime Player y seleccionando Mostrar inspector de película en el menú Película.
Paso 2: Proporciona una URL de protocolo para el sonido
Debes especificar una URL de protocolo que dirija a la ubicación del archivo de sonido en tu aplicación. Hay dos métodos para hacerlo:
- Usa el parámetro
sounddel objeto push de Apple para pasar la URL a Braze. - Especifica la URL en el panel. En el creador de push, selecciona Configuración e introduce la URL de protocolo en el campo Sonido.

Si el archivo de sonido especificado no existe o se introduce la palabra clave “default”, Braze utilizará el sonido de alerta predeterminado del dispositivo. Además de nuestro panel, el sonido también se puede configurar a través de nuestra [API de mensajería][12].
Consulta la documentación para desarrolladores de Apple sobre la preparación de sonidos de alerta personalizados para obtener más información.
Configuración
Al crear una campaña push a través del panel, haz clic en la pestaña Configuración en el paso Crear para ver los ajustes avanzados disponibles.

Pares clave-valor
Braze te permite enviar pares clave-valor de cadenas personalizadas, conocidos como extras, junto con una notificación push a tu aplicación. Los extras se pueden definir a través del panel o la API y estarán disponibles como pares clave-valor dentro del diccionario notification que se pasa a las implementaciones de tu delegado push.
Opciones de alerta
Selecciona la casilla Alert Options para ver un menú desplegable de pares clave-valor disponibles para ajustar cómo aparece la notificación en los dispositivos.
Añadir la señal de contenido disponible
Marca la casilla Add Content-Available Flag para indicar a los dispositivos que descarguen contenido nuevo en segundo plano. Lo más habitual es marcar esta opción si te interesa enviar notificaciones silenciosas.
Añadir la señal de contenido mutable
Marca la casilla Add Mutable-Content Flag para habilitar la personalización avanzada del receptor. Esta señal se enviará automáticamente al componer una notificación enriquecida, independientemente del valor de esta casilla.
ID de colapso
Especifica un ID de colapso para agrupar notificaciones similares. Si envías varias notificaciones con el mismo ID de colapso, el dispositivo solo mostrará la notificación recibida más recientemente. Consulta la documentación de Apple sobre notificaciones agrupadas.
Caducidad
Marcar la casilla Caducidad te permitirá establecer un tiempo de expiración para tu mensaje. Si el dispositivo de un usuario pierde la conectividad, Braze seguirá intentando enviar el mensaje hasta la hora especificada. Si no se configura, la plataforma establecerá de forma predeterminada una caducidad de 30 días. Ten en cuenta que las notificaciones push que caducan antes de la entrega no se consideran fallidas y no se registrarán como rebote.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Braze para Android. También tendrás que configurar las notificaciones push.
Configuración
Existen muchas configuraciones avanzadas disponibles para las notificaciones push de FireOS enviadas a través del panel de Braze. Este artículo describirá estas características y cómo utilizarlas de forma exitosa.

Tiempo de vida (TTL)
El campo Tiempo de vida (TTL) te permite establecer un periodo personalizado para almacenar mensajes en el servicio de mensajería push. Los valores predeterminados del tiempo de vida son cuatro semanas para FCM y 31 días para ADM.
Texto de resumen
El texto de resumen te permite establecer texto adicional en la vista expandida de la notificación. También sirve como pie de foto para las notificaciones con imágenes.

El texto de resumen se mostrará debajo del cuerpo del mensaje en la vista expandida.

Para las notificaciones push que incluyen imágenes, el texto del mensaje se mostrará en la vista contraída, mientras que el texto de resumen se mostrará como pie de foto de la imagen cuando la notificación esté expandida.
URI personalizadas
La característica de URI personalizada te permite especificar una URL Web o un recurso de Android al que navegar cuando se haga clic en la notificación. Si no se especifica una URI personalizada, al hacer clic en la notificación los usuarios accederán a tu aplicación. Puedes usar la URI personalizada para crear vínculos profundos dentro de tu aplicación y dirigir a los usuarios a recursos que existen fuera de tu aplicación. Esto se puede especificar a través de la API de mensajería o en nuestro panel en Configuración avanzada en el creador de push, como se muestra a continuación:

Prioridad de visualización de notificaciones

La configuración de prioridad de visualización de notificaciones ya no se utiliza en dispositivos que ejecutan Android O o versiones más recientes. Para dispositivos más recientes, establece la prioridad a través de la configuración de canales de notificación.
El nivel de prioridad de una notificación push afecta cómo se muestra tu notificación en la bandeja de notificaciones en relación con otras notificaciones. También puede afectar la velocidad y el modo de entrega, ya que los mensajes de prioridad normal e inferior pueden enviarse con una latencia ligeramente mayor o en lotes para preservar la vida de la batería, mientras que los mensajes de alta prioridad siempre se envían de inmediato.
En Android O, la prioridad de las notificaciones pasó a ser una propiedad de los canales de notificación. Deberás trabajar con tu desarrollador para definir la prioridad de un canal durante su configuración y luego usar el panel para seleccionar el canal adecuado al enviar los sonidos de tus notificaciones. Para dispositivos que ejecutan versiones de Android anteriores a O, es posible especificar un nivel de prioridad para las notificaciones de FireOS a través del panel de Braze y la API de mensajería.
Para enviar mensajes a toda tu base de usuarios con una prioridad específica, te recomendamos que especifiques la prioridad de forma indirecta a través de la configuración de canales de notificación (para dispositivos O+) y envíes la prioridad individual desde el panel (para dispositivos <O).
Los niveles de prioridad que puedes establecer en las notificaciones push de Fire OS son:
| Prioridad | Descripción/Uso previsto | Valor de priority (para mensajes de API) |
|---|---|---|
| Máxima | Mensajes urgentes o con restricción de tiempo | 2 |
| Alta | Comunicaciones importantes, como un nuevo mensaje de un amigo | 1 |
| Predeterminada | La mayoría de las notificaciones: úsala si tu mensaje no encaja explícitamente en ninguno de los otros tipos de prioridad | 0 |
| Baja | Información que quieres que los usuarios conozcan, pero que no requiere acción inmediata | -1 |
| Mínima | Información contextual o de segundo plano. | -2 |
Para obtener más información, consulta la documentación de Google sobre notificaciones de Android.
Sonidos
En Android O, los sonidos de las notificaciones pasaron a ser una propiedad de los canales de notificación. Deberás trabajar con tu desarrollador para definir el sonido de un canal durante su configuración y luego usar el panel para seleccionar el canal adecuado al enviar tus notificaciones.
Para dispositivos que ejecutan versiones de Android anteriores a O, Braze te permite establecer el sonido de un mensaje push individual a través del creador del panel. Puedes hacerlo especificando un recurso de sonido local en el dispositivo (por ejemplo, android.resource://com.mycompany.myapp/raw/mysound). Especificar “default” en este campo reproducirá el sonido de notificación predeterminado del dispositivo. Esto se puede especificar a través de la API de mensajería o en el panel en Configuración en el creador de push.

Ingresa la URI completa del recurso de sonido (por ejemplo, android.resource://com.mycompany.myapp/raw/mysound) en el campo del panel.
Para enviar mensajes a toda tu base de usuarios con un sonido específico, te recomendamos que especifiques el sonido de forma indirecta a través de la configuración de canales de notificación (para dispositivos O+) y envíes el sonido individual desde el panel (para dispositivos <O).
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de React Native de Braze. También debes configurar las notificaciones push.
Personalización push en React Native
El SDK de Braze para React Native no expone la personalización de notificaciones push (botones de acción, categorías, fábricas de notificaciones personalizadas) a través de su API de JavaScript. Estas características requieren configuración nativa en tus proyectos de iOS y Android.
La siguiente tabla muestra qué características requieren configuración nativa:
| Característica | iOS | Android |
|---|---|---|
| Botones de acción | Configurar en Swift/Objective-C nativo | Configurar en Java/Kotlin nativo |
| Categorías push | Configurar en Swift/Objective-C nativo | Configurar en Java/Kotlin nativo |
| Fábrica de notificaciones personalizada | N/A | Configurar en Java/Kotlin nativo |
| Personalización de señales | Configurar en Swift/Objective-C nativo | N/A |
| Sonidos personalizados | Configurar en Swift/Objective-C nativo | Configurar en Java/Kotlin nativo |
Personalización en iOS
Para añadir botones de acción push, categorías, señales o sonidos personalizados en iOS, implementa la configuración nativa en tu AppDelegate (Swift u Objective-C). Consulta Personalizar las notificaciones push – Swift para obtener instrucciones paso a paso.
Personalización en Android
Para añadir botones de acción push, categorías o una fábrica de notificaciones personalizada en Android, implementa la configuración nativa en tu proyecto de Android. Consulta Personalizar las notificaciones push – Android para obtener instrucciones paso a paso.