Skip to content

Solução de problemas de notificações por push

Saiba como solucionar problemas de notificações por push para o SDK do Braze.

Entendendo o fluxo de trabalho do Braze push

O serviço Firebase Cloud Messaging (FCM) é a infraestrutura do Google para notificações por push enviadas para aplicativos Android. Esta é a estrutura simplificada de como as notificações por push são ativadas para os dispositivos de seus usuários e como o Braze pode enviar notificações por push para eles:

---
config:
  theme: mc
---
sequenceDiagram
  participant Device as User Device
  participant App as Android App
  participant BrazeSDK as Braze SDK
  participant BrazeAPI as Braze Server
  participant Firebase as Google Firebase
  Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
  App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
  BrazeSDK ->> App: Get push token from Firebase Manager
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
  Note over Device, Firebase: Register Option 2<br/>Manual registration.
  App ->> BrazeSDK: App sets `Braze.registeredPushToken`
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.  
  Note over Device, Firebase: Push permission
  BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
  BrazeSDK -> App: In-App Message is displayed
  App -> BrazeSDK: User requests permissions
  BrazeSDK -> App: Displays the Push Authorization prompt
  BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
  Note over Device, Firebase: Push Notification Is Sent
  BrazeAPI ->> Firebase: Sends push message 
  Firebase ->> Device: Push message sent
  Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
  App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
  BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.

Etapa 1: Configuração de sua chave de API do Google Cloud

Ao desenvolver seu app, você precisará fornecer ao SDK da Braze para Android seu ID de remetente do Firebase. Além disso, você precisará fornecer uma chave de API para aplicativos de servidor no dashboard da Braze. O Braze usará essa chave de API para enviar mensagens para seus dispositivos. Também será necessário verificar se o serviço FCM está ativado no console do desenvolvedor do Google.

Etapa 2: Os dispositivos se registram no FCM e fornecem tokens por push ao Braze

Em integrações típicas, o SDK da Braze para Android lidará com o registro de dispositivos para o recurso FCM. Isso geralmente acontece imediatamente após a abertura do app pela primeira vez. Após o registro, a Braze receberá uma ID de registro FCM, que é usada para enviar mensagens especificamente para esse dispositivo. Armazenaremos o ID de registro desse usuário, e ele se tornará “registrado por push” se anteriormente não tiver um token por push para nenhum dos seus apps.

Etapa 3: Lançamento de uma campanha de push do Braze

Quando uma campanha de mensagens push for lançada, a Braze fará solicitações à FCM para entregar sua mensagem. O Braze usará a chave de API copiada no dashboard para autenticar e verificar se podemos enviar notificações por push para os tokens por push fornecidos.

Etapa 4: Remoção de tokens inválidos

Se o FCM nos informar que qualquer um dos tokens por push para os quais estávamos tentando enviar uma mensagem é inválido, removeremos esses tokens dos perfis de usuário aos quais eles estavam associados. Se os usuários não tiverem outros tokens por push, eles não aparecerão mais como “Push Registered” na página Segments (Segmentos ).

Para obter mais detalhes sobre o FCM, acesse Envio de mensagens para a nuvem.

Utilização dos registros de erros do push

O Braze fornece notificações por push de erros no registro de atividades de mensagens. Esse registro de erros fornece uma variedade de avisos que podem ser muito úteis para identificar por que suas campanhas não estão funcionando como esperado. Ao clicar em uma mensagem de erro, o sistema redirecionará você para a documentação relevante que ajudará a solucionar um incidente específico.

Cenários de solução de problemas

O push não está enviando

Suas mensagens push podem não estar sendo enviadas devido às seguintes situações:

  • Suas credenciais existem no ID de projeto errado do Google Cloud Platform (ID de remetente errado).
  • Suas credenciais têm o escopo de permissão incorreto.
  • Você fez upload de credenciais erradas para o espaço de trabalho errado da Braze (ID de remetente errado).

Para outros problemas que possam impedi-lo de enviar uma mensagem push, consulte o Guia do Usuário : Solução de problemas de notificações por push.

Nenhum usuário “push registrado” é exibido no dashboard da Braze (antes do envio de mensagens)

Confirme se o seu app está configurado corretamente para permitir notificações por push. Os pontos de falha comuns a serem verificados incluem:

ID do remetente incorreto

Verifique se o ID do remetente FCM correto está incluído no arquivo braze.xml. Um ID de remetente incorreto levará a erros MismatchSenderID relatados no registro de atividade de mensagens do dashboard.

O registro do Braze não está ocorrendo

Como o registro da FCM é feito fora da Braze, a falha no registro só pode ocorrer em dois lugares:

  1. Durante o registro na FCM
  2. Ao passar o token por push gerado pelo FCM para o Braze

Recomendamos definir um ponto de interrupção ou registro para confirmar que o token por push gerado pelo FCM está sendo enviado ao Braze. Se um token não for gerado corretamente ou de forma alguma, recomendamos consultar a documentação do FCM.

O Google Play Services não está presente

Para que o push do FCM funcione, o Google Play Services deve estar presente no dispositivo. Se o Google Play Services não estiver em um dispositivo, o registro push não ocorrerá.

Nota: O Google Play Services não é instalado em emuladores Android sem as APIs do Google instaladas.

O dispositivo não está conectado à Internet

Verifique se o seu dispositivo tem boa conectividade com a Internet e se não está enviando tráfego de rede por meio de um proxy.

Tocar em uma notificação por push não abre o app

Verifique se com_braze_handle_push_deep_links_automatically está definido como true ou false. Para ativar a Braze para abrir automaticamente o app e quaisquer deep links quando uma notificação por push for tocada, defina com_braze_handle_push_deep_links_automatically como true em seu arquivo braze.xml.

Se com_braze_handle_push_deep_links_automatically estiver definido como o padrão false, você precisará usar um retorno de chamada do Braze Push para ouvir e tratar as intenções recebidas e abertas de push.

As notificações por push sofreram bounce

Se uma notificação por push não for entregue, verifique se não houve bounce no console do desenvolvedor. A seguir estão as descrições de erros comuns que podem ser registrados no console do desenvolvedor:

Erro: MismatchSenderID

MismatchSenderID indica uma falha de autenticação. Confirme se o ID do remetente do Firebase e a chave de API do FCM estão corretos.

Erro: Registro inválido

InvalidRegistration pode ser causado por um token por push malformado.

  1. Certifique-se de passar um token por push válido para o Braze a partir do envio de mensagens do Firebase Cloud.

Erro: Não registrado

  1. NotRegistered normalmente ocorre quando um app é excluído de um dispositivo. A Braze usa o site NotRegistered internamente para sinalizar que um app foi desinstalado de um dispositivo.

  2. NotRegistered também pode ocorrer quando há vários registros e um segundo registro invalida o primeiro token.

Notificações por push enviadas, mas não exibidas nos dispositivos dos usuários

Há alguns motivos pelos quais isso pode estar ocorrendo:

O aplicativo foi encerrado à força

Se você forçar o encerramento do aplicativo por meio das configurações do sistema, as notificações por push não serão enviadas. Ao iniciar o app novamente, seu dispositivo será reativado para receber notificações por push.

BrazeFirebaseMessagingService não registrado

O BrazeFirebaseMessagingService deve ser registrado corretamente em AndroidManifest.xml para que as notificações por push sejam exibidas:

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>

O firewall está bloqueando o push

Se estiver testando o push por Wi-Fi, seu firewall pode estar bloqueando as portas necessárias para que o FCM receba mensagens. Confirme se as portas 5228, 5229 e 5230 estão abertas. Além disso, como o FCM não especifica seus IPs, você também deve permitir que seu firewall aceite conexões de saída para todos os endereços IP contidos nos blocos de IPs listados no ASN do Google de 15169.

Fábrica de notificação personalizada que retorna nulo

Se você tiver implementado uma fábrica de notificações personalizada, certifique-se de que ela não esteja retornando null. Isso fará com que as notificações não sejam exibidas.

Os usuários “Push registrados” não são mais ativados após o envio de mensagens

Há alguns motivos pelos quais isso pode estar acontecendo:

O aplicativo foi desinstalado

Os usuários desinstalaram o aplicativo. Isso invalidará seu token por push FCM.

Chave de servidor do Firebase Cloud Messaging inválida

A chave do servidor do Firebase Cloud Messaging fornecida no dashboard da Braze é inválida. A ID do remetente fornecida deve corresponder àquela referenciada no arquivo braze.xml do seu app. A chave do servidor e o ID do remetente podem ser encontrados aqui em seu console do Firebase:

A plataforma Firebase, em "Settings" (Configurações) e, em seguida, em "Cloud Messaging" (Envio de mensagens na nuvem), exibirá o ID do servidor e a chave do servidor.

Cliques em push não registrados

O Braze registra os cliques push automaticamente, portanto, esse cenário deve ser comparativamente raro.

Se os cliques push não estiverem sendo registrados, é possível que os dados de cliques push ainda não tenham sido enviados aos nossos servidores. A Braze limita a frequência de suas descargas com base na força da conexão de rede. Com uma boa conexão de rede, os dados de cliques push devem chegar ao servidor em um minuto na maioria das circunstâncias.

Os deep linkings não estão funcionando

Verificar a configuração do deep linking

Os deep linkings podem ser testados com o ADB. Recomendamos testar seu deep linking com o seguinte comando:

adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME

Se o deep linking não funcionar, ele pode estar mal configurado. Um deep linking mal configurado não funcionará quando enviado por meio do Braze push.

Verificar a lógica de manipulação personalizada

Se o deep linking funcionar corretamente com o ADB, mas não funcionar com o Braze push, verifique se foi implementado algum tratamento personalizado de abertura de push. Se for o caso, verifique se o código de tratamento personalizado trata corretamente o deep linking de entrada.

Desativar o comportamento da pilha traseira

Se o deep linking funcionar corretamente com o ADB, mas não funcionar com o Braze push, tente desativar a pilha traseira. Para fazer isso, atualize seu arquivo braze.xml para incluir:

1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>

Noções básicas sobre o fluxo de trabalho Braze/APNs

O serviço de Notificações por Push da Apple (APNs) é a infraestrutura para o envio de notificações por push para aplicativos executados nas plataformas da Apple. Esta é a estrutura simplificada de como as notificações por push são ativadas para os dispositivos de seus usuários e como o Braze pode enviar notificações por push para eles:

  1. Você configura o push certificado e o perfil de provisionamento
  2. Os dispositivos se registram no APNs e fornecem à Braze os tokens de push
  3. Você lança uma campanha de push da Braze
  4. Braze remove tokens inválidos

Etapa 1: Configuração de certificado de push e perfil de provisionamento

Ao desenvolver seu app, você precisará criar um certificado SSL para ativar notificações por push. Este certificado será incluído no perfil de provisionamento com o qual seu app é construído e também precisará ser enviado para o dashboard do Braze. O certificado permite que a Braze informe ao APNs que estamos autorizados a enviar notificações por push em seu nome.

Há dois tipos de perfis de provisionamento e certificados: desenvolvimento e distribuição. Recomendamos apenas usar perfis de distribuição e certificados para evitar qualquer confusão. Se você optar por usar perfis e certificados diferentes para desenvolvimento e distribuição, certifique-se de que o certificado enviado para o dashboard corresponda ao perfil de provisionamento que você está usando no momento.

Etapa 2: Os dispositivos se registram no APNs e fornecem à Braze os tokens de push

Quando os usuários abrirem seu app, eles serão solicitados a aceitar notificações por push. Se aceitarem este prompt, o serviço APNs gerará um token por push para aquele dispositivo específico. O Swift SDK enviará imediatamente e de forma assíncrona o token por push para os apps que usam a política de descarga automática padrão. Depois que tivermos um token por push associado a um usuário, ele aparecerá como “Push Registrado” no dashboard em seu perfil de usuário na guia engajamento e será elegível para receber notificações por push das campanhas da Braze.

Considerações sobre a geração de token por push

  • Se os usuários instalarem seu app em outro dispositivo, outro token será criado e capturado da mesma forma.
  • Se os usuários reinstalarem seu app, um novo token será gerado e passado para o Braze. No entanto, o token original ainda pode ser registrado como válido pelos APNs e pelo Braze.
  • Se os usuários desinstalarem seu app, o Braze não será imediatamente notificado sobre isso e o token ainda aparecerá como válido até que seja retirado pelos APNs.
  • Em algum momento, os APNs retirarão os tokens antigos. O Braze não tem controle nem visibilidade disso.

Etapa 3: Lançamento de uma campanha de push da Braze

Quando uma campanha de mensagens push for lançada, a Braze fará solicitações ao APNs para entregar sua mensagem. Especificamente, as solicitações são passadas para APNs para cada token por push válido atualmente, a menos que a opção Enviar para o dispositivo mais recente de um usuário seja selecionada. Depois que o Braze receber uma resposta bem-sucedida dos APNs, registraremos uma entrega bem-sucedida no perfil do usuário, embora o usuário possa não ter recebido a mensagem real por motivos que incluem:

  • Seu dispositivo está desligado.
  • O dispositivo não está conectado à Internet (Wi-Fi ou celular).
  • Recentemente, eles desinstalaram o app.

Braze usará o certificado push SSL carregado no dashboard para autenticar e verificar que temos permissão para enviar notificações por push para os tokens push fornecidos. Se um dispositivo estiver online, a notificação deve ser recebida logo após o envio da campanha. Note que a Braze define a data de expiração padrão do APNs para notificações como 30 dias.

Etapa 4: Remoção de tokens inválidos

Se os APNs nos informarem que qualquer um dos tokens por push para os quais estávamos tentando enviar uma mensagem é inválido, removeremos esses tokens dos perfis de usuário aos quais eles estavam associados.

Usando os registros de erros do push

O registro de atividade de mensagens oferece a oportunidade de ver todas as mensagens (especialmente mensagens de erro) associadas às suas campanhas e envios, incluindo erros de notificação por push. Esse registro de erros fornece uma variedade de avisos que podem ser muito úteis para identificar por que suas campanhas não estão funcionando como esperado. Ao clicar em uma mensagem de erro, o sistema redirecionará você para a documentação relevante que ajudará a solucionar um incidente específico.

Registros de erros push exibindo a hora em que o erro ocorreu, o nome do app, o canal, o tipo de erro e a mensagem de erro.

Os erros comuns que podem ser vistos aqui incluem notificações específicas do usuário, como “Received Unregistered Sending to Push Token”.

Além disso, a Braze também apresenta um changelog de push no perfil do usuário na guia Engajamento. Esse changelog contém insights sobre o comportamento de registro de push, como invalidação de token, erros de registro de push, tokens transferidos para novos usuários, etc.

Erros no registro de atividades de mensagens

Recebido envio não registrado para token por push

  • Certifique-se de que o token por push enviado para a Braze a partir do método AppDelegate.braze?.notifications.register(deviceToken:) seja válido. Consulte o Registro de atividades de envio de mensagem para ver o token por push. Deve parecer algo como 6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6, uma longa string contendo uma mistura de letras e números. Se seu token por push parecer diferente, verifique seu código para enviar os tokens por push ao Braze.
  • Verifique se o seu perfil de provisionamento push corresponde ao ambiente que está testando. Os certificados universais podem ser configurados no dashboard do Braze para enviar para o ambiente APNs de desenvolvimento ou produção. Usar um certificado de desenvolvimento para um app de produção ou um certificado de produção para um app de desenvolvimento não funcionará.
  • Verifique se o token por push que você enviou para a Braze corresponde ao perfil de provisionamento que você usou para desenvolver o app de onde você enviou o token por push.

Token de dispositivo não para tópico

Este erro indica que o certificado de push do seu app e o ID do pacote não correspondem. Verifique se o certificado por push que você enviou para a Braze corresponde ao perfil de provisionamento usado para construir o app do qual o token por push foi enviado.

Envio de BadDeviceToken para token por push

O BadDeviceToken é um código de erro do APNs e não se origina da Braze. Pode haver várias razões para essa resposta ser retornada, incluindo as seguintes:

  • O app recebeu um token por push que era inválido para as credenciais enviadas para o dashboard.
  • Push foi desativado para este espaço de trabalho.
  • O usuário optou por não receber push.
  • O app foi desinstalado.
  • A Apple atualizou o token por push, o que invalidou o token antigo.
  • O app foi criado para um ambiente de produção, mas as credenciais push feitas upload para o Braze estão definidas para um ambiente de desenvolvimento (ou o contrário).

Problemas de registro push

Nenhum prompt de registro push

Se o aplicativo não solicitar que você se registre para notificações por push, provavelmente há um problema com a integração do seu registro de push. Certifique-se de ter seguido nossa documentação e integrado corretamente nosso registro push. Você também pode definir pontos de interrupção em seu código para garantir que o código de registro de push esteja em execução.

Nenhum usuário “push registrado” é exibido no dashboard (antes do envio de mensagens)

Certifique-se de que seu app esteja configurado corretamente para permitir notificações por push. Os pontos de falha comuns a serem verificados incluem:

  • Verifique se o seu app está solicitando a permissão para notificações por push. Normalmente, este prompt aparecerá na primeira vez que você abrir o app, mas pode ser programado para aparecer em outro momento. Se não aparecer onde deveria, o problema provavelmente está na configuração básica das capacidades de push do seu app.
    • Verifique se as etapas da integração push foram concluídas com êxito.
    • Verifique se o perfil de provisionamento com o qual seu app foi criado inclui permissões para push. Certifique-se de que está baixando todos os perfis de provisionamento disponíveis da sua conta de desenvolvedor Apple. Para confirmar isso, execute as etapas a seguir:
      1. No Xcode, acesse Preferences > Accounts (Preferências > Contas) (ou use o atalho de teclado Command+,).
      2. Selecione o ID Apple que você usa para sua conta de desenvolvedor e clique em View Details (Exibir detalhes).
      3. Na próxima página, clique em Atualizar e confirme que você está puxando todos os perfis de provisionamento disponíveis.
  • Verifique se você ativou corretamente a capacitação push em seu app.
  • Verifique se o seu perfil de provisionamento push corresponde ao ambiente em que você está testando. Os certificados universais podem ser configurados no dashboard do Braze para enviar para o ambiente APNs de desenvolvimento ou produção. Usar um certificado de desenvolvimento para um app de produção ou um certificado de produção para um app de desenvolvimento não funcionará.
  • Verifique se você está chamando nosso método registerPushToken com a definição de um ponto de interrupção no código.
  • Certifique-se de que esteja testando usando um dispositivo (o push não funcionará em um simulador) e que tenha boa conectividade de rede.

Notificações por push enviadas, mas não exibidas nos dispositivos dos usuários

Os usuários “Push registrados” não são mais ativados após o envio de mensagens

Provavelmente indica que o usuário tinha um token por push inválido. Isso pode acontecer por várias razões:

A incompatibilidade do certificado do dashboard e do app

Se o certificado de push que você carregou no dashboard não for o mesmo no perfil de provisionamento com o qual seu app foi desenvolvido, o APNs rejeitará o token. Verifique se fez upload do certificado correto e se concluiu outra sessão no app antes de tentar outra notificação de teste.

O aplicativo foi desinstalado

Se um usuário tiver desinstalado seu aplicativo, o token por push dele será inválido e removido no próximo envio.

Regenerando seu perfil de provisionamento

Como último recurso, começar do zero e criar um perfil de provisionamento totalmente novo pode eliminar erros de configuração decorrentes do trabalho com vários ambientes, perfis e apps ao mesmo tempo. Existem muitos fatores na configuração de notificações por push, então, às vezes, é melhor tentar novamente desde o início. Isso também ajudará a isolar o problema se você precisar continuar com a solução de problemas.

Envio de mensagens não entregues a usuários “push registrados”

O app está em primeiro plano

Nas versões do iOS que não integram push via pelo framework UserNotifications, se o app estiver em primeiro plano quando a mensagem push for recebida, ela não será exibida. Você deve colocar o app em segundo plano nos seus dispositivos de teste antes de enviar mensagens de teste.

Notificação de teste agendada incorretamente

Verifique a programação que você definiu para sua mensagem de teste. Se estiver definido para fuso local ou Intelligent Timing, você pode simplesmente não ter recebido a mensagem ainda (ou ter o app em primeiro plano quando foi recebida).

Usuário não “registrado para push” para o app que está sendo testado

Verifique o perfil do usuário para o qual você está tentando enviar uma mensagem de teste. Na guia Engajamento, deve haver uma lista de “apps que podem ser enviados por push”. Verifique se o app para o qual você está tentando enviar mensagens de teste está nessa lista. Os usuários aparecerão como “registrados para push” se tiverem um token por push para qualquer app no seu espaço de trabalho, então isso pode ser algo como um falso positivo.

O seguinte indicaria um problema com o registro de push ou que o token do usuário foi retornado ao Braze como inválido pelo APNs após ser pushado:

Um perfil de usuário exibindo as configurações de contato de um usuário. Em Push, é exibido "No Apps" (Nenhum aplicativo).

Cliques de push não registrados

  • Certifique-se de ter seguido as etapas de integração push.
  • A Braze não gerencia notificações por push recebidas silenciosamente em primeiro plano (comportamento padrão de push em primeiro plano antes do framework UserNotifications). Isso significa que os links não serão abertos e os cliques no push não serão registrados. Se seu app ainda não estiver integrado com o framework UserNotifications, a Braze não gerenciará as notificações por push quando o estado do app for UIApplicationStateActive. Certifique-se de que seu app não postergue as chamadas para os métodos de tratamento de push; caso contrário, o Swift SDK poderá tratar as notificações por push como eventos push silenciosos em primeiro plano e não tratá-las.

Os deep linkings não estão funcionando

Os links nas notificações por push precisam ser compatíveis com ATS para serem abertos em visualizações na web. Certifique-se de que seus links da web usem HTTPS. Para saber mais, consulte Conformidade com ATS.

A maior parte do código que lida com deep links também lida com aberturas de push. Primeiro, confira se as aberturas do push estão sendo registradas. Caso contrário, corrija esse problema (já que a correção geralmente corrige o tratamento de links).

Se as aberturas estiverem sendo registradas, verifique se é um problema com o deep link em geral ou com o manuseio do clique do push de deep linking. Para fazer isso, teste para ver se um deep link de um clique de mensagem no app funciona.

Troubleshooting

If you’re experiencing issues after setting up push notifications, consider the following:

  • Web push notifications require that your site be HTTPS.
  • Not all browsers can receive push messages. Ensure that braze.isPushSupported() returns true in the browser.
  • If a user has denied a site push access, they won’t be prompted for permission again unless they remove the denied status from their browser preferences.

Entendendo o fluxo de trabalho do Braze push

O serviço Firebase Cloud Messaging (FCM) é a infraestrutura do Google para notificações por push enviadas para aplicativos Android. Esta é a estrutura simplificada de como as notificações por push são ativadas para os dispositivos de seus usuários e como o Braze pode enviar notificações por push para eles:

---
config:
  theme: mc
---
sequenceDiagram
  participant Device as User Device
  participant App as Android App
  participant BrazeSDK as Braze SDK
  participant BrazeAPI as Braze Server
  participant Firebase as Google Firebase
  Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
  App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
  BrazeSDK ->> App: Get push token from Firebase Manager
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
  Note over Device, Firebase: Register Option 2<br/>Manual registration.
  App ->> BrazeSDK: App sets `Braze.registeredPushToken`
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.  
  Note over Device, Firebase: Push permission
  BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
  BrazeSDK -> App: In-App Message is displayed
  App -> BrazeSDK: User requests permissions
  BrazeSDK -> App: Displays the Push Authorization prompt
  BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
  Note over Device, Firebase: Push Notification Is Sent
  BrazeAPI ->> Firebase: Sends push message 
  Firebase ->> Device: Push message sent
  Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
  App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
  BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.

Etapa 1: Configuração de sua chave de API do Google Cloud

Ao desenvolver seu app, você precisará fornecer ao SDK da Braze para Android seu ID de remetente do Firebase. Além disso, você precisará fornecer uma chave de API para aplicativos de servidor no dashboard da Braze. O Braze usará essa chave de API para enviar mensagens para seus dispositivos. Também será necessário verificar se o serviço FCM está ativado no console do desenvolvedor do Google.

Etapa 2: Os dispositivos se registram no FCM e fornecem tokens por push ao Braze

Em integrações típicas, o SDK da Braze para Android lidará com o registro de dispositivos para o recurso FCM. Isso geralmente acontece imediatamente após a abertura do app pela primeira vez. Após o registro, a Braze receberá uma ID de registro FCM, que é usada para enviar mensagens especificamente para esse dispositivo. Armazenaremos o ID de registro desse usuário, e ele se tornará “registrado por push” se anteriormente não tiver um token por push para nenhum dos seus apps.

Etapa 3: Lançamento de uma campanha de push do Braze

Quando uma campanha de mensagens push for lançada, a Braze fará solicitações à FCM para entregar sua mensagem. O Braze usará a chave de API copiada no dashboard para autenticar e verificar se podemos enviar notificações por push para os tokens por push fornecidos.

Etapa 4: Remoção de tokens inválidos

Se o FCM nos informar que qualquer um dos tokens por push para os quais estávamos tentando enviar uma mensagem é inválido, removeremos esses tokens dos perfis de usuário aos quais eles estavam associados. Se os usuários não tiverem outros tokens por push, eles não aparecerão mais como “Push Registered” na página Segments (Segmentos ).

Para obter mais detalhes sobre o FCM, acesse Envio de mensagens para a nuvem.

Utilização dos registros de erros do push

O Braze fornece notificações por push de erros no registro de atividades de mensagens. Esse registro de erros fornece uma variedade de avisos que podem ser muito úteis para identificar por que suas campanhas não estão funcionando como esperado. Ao clicar em uma mensagem de erro, o sistema redirecionará você para a documentação relevante que ajudará a solucionar um incidente específico.

Cenários de solução de problemas

O push não está enviando

Suas mensagens push podem não estar sendo enviadas devido às seguintes situações:

  • Suas credenciais existem no ID de projeto errado do Google Cloud Platform (ID de remetente errado).
  • Suas credenciais têm o escopo de permissão incorreto.
  • Você fez upload de credenciais erradas para o espaço de trabalho errado da Braze (ID de remetente errado).

Para outros problemas que possam impedi-lo de enviar uma mensagem push, consulte o Guia do Usuário : Solução de problemas de notificações por push.

Nenhum usuário “push registrado” é exibido no dashboard da Braze (antes do envio de mensagens)

Confirme se o seu app está configurado corretamente para permitir notificações por push. Os pontos de falha comuns a serem verificados incluem:

ID do remetente incorreto

Verifique se o ID do remetente FCM correto está incluído no arquivo braze.xml. Um ID de remetente incorreto levará a erros MismatchSenderID relatados no registro de atividade de mensagens do dashboard.

O registro do Braze não está ocorrendo

Como o registro da FCM é feito fora da Braze, a falha no registro só pode ocorrer em dois lugares:

  1. Durante o registro na FCM
  2. Ao passar o token por push gerado pelo FCM para o Braze

Recomendamos definir um ponto de interrupção ou registro para confirmar que o token por push gerado pelo FCM está sendo enviado ao Braze. Se um token não for gerado corretamente ou de forma alguma, recomendamos consultar a documentação do FCM.

O Google Play Services não está presente

Para que o push do FCM funcione, o Google Play Services deve estar presente no dispositivo. Se o Google Play Services não estiver em um dispositivo, o registro push não ocorrerá.

Nota: O Google Play Services não é instalado em emuladores Android sem as APIs do Google instaladas.

O dispositivo não está conectado à Internet

Verifique se o seu dispositivo tem boa conectividade com a Internet e se não está enviando tráfego de rede por meio de um proxy.

Tocar em uma notificação por push não abre o app

Verifique se com_braze_handle_push_deep_links_automatically está definido como true ou false. Para ativar a Braze para abrir automaticamente o app e quaisquer deep links quando uma notificação por push for tocada, defina com_braze_handle_push_deep_links_automatically como true em seu arquivo braze.xml.

Se com_braze_handle_push_deep_links_automatically estiver definido como o padrão false, você precisará usar um retorno de chamada do Braze Push para ouvir e tratar as intenções recebidas e abertas de push.

As notificações por push sofreram bounce

Se uma notificação por push não for entregue, verifique se não houve bounce no console do desenvolvedor. A seguir estão as descrições de erros comuns que podem ser registrados no console do desenvolvedor:

Erro: MismatchSenderID

MismatchSenderID indica uma falha de autenticação. Confirme se o ID do remetente do Firebase e a chave de API do FCM estão corretos.

Erro: Registro inválido

InvalidRegistration pode ser causado por um token por push malformado.

  1. Certifique-se de passar um token por push válido para o Braze a partir do envio de mensagens do Firebase Cloud.

Erro: Não registrado

  1. NotRegistered normalmente ocorre quando um app é excluído de um dispositivo. A Braze usa o site NotRegistered internamente para sinalizar que um app foi desinstalado de um dispositivo.

  2. NotRegistered também pode ocorrer quando há vários registros e um segundo registro invalida o primeiro token.

Notificações por push enviadas, mas não exibidas nos dispositivos dos usuários

Há alguns motivos pelos quais isso pode estar ocorrendo:

O aplicativo foi encerrado à força

Se você forçar o encerramento do aplicativo por meio das configurações do sistema, as notificações por push não serão enviadas. Ao iniciar o app novamente, seu dispositivo será reativado para receber notificações por push.

BrazeFirebaseMessagingService não registrado

O BrazeFirebaseMessagingService deve ser registrado corretamente em AndroidManifest.xml para que as notificações por push sejam exibidas:

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>

O firewall está bloqueando o push

Se estiver testando o push por Wi-Fi, seu firewall pode estar bloqueando as portas necessárias para que o FCM receba mensagens. Confirme se as portas 5228, 5229 e 5230 estão abertas. Além disso, como o FCM não especifica seus IPs, você também deve permitir que seu firewall aceite conexões de saída para todos os endereços IP contidos nos blocos de IPs listados no ASN do Google de 15169.

Fábrica de notificação personalizada que retorna nulo

Se você tiver implementado uma fábrica de notificações personalizada, certifique-se de que ela não esteja retornando null. Isso fará com que as notificações não sejam exibidas.

Os usuários “Push registrados” não são mais ativados após o envio de mensagens

Há alguns motivos pelos quais isso pode estar acontecendo:

O aplicativo foi desinstalado

Os usuários desinstalaram o aplicativo. Isso invalidará seu token por push FCM.

Chave de servidor do Firebase Cloud Messaging inválida

A chave do servidor do Firebase Cloud Messaging fornecida no dashboard da Braze é inválida. A ID do remetente fornecida deve corresponder àquela referenciada no arquivo braze.xml do seu app. A chave do servidor e o ID do remetente podem ser encontrados aqui em seu console do Firebase:

A plataforma Firebase, em "Settings" (Configurações) e, em seguida, em "Cloud Messaging" (Envio de mensagens na nuvem), exibirá o ID do servidor e a chave do servidor.

Cliques em push não registrados

O Braze registra os cliques push automaticamente, portanto, esse cenário deve ser comparativamente raro.

Se os cliques push não estiverem sendo registrados, é possível que os dados de cliques push ainda não tenham sido enviados aos nossos servidores. A Braze limita a frequência de suas descargas com base na força da conexão de rede. Com uma boa conexão de rede, os dados de cliques push devem chegar ao servidor em um minuto na maioria das circunstâncias.

Os deep linkings não estão funcionando

Verificar a configuração do deep linking

Os deep linkings podem ser testados com o ADB. Recomendamos testar seu deep linking com o seguinte comando:

adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME

Se o deep linking não funcionar, ele pode estar mal configurado. Um deep linking mal configurado não funcionará quando enviado por meio do Braze push.

Verificar a lógica de manipulação personalizada

Se o deep linking funcionar corretamente com o ADB, mas não funcionar com o Braze push, verifique se foi implementado algum tratamento personalizado de abertura de push. Se for o caso, verifique se o código de tratamento personalizado trata corretamente o deep linking de entrada.

Desativar o comportamento da pilha traseira

Se o deep linking funcionar corretamente com o ADB, mas não funcionar com o Braze push, tente desativar a pilha traseira. Para fazer isso, atualize seu arquivo braze.xml para incluir:

1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>

Solução de problemas

O push não aparece depois que o app é fechado no alternador de tarefas

Se observar que as notificações por push não aparecem mais depois que o aplicativo é fechado no alternador de tarefas, é provável que seu app esteja no modo de depuração. O Xamarin adiciona estruturações no modo de depuração que impedem que os apps recebam push depois que seu processo é encerrado. Se você executar seu app no modo de lançamento, deverá ver o push mesmo depois que o app for fechado no alternador de tarefas.

A fábrica de notificações personalizadas não está sendo definida corretamente

Os fatos de notificação personalizados (e todos os delegates) devem estender Java.Lang.Object para funcionar corretamente na divisão entre C# e Java. Para saber mais, consulte Xamarin sobre a implementação de interfaces Java.

QUÃO ÚTIL FOI ESTA PÁGINA?
New Stuff!