Personalize notificações por push
Aprenda a personalizar notificações por push para o SDK Braze.
Pré-requisitos
Antes de usar este recurso, você precisará integrar o SDK Android da Braze. Você também precisará configurar notificações por push.
Usando um retorno de chamada para eventos de push
A Braze fornece um retorno de chamada subscribeToPushNotificationEvents() para quando notificações por push são recebidas, abertas ou descartadas. Recomenda-se colocar este retorno de chamada no seu Application.onCreate() para não perder nenhum evento que ocorra enquanto seu aplicativo não estiver em execução.

Se anteriormente usava um Custom Broadcast Receiver para essa funcionalidade em seu aplicativo, você pode removê-lo com segurança em favor desta opção de integração.
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")
}

Com os botões de ação de notificação, as intents BRAZE_PUSH_INTENT_NOTIFICATION_OPENED são acionadas quando os botões com ações opens app ou deep link são clicados. O tratamento de deep link e extras permanece o mesmo. Os botões com ações close não disparam as intents BRAZE_PUSH_INTENT_NOTIFICATION_OPENED e descartam a notificação automaticamente.

Crie seu listener de notificação por push em Application.onCreate para garantir que ele seja disparado depois que um usuário final tocar em uma notificação enquanto o app estiver em estado finalizado.
Personalizando a exibição de notificações
Etapa 1: Crie sua fábrica de notificações personalizada
Em alguns cenários, você pode querer personalizar as notificações por push de maneiras que seriam complicadas ou não estariam disponíveis no lado do servidor. Para que você tenha controle total sobre a exibição de notificações, adicionamos a capacidade de definir seu próprio IBrazeNotificationFactory para criar objetos de notificação para serem exibidos pela Braze.
Se um IBrazeNotificationFactory personalizado for definido, a Braze chamará o método createNotification() da sua fábrica no recebimento do push antes que a notificação seja exibida ao usuário. A Braze transmitirá um Bundle contendo dados de push da Braze e outro Bundle contendo pares de chave-valor personalizados enviados por meio do dashboard ou das APIs de envio de mensagens:
A Braze passará um BrazeNotificationPayload contendo dados da notificação por push da 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")
}
Você pode retornar null do seu método personalizado createNotification() para não mostrar a notificação, usar BrazeNotificationFactory.getInstance().createNotification() para obter nosso objeto padrão notification para esses dados e modificá-lo antes da exibição, ou gerar um objeto notification completamente separado para exibição.

Etapa 2: Defina sua fábrica de notificações personalizada
Para instruir a Braze a usar sua fábrica de notificações personalizada, use o método setCustomBrazeNotificationFactory para definir seu IBrazeNotificationFactory:
setCustomBrazeNotificationFactory(IBrazeNotificationFactory brazeNotificationFactory);
setCustomBrazeNotificationFactory(brazeNotificationFactory: IBrazeNotificationFactory)
O local recomendado para definir seu IBrazeNotificationFactory personalizado é no método do ciclo de vida do aplicativo Application.onCreate() (não na atividade). Isso permitirá que a fábrica de notificações seja definida corretamente sempre que o processo do seu app estiver ativo.

Criar sua própria notificação do zero é um caso de uso avançado e deve ser feito somente com testes completos e um profundo conhecimento da funcionalidade push da Braze. Por exemplo, é preciso garantir que a notificação registre as aberturas de push corretamente.
Para cancelar a configuração personalizada do IBrazeNotificationFactory e retornar ao tratamento padrão da Braze para push, passe null para o configurador de fábrica de notificações personalizadas:
setCustomBrazeNotificationFactory(null);
setCustomBrazeNotificationFactory(null)
Renderização de texto multicolorido
No SDK da Braze versão 3.1.1, HTML pode ser enviado a um dispositivo para renderizar texto multicolorido em notificações por push.

Este exemplo é renderizado com o seguinte 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>
Tenha em mente que o Android limita quais elementos e tags HTML são válidos nas suas notificações por push. Por exemplo, marquee não é permitido.

A renderização de texto multicolorido é específica do dispositivo e pode não ser exibida dependendo do dispositivo ou da versão do Android.
Para renderizar texto multicolorido em uma notificação por push, você pode atualizar seu braze.xml ou BrazeConfig:
Adicione o seguinte no seu braze.xml:
<bool translatable="false" name="com_braze_push_notification_html_rendering_enabled">true</bool>
Adicione o seguinte no seu BrazeConfig:
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build();
Braze.configure(this, brazeConfig);
val brazeConfig = BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build()
Braze.configure(this, brazeConfig)
Tags HTML compatíveis
Atualmente, o Google não lista as tags HTML compatíveis com o Android diretamente em sua documentação—essa informação pode ser encontrada apenas no arquivo Html.java do repositório Git. Tenha isso em mente ao consultar a tabela a seguir, pois essa informação foi extraída desse arquivo e as tags HTML compatíveis podem estar sujeitas a alterações.
| Categoria | Tag HTML | Descrição |
|---|---|---|
| Estilização básica de texto | <b>, <strong> |
Texto em negrito |
<i>, <em> |
Texto em itálico | |
<u> |
Texto sublinhado | |
<s>, <strike>, <del> |
Texto tachado | |
<sup> |
Texto sobrescrito | |
<sub> |
Texto subscrito | |
<tt> |
Texto monoespaçado | |
| Tamanho/Fonte | <big>, <small> |
Alterações relativas no tamanho do texto |
<font color="..."> |
Define a cor do texto | |
<span> (com CSS inline) |
Estilos inline (ex.: cor, fundo) | |
| Parágrafo e bloco | <p>, <div> |
Seções de nível de bloco |
<br> |
Quebra de linha | |
<blockquote> |
Bloco de citação | |
<ul> + <li> |
Lista não ordenada com marcadores | |
| Cabeçalhos | <h1> - <h6> |
Cabeçalhos (diversos tamanhos) |
| Links e imagens | <a href="..."> |
Link clicável |
<img src="..."> |
Imagem inline | |
| Outros inline | <em>, <strong>, <dfn>, <cite> |
Sinônimos para itálico ou negrito |
Renderização de imagens inline
Como funciona
Você pode exibir uma imagem maior em sua notificação por push do Android usando push com imagem inline. Com esse design, os usuários não precisam expandir manualmente o push para ampliar a imagem. Diferentemente das notificações por push padrão do Android, as imagens de push inline estão em uma proporção de 3:2.

Compatibilidade
Embora você possa enviar imagens inline para qualquer dispositivo, dispositivos e SDKs que não atendam às versões mínimas exibirão uma imagem padrão. Para que as imagens inline sejam exibidas corretamente, é necessário o SDK Android da Braze v10.0.0+ e um dispositivo com Android M ou superior. O SDK também precisa estar ativado para que a imagem seja renderizada.

Dispositivos com Android 12 serão renderizados de forma diferente devido a mudanças nos estilos de notificação por push personalizados.
Enviando um push com imagem inline
Ao criar uma mensagem de push para Android, esse recurso está disponível no menu suspenso Notification Type.

Configurações
Existem diversas configurações avançadas disponíveis para notificações por push Android enviadas pelo dashboard da Braze. Este artigo descreve esses recursos e como usá-los com sucesso.

ID da notificação
Um ID da Notificação é um identificador exclusivo para uma categoria de mensagem de sua escolha que informa o serviço de envio de mensagens para considerar apenas a mensagem mais recente desse ID. Definir um ID de notificação permite que você envie apenas a mensagem mais recente e relevante, em vez de um acúmulo de mensagens desatualizadas e irrelevantes.
Impedindo que notificações duplicadas sejam sobrescritas
Por padrão, quando notificações por push possuem títulos e textos de corpo idênticos, o Android gera o mesmo ID de notificação para ambas as mensagens, criando um hash a partir das strings de título e corpo. Isso faz com que a segunda notificação sobrescreva a primeira, resultando em apenas uma notificação aparecendo na bandeja de notificações.
Para evitar que notificações idênticas sobrescrevam umas às outras, você pode especificar valores únicos de ID de notificação nas configurações de notificação por push Android. Veja algumas opções:
- Use templates Liquid com timestamp: Gere um valor único baseado no horário atual.
{% assign random_number = 'now' | date: '%s' | plus: 1000000 %}
{{random_number}}
- Geração no lado do servidor: Para valores verdadeiramente aleatórios, gere o ID da notificação no seu servidor e passe-o por meio de Liquid. Isso garante que cada notificação tenha um identificador distinto, permitindo que múltiplas notificações sejam exibidas simultaneamente.
Prioridade de entrega do Firebase Messaging
O campo Prioridade de Entrega do Firebase Messaging permite controlar se um push é enviado com prioridade “normal” ou “alta” para o Firebase Cloud Messaging.
Tempo de vida (TTL)
O campo Tempo de Vida (TTL) permite definir um período personalizado para armazenar mensagens no serviço de envio de mensagens por push. Os valores padrão do tempo de vida são quatro semanas para FCM e 31 dias para ADM.
Texto de resumo
O texto de resumo permite definir um texto adicional na visualização expandida da notificação. Ele também serve como legenda para notificações com imagens.

O texto de resumo será exibido abaixo do corpo da mensagem na visualização expandida.

Para notificações por push que incluem imagens, o texto da mensagem será exibido na visualização recolhida, enquanto o texto de resumo será exibido como legenda da imagem quando a notificação for expandida.
URIs personalizados
O recurso URI Personalizado permite especificar uma URL da web ou um recurso Android para o qual navegar quando a notificação for clicada. Se nenhum URI personalizado for especificado, clicar na notificação levará os usuários ao seu app. Você pode usar o URI personalizado para fazer deep linking dentro do seu app e direcionar os usuários para recursos que existem fora do seu app. Isso pode ser especificado por meio da API de Envio de Mensagens ou pelo nosso dashboard em Configurações Avançadas no criador de push, conforme ilustrado:

Prioridade de exibição da notificação

A configuração de Prioridade de Exibição da Notificação não é mais utilizada em dispositivos com Android O ou mais recente. Para dispositivos mais novos, defina a prioridade por meio da configuração de canal de notificação.
O nível de prioridade de uma notificação por push afeta como sua notificação é exibida na bandeja de notificações em relação a outras notificações. Também pode afetar a velocidade e a forma de entrega, já que mensagens de prioridade normal e inferior podem ser enviadas com latência ligeiramente maior ou agrupadas para preservar a vida útil da bateria, enquanto mensagens de alta prioridade são sempre enviadas imediatamente.
No Android O, a prioridade da notificação tornou-se uma propriedade dos canais de notificação. Você precisará trabalhar com seu desenvolvedor para definir a prioridade de um canal durante sua configuração e, em seguida, usar o dashboard para selecionar o canal adequado ao enviar os sons de notificação. Para dispositivos com versões do Android anteriores ao O, é possível especificar um nível de prioridade para notificações Android por meio do dashboard da Braze e da API de envio de mensagens.
Para enviar mensagens a toda a sua base de usuários com uma prioridade específica, recomendamos que você especifique a prioridade indiretamente por meio da configuração de canal de notificação (para dispositivos O+) e envie a prioridade individual pelo dashboard (para dispositivos <O).
Os níveis de prioridade que você pode definir em notificações por push Android ou Fire OS são:
| Prioridade | Descrição/Uso previsto | Valor de priority (para mensagens da API) |
|---|---|---|
| Máx | Mensagens urgentes ou críticas em relação ao tempo | 2 |
| Alta | Comunicação importante, como uma nova mensagem de um amigo | 1 |
| Padrão | A maioria das notificações - use se sua mensagem não se encaixa explicitamente em nenhum dos outros tipos de prioridade | 0 |
| Baixa | Informações que você deseja que os usuários saibam, mas que não exigem ação imediata | -1 |
| Mín | Informações contextuais ou de segundo plano. | -2 |
Para saber mais, consulte a documentação do Google sobre notificações Android.
Sons
No Android O, os sons de notificação tornaram-se uma propriedade dos canais de notificação. Você precisará trabalhar com seu desenvolvedor para definir o som de um canal durante sua configuração e, em seguida, usar o dashboard para selecionar o canal adequado ao enviar suas notificações.
Para dispositivos com versões do Android anteriores ao O, a Braze permite definir o som de uma mensagem push individual por meio do criador no dashboard. Você pode fazer isso especificando um recurso de som local no dispositivo (por exemplo, android.resource://com.mycompany.myapp/raw/mysound). Especificar “default” neste campo reproduzirá o som padrão de notificação do dispositivo. Isso pode ser especificado por meio da API de Envio de Mensagens ou pelo dashboard em Configurações Avançadas no criador de push.

Insira o URI completo do recurso de som (por exemplo, android.resource://com.mycompany.myapp/raw/mysound) no campo do dashboard.
Para enviar mensagens a toda a sua base de usuários com um som específico, recomendamos que você especifique o som indiretamente por meio da configuração de canal de notificação (para dispositivos O+) e envie o som individual pelo dashboard (para dispositivos <O).
Pré-requisitos
Antes de poder usar esse recurso, você precisará integrar o Braze Swift SDK. Você também precisará configurar notificações por push.
Personalizando botões de ação
O SDK Swift da Braze fornece suporte ao tratamento de URL para botões de ação por push. Há quatro conjuntos de botões de ação por push padrão para as categorias de push padrão da Braze: Accept/Decline, Yes/No, Confirm/Cancel e More.

Registrando botões de ação manualmente

Registrar botões de ação por push manualmente não é recomendado.
Se você configurar notificações por push usando a opção de configuração configuration.push.automation, a Braze registra automaticamente os botões de ação para as categorias de push padrão e gerencia a análise de dados de cliques dos botões de ação por push e o roteamento de URL.
No entanto, você pode optar por registrar botões de ação por push manualmente.
Etapa 1: Adicionando categorias push padrão da Braze
Use o seguinte código para se registrar nas categorias push padrão ao se registrar no push:
a
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
[[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:BRZNotifications.categories];

Clicar nos botões de ação por push com o modo de ativação em segundo plano apenas descartará a notificação e não abrirá o app. Na próxima vez que o usuário abrir o app, a análise de dados do clique do botão para essas ações será enviada para o servidor.
Etapa 2: Ativar o tratamento interativo de push
Para ativar o tratamento dos botões de ação por push, incluindo análise de dados de cliques e roteamento de URL, adicione o seguinte código ao método delegado didReceive(_:completionHandler:) do seu app:
AppDelegate.braze?.notifications.handleUserNotification(response: response, withCompletionHandler: completionHandler)
[AppDelegate.braze.notifications handleUserNotificationWithResponse:response
withCompletionHandler:completionHandler];
Se você usar o framework UNNotification e tiver implementado os métodos de notificação da Braze, já deverá ter esse método integrado.
Personalizando categorias de push
Além de fornecer um conjunto de categorias de push padrão, a Braze oferece suporte a categorias e ações de notificação personalizadas. Depois de registrar as categorias no seu aplicativo, você pode usar o dashboard da Braze para enviar essas categorias de notificação personalizadas aos seus usuários.
Aqui está um exemplo que utiliza a LIKE_CATEGORY exibida no dispositivo:

Etapa 1: Registre uma categoria
Para registrar uma categoria no seu app, use uma abordagem semelhante à seguinte:
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];

Ao criar um UNNotificationAction, você pode especificar uma lista de opções de ação. Por exemplo, .foreground permite que seus usuários abram seu app após tocar no botão de ação. Isso é necessário para comportamentos de navegação ao clicar, como “Abrir app” e “Deep link no aplicativo”. Se você quiser um botão de ação que simplesmente descarte a notificação sem abrir o app, deixe .foreground fora do array options da ação. Para saber mais, consulte UNNotificationActionOptions.
Etapa 2: Selecione suas categorias
Depois de registrar uma categoria, use o dashboard da Braze para enviar notificações desse tipo aos usuários.

Você só precisa definir botões de ação no dashboard da Braze para comportamentos que não podem ser criados localmente no seu código Swift, como deep linking no seu app ou redirecionamento para uma URL da web. Essas ações precisam ser configuradas no dashboard para que possam definir qual URL ou deep link abrir. Para botões de ação que simplesmente descartam a notificação sem abrir o app, você não precisa configurá-los no dashboard — o comportamento de descarte é tratado automaticamente pelo iOS. Basta registrar sua categoria personalizada e suas ações no código do seu app e depois inserir o nome da categoria correspondente no dashboard.
- No dashboard da Braze, selecione Messaging > Push Notifications e, em seguida, escolha sua Campaign de push para iOS.
- Em Compose push notification, ative os Action Buttons.
- No menu suspenso iOS Notification Category, selecione Enter pre-registered custom iOS Category.
- Por fim, insira uma das categorias que você criou anteriormente. O exemplo a seguir usa a categoria personalizada:
LIKE_CATEGORY.

Exemplo: categoria de push personalizada
Suponha que você queira criar uma notificação por push com dois botões de ação: Manage, que faz deep link no seu app, e Keep, que simplesmente descarta a notificação.
No exemplo a seguir, a ação MANAGE_IDENTIFIER inclui a opção .foreground, que abre o app quando tocada — isso é necessário porque fará deep link em uma parte específica do app. A ação KEEP_IDENTIFIER usa um array de opções vazio, o que significa que descartará a notificação sem abrir o app.
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)
Como MANAGE_IDENTIFIER faz deep link no app, você deve configurar esse botão de ação no dashboard da Braze com a URL de deep link associada. No entanto, você não precisa definir um botão no dashboard para KEEP_IDENTIFIER porque ele apenas descarta a notificação. No dashboard, você só precisa inserir o nome da categoria (por exemplo, YOUR_CATEGORY) para corresponder ao que você registrou no código do seu app.
Personalizando emblemas
Os emblemas são pequenos ícones ideais para chamar a atenção do usuário. Você pode especificar uma contagem de emblemas na guia Settings ao criar uma notificação por push usando o dashboard da Braze. Você também pode atualizar a contagem de emblemas manualmente por meio da propriedade applicationIconBadgeNumber do seu app ou da carga útil de notificação remota.
A Braze limpará automaticamente a contagem de emblemas quando uma notificação da Braze for recebida enquanto o app estiver em primeiro plano. Definir manualmente o número do emblema como 0 também limpará as notificações na central de notificações.
Se você não tiver um plano para limpar os emblemas como parte da operação normal do app ou enviando pushes que limpem o emblema, você deve limpar o emblema quando o app se tornar ativo adicionando o seguinte código ao método sceneDidBecomeActive(_:) do arquivo SceneDelegate.swift (ou ao método delegado applicationDidBecomeActive: do seu app, caso ele ainda não tenha adotado o ciclo de vida 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;
Personalização de sons
Etapa 1: Hospede o som no seu app
Os sons personalizados de notificação por push devem ser hospedados localmente no pacote principal do seu app. Os seguintes formatos de dados de áudio são aceitos:
- Linear PCM
- MA4
- µLaw
- aLaw
Você pode empacotar os dados de áudio em um arquivo AIFF, WAV ou CAF. No Xcode, adicione o arquivo de som ao seu projeto como um recurso não localizado do pacote do aplicativo.

Os sons personalizados devem ter menos de 30 segundos quando reproduzidos. Se um som personalizado ultrapassar esse limite, o som padrão do sistema será reproduzido no lugar.
Conversão de arquivos de som
Você pode usar a ferramenta afconvert para converter sons. Por exemplo, para converter o som do sistema Submarine.aiff em PCM linear de 16 bits para áudio IMA4 em um arquivo CAF, use o seguinte comando no terminal:
afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v

Você pode inspecionar um som para determinar seu formato de dados abrindo-o no QuickTime Player e escolhendo Show Movie Inspector no menu Movie.
Etapa 2: Forneça uma URL de protocolo para o som
Você deve especificar uma URL de protocolo que direcione para o local do arquivo de som no seu app. Existem dois métodos para fazer isso:
- Use o parâmetro
sounddo objeto push da Apple para passar a URL para a Braze. - Especifique a URL no dashboard. No criador de push, selecione Settings e insira a URL de protocolo no campo Sound.

Se o arquivo de som especificado não existir ou a palavra-chave “default” for inserida, a Braze usará o som de alerta padrão do dispositivo. Além do nosso dashboard, o som também pode ser configurado por meio da nossa [API de envio de mensagens][12].
Consulte a documentação para desenvolvedores da Apple sobre preparação de sons de alerta personalizados para informações adicionais.
Configurações
Ao criar uma campanha de push pelo dashboard, clique na guia Settings na etapa Compose para visualizar as configurações avançadas disponíveis.

Pares chave-valor
A Braze permite que você envie pares chave-valor de string definidos por você, conhecidos como extras, junto com uma notificação por push para o seu app. Os extras podem ser definidos pelo dashboard ou pela API e estarão disponíveis como pares chave-valor dentro do dicionário notification passado para suas implementações de delegado de push.
Opções de alerta
Marque a caixa de seleção Alert Options para ver um menu suspenso de chave-valores disponíveis para ajustar como a notificação aparece nos dispositivos.
Adicionando a flag content-available
Marque a caixa de seleção Add Content-Available Flag para instruir os dispositivos a baixar novo conteúdo em segundo plano. Na maioria das vezes, isso pode ser marcado se você tiver interesse em enviar notificações silenciosas.
Adicionando a flag mutable-content
Marque a caixa de seleção Add Mutable-Content Flag para ativar a personalização avançada do receptor. Essa flag será enviada automaticamente ao compor uma notificação Rich, independentemente do valor dessa caixa de seleção.
Collapse ID
Especifique um collapse ID para agrupar notificações semelhantes. Se você enviar várias notificações com o mesmo collapse ID, o dispositivo exibirá apenas a notificação recebida mais recentemente. Consulte a documentação da Apple sobre notificações agrupadas.
Vencimento
Marcar a caixa de seleção Expiry permitirá definir um tempo de vencimento para a sua mensagem. Caso o dispositivo de um usuário perca a conectividade, a Braze continuará tentando enviar a mensagem até o horário especificado. Se isso não for definido, a plataforma usará como padrão um vencimento de 30 dias. Observe que notificações por push que vencem antes da entrega não são consideradas falhas e não serão registradas como bounce.
Pré-requisitos
Antes de usar este recurso, você precisará integrar o SDK Android da Braze. Você também precisará configurar notificações por push.
Configurações
Existem muitas configurações avançadas disponíveis para notificações por push do FireOS enviadas pelo dashboard da Braze. Este artigo descreve esses recursos e como usá-los com sucesso.

Time to live (TTL)
O campo Time to Live (TTL) permite definir um período personalizado para armazenar mensagens no serviço de envio de mensagens push. Os valores padrão para o TTL são quatro semanas para o FCM e 31 dias para o ADM.
Texto de resumo
O texto de resumo permite definir texto adicional na visualização expandida da notificação. Ele também serve como legenda para notificações com imagens.

O texto de resumo será exibido abaixo do corpo da mensagem na visualização expandida.

Para notificações por push que incluem imagens, o texto da mensagem será exibido na visualização recolhida, enquanto o texto de resumo será exibido como legenda da imagem quando a notificação for expandida.
URIs personalizadas
O recurso URI personalizada permite especificar uma URL da web ou um recurso Android para onde navegar quando a notificação for clicada. Se nenhuma URI personalizada for especificada, clicar na notificação levará os usuários para o seu app. Você pode usar a URI personalizada para fazer deep link dentro do seu app e direcionar os usuários para recursos que existem fora do seu app. Isso pode ser especificado por meio da API de envio de mensagens ou no nosso dashboard em Configurações avançadas no criador de push, conforme ilustrado:

Prioridade de exibição da notificação

A configuração de prioridade de exibição da notificação não é mais usada em dispositivos com Android O ou mais recente. Para dispositivos mais novos, defina a prioridade por meio da configuração de canais de notificação.
O nível de prioridade de uma notificação por push afeta como sua notificação é exibida na bandeja de notificações em relação a outras notificações. Ele também pode afetar a velocidade e a forma de entrega, já que mensagens de prioridade normal e inferior podem ser enviadas com uma latência ligeiramente maior ou agrupadas para preservar a vida útil da bateria, enquanto mensagens de alta prioridade são sempre enviadas imediatamente.
No Android O, a prioridade da notificação se tornou uma propriedade dos canais de notificação. Você precisará trabalhar com seu desenvolvedor para definir a prioridade de um canal durante a configuração e, em seguida, usar o dashboard para selecionar o canal adequado ao enviar seus sons de notificação. Para dispositivos com versões do Android anteriores ao O, é possível especificar um nível de prioridade para notificações FireOS por meio do dashboard da Braze e da API de envio de mensagens.
Para enviar mensagens para toda a sua base de usuários com uma prioridade específica, recomendamos que você especifique indiretamente a prioridade por meio da configuração de canais de notificação (para dispositivos O+) e envie a prioridade individual pelo dashboard (para dispositivos <O).
Os níveis de prioridade que você pode definir em notificações por push do Fire OS são:
| Prioridade | Descrição/uso pretendido | Valor de priority (para mensagens via API) |
|---|---|---|
| Max | Mensagens urgentes ou com prazo crítico | 2 |
| High | Comunicação importante, como uma nova mensagem de um amigo | 1 |
| Default | A maioria das notificações — use se sua mensagem não se encaixa explicitamente em nenhum dos outros tipos de prioridade | 0 |
| Low | Informações que você quer que os usuários saibam, mas que não exigem ação imediata | -1 |
| Min | Informações contextuais ou de segundo plano. | -2 |
Para saber mais, consulte a documentação do Google sobre notificações Android.
Sons
No Android O, os sons de notificação se tornaram uma propriedade dos canais de notificação. Você precisará trabalhar com seu desenvolvedor para definir o som de um canal durante a configuração e, em seguida, usar o dashboard para selecionar o canal adequado ao enviar suas notificações.
Para dispositivos com versões do Android anteriores ao O, a Braze permite definir o som de uma mensagem push individual por meio do criador no dashboard. Você pode fazer isso especificando um recurso de som local no dispositivo (por exemplo, android.resource://com.mycompany.myapp/raw/mysound). Especificar “default” neste campo reproduzirá o som de notificação padrão do dispositivo. Isso pode ser especificado por meio da API de envio de mensagens ou no dashboard em Configurações no criador de push.

Insira a URI completa do recurso de som (por exemplo, android.resource://com.mycompany.myapp/raw/mysound) no campo do dashboard.
Para enviar mensagens para toda a sua base de usuários com um som específico, recomendamos que você especifique indiretamente o som por meio da configuração de canais de notificação (para dispositivos O+) e envie o som individual pelo dashboard (para dispositivos <O).
Pré-requisitos
Antes de poder usar esse recurso, você precisará integrar o SDK React Native da Braze. Você também deve configurar notificações por push.
Personalização de push no React Native
O SDK React Native da Braze não expõe a personalização de notificações por push (botões de ação, categorias, fábricas de notificações personalizadas) por meio da API JavaScript. Esses recursos exigem configuração nativa nos seus projetos iOS e Android.
A tabela a seguir mostra quais recursos exigem configuração nativa:
| Recurso | iOS | Android |
|---|---|---|
| Botões de ação | Configurar no Swift/Objective-C nativo | Configurar no Java/Kotlin nativo |
| Categorias de push | Configurar no Swift/Objective-C nativo | Configurar no Java/Kotlin nativo |
| Fábrica de notificações personalizadas | N/D | Configurar no Java/Kotlin nativo |
| Personalização de emblemas | Configurar no Swift/Objective-C nativo | N/D |
| Sons personalizados | Configurar no Swift/Objective-C nativo | Configurar no Java/Kotlin nativo |
Personalização no iOS
Para adicionar botões de ação por push, categorias, emblemas ou sons personalizados no iOS, implemente a configuração nativa no seu AppDelegate (Swift ou Objective-C). Consulte Personalize notificações por push – Swift para instruções passo a passo.
Personalização no Android
Para adicionar botões de ação por push, categorias ou uma fábrica de notificações personalizadas no Android, implemente a configuração nativa no seu projeto Android. Consulte Personalize notificações por push – Android para instruções passo a passo.