- Entregue significa que o OneSignal entregou com sucesso a notificação ao serviço push (FCM, APNs ou HMS) e recebeu uma resposta de sucesso.
- Confirmado significa que o SDK do OneSignal no dispositivo recebeu a notificação.
Antes de começar
Reúna o seguinte para ajudar a solucionar o problema. Você precisará disso para identificar a Inscrição correta e verificar o status de entrega.- Seu ID do Aplicativo OneSignal
- O ID da Mensagem da notificação que não foi exibida
- O ID de Inscrição do usuário afetado
Se você tiver apenas o ID Externo, encontre a Inscrição em Público > Inscrições filtrando por Tipo de Dispositivo, Última Sessão ou Endereço IP.
Configurações do dispositivo
Esta seção se aplica a todas as plataformas. Verifique estes itens antes de investigar causas específicas de plataforma ou no nível de código.Status de permissão e inscrição
No dispositivo:- Navegue até Configurações > Notificações e abra as configurações de notificação do aplicativo.
- Confirme que a permissão de notificações está ativada.
- Em seguida, abra o aplicativo. Se nosso SDK inicializar, ele sincronizará o status de inscrição de volta ao OneSignal.
- Navegue até Público > Inscrições.
- Pesquise pelo ID de Inscrição ou ID Externo, ou classifique por Tipo de Dispositivo, Última Sessão ou Endereço IP.
- Confirme que o status de push mostra Inscrito. Se mostrar cancelado ou não aparecer, o dispositivo não receberá notificações independente do que você enviar. Se o status for inesperado, consulte Solução de problemas abaixo.
Modos Não Perturbe e Foco
Os modos Não Perturbe e Foco no Android e iOS podem suprimir notificações completamente ou agrupá-las de maneiras que as tornam invisíveis até que o modo seja desativado. Desative esses modos antes de testar:- iOS: Ajustes > Foco > Não Perturbe > desativar
- Android: Configurações > Notificações > Não Perturbe > desativar
No iOS, se uma notificação chegar durante o modo Foco e o usuário deslizar o resumo de notificações agrupadas, essas notificações não reaparecerão individualmente depois.
Modo de baixa energia e otimização de bateria
iOS: Desative o Modo de Baixa Potência em Ajustes > Bateria antes de testar. Dispositivos Android: Em Configurações de Bateria, defina o aplicativo como “Sem restrições” ou “Não otimizado”. Se não vir essa opção, pesquise por Otimização de Bateria, Modo de Economia de Energia, Economia de Energia, Limites de uso em segundo plano ou Configurações de Bateria Adaptativa e desative para o aplicativo.Rede e conectividade
Os dispositivos devem estar online para receber notificações push. Se o dispositivo estiver desligado, em modo avião, com conexão instável ou sem internet, o push não será exibido até que uma conexão adequada seja estabelecida. Você pode definir o período que FCM e APNs aguardarão com o parâmetro Time To Live (TTL) (o padrão é 3 dias). Se o dispositivo estiver em uma rede WiFi com firewall ou VPN, essa rede pode estar bloqueando a conexão com os servidores da Apple ou Google. Teste mudando para dados móveis. Se você gerencia o tráfego de rede através de um firewall, configure-o para permitir o seguinte:- FCM (Android): portas TCP de saída 5228, 5229 e 5230. Consulte a documentação FCM para requisitos completos.
- APNs (iOS): porta TCP de saída 5223 e porta TCP 443 ou 2197. Consulte a documentação da Apple para requisitos completos.
Comportamento de agrupamento de notificações
Diferentes versões do Android e iOS têm seu próprio comportamento de agrupamento de notificações. O agrupamento ocorre quando várias notificações do mesmo aplicativo ou de múltiplos aplicativos são agrupadas no centro de notificações. É comum que notificações agrupadas sejam dispensadas juntas, fazendo com que os usuários percam notificações individuais.Problemas no Android
Esta seção se aplica apenas a dispositivos Android. Se você está solucionando problemas no iOS, pule para Problemas no iOS.Forçar Parada no Android
Quando um aplicativo Android é Forçado a Parar, o sistema operacional impede que ele receba notificações push até que o usuário o abra manualmente novamente. Esta é uma das causas mais comuns de notificações perdidas no Android. Alguns fabricantes — incluindo Samsung, Xiaomi e Huawei — forçam a parada agressiva de aplicativos quando o usuário os desliza da lista de aplicativos recentes, enquanto isentam grandes aplicativos como Gmail e WhatsApp. Consulte dontkillmyapp.com para comportamento específico por dispositivo. Para reduzir o comportamento de Forçar Parada no dispositivo afetado, tente as seguintes etapas em ordem:- Permitir atividade em segundo plano: Configurações > Aplicativos > Seu Aplicativo > Bateria > Permitir atividade em segundo plano.
- Desativar aplicativos em suspensão: Configurações > Bateria e Cuidados do Dispositivo > Bateria > Limites de Uso em Segundo Plano > Aplicativos em Suspensão > remova seu aplicativo desta lista.
- Bloquear o aplicativo em Aplicativos Recentes: Abra seu aplicativo, toque no botão Aplicativos Recentes, depois toque e segure a janela do aplicativo e selecione Bloquear este aplicativo (disponível em alguns modelos Samsung).
- Habilitar Inicialização Automática (alguns dispositivos): Configurações > Aplicativos > Seu Aplicativo > Permissões > Inicialização Automática > Habilitar.
- Desativar Otimização de Bateria Adaptativa: Configurações > Bateria e Cuidados do Dispositivo > Bateria > Mais Configurações de Bateria > Bateria Adaptativa > desativar (ou excluir seu aplicativo).
com.company.appname pelo seu nome de pacote:
stopped=false significa que o aplicativo não está Forçado a Parar. stopped=true significa que está.
Você também pode enviar algumas notificações e verificar no logcat esta entrada:
O FCM fornece uma API para verificar a última vez que um dispositivo se conectou aos servidores do FCM. Isso pode confirmar se o dispositivo é acessível. Consulte a documentação do Google sobre informações de instâncias de aplicativo para mais detalhes.Para ajudar os usuários a resolver isso por conta própria, use uma mensagem in-app para direcionar usuários Android conhecidos com instruções para habilitar a atividade em segundo plano. Consulte Exemplo: Direcionar certos fabricantes e dispositivos Android.
Categorias de notificação do Android desativadas
As categorias de notificação do Android (também chamadas de canais) permitem que os usuários desativem tipos específicos de notificações do seu aplicativo. Se uma categoria estiver desativada, as notificações enviadas com essa categoria não aparecerão no dispositivo — mesmo que o aplicativo tenha permissão de notificação. Verifique o estado da categoria no dispositivo: Configurações > Notificações > Seu Aplicativo. Confirme que “Mostrar notificações” está ativado e que todas as categorias estão ligadas.
Você pode usar mensagens in-app para direcionar usuários Samsung com instruções para reativar as categorias. Consulte Exemplo: Direcionar certos fabricantes e dispositivos Android.
Modo Doze do Android, prioridade e mensagens despriorizadas
Os recursos de economia de energia do Android (modo Doze e App Standby) atrasam os processos em segundo plano — incluindo a entrega de push — quando o dispositivo está desconectado e estacionário. Esses modos são ativados automaticamente e não são visíveis para o usuário. O envio de mensagens de alta prioridade acordará o dispositivo e contornará o modo Doze. No entanto, se você enviar muitas mensagens de alta prioridade que não resultam em notificações visíveis, o FCM pode automaticamente rebaixar suas mensagens para prioridade normal. Da documentação do FCM:Mensagens de alta prioridade no Android são destinadas a conteúdo sensível ao tempo e visível para o usuário. Se o FCM detectar um padrão em que as mensagens não resultam em notificações visíveis, suas mensagens podem ser despriorizadas para prioridade normal.Se você suspeitar de despriorização, reduza o uso de alta prioridade para apenas mensagens urgentes.
Configuração do emulador Android
As notificações push em emuladores Android requerem Google Play Services. Se você estiver testando em um emulador e não receber notificações, verifique o seguinte:- A imagem do emulador inclui a Google Play Store
- O emulador está configurado para usar Cold Boot
Problemas no iOS
Esta seção se aplica apenas a dispositivos iOS. Se você está solucionando problemas no Android, consulte Problemas no Android.Bloqueio em primeiro plano no iOS
Se você configurou o iOS UNUserNotificationCenterDelegate, pode ter código bloqueando a exibição da notificação enquanto o aplicativo está em primeiro plano. Remova este código personalizado e use em vez disso o Listener de Evento de Primeiro Plano do nosso SDK.Limpeza de badge do iOS
Quando um aplicativo limpa sua contagem de badge, o iOS remove todas as notificações desse aplicativo do Centro de Notificações. O SDK do OneSignal limpa os badges automaticamente quando o aplicativo é aberto, o que significa que notificações entregadas anteriormente podem desaparecer quando o usuário abrir o aplicativo na próxima vez. Se isso estiver causando confusão durante os testes, consulte Badges para saber como controlar esse comportamento.Configuração da mensagem
Esta seção cobre problemas causados pela forma como a notificação foi configurada no OneSignal, e não pelo dispositivo.Inscrição não está no público-alvo
Verifique o público da mensagem para confirmar que sua Inscrição móvel está incluída:- Segmentos: Verifique se sua Inscrição atende a todas as condições do filtro de público.
- Envio direto: Confirme que o ID que você está direcionando está correto:
- A Inscrição ainda está inscrita para push.
- Tem uma data de última sessão recente — você pode estar enviando para uma Inscrição antiga ou inativa.
Collapse ID substituindo notificações
Se você está definindo um Collapse ID em suas mensagens, uma nova notificação com o mesmo Collapse ID substituirá silenciosamente qualquer notificação não lida com esse ID. Se o usuário não abriu a notificação anterior, ele verá apenas a mais recente. Consulte Remover notificações e TTL para mais detalhes sobre como o Collapse ID funciona.Causas no nível de código
Esta seção requer acesso ao código-fonte do aplicativo. Se você não tem acesso ao código, compartilhe essas verificações com sua equipe de desenvolvimento.Prevenção de notificações em primeiro plano do OneSignal
O Listener de Evento de Primeiro Plano do SDK do OneSignal inclui um métodoevent.preventDefault() que suprime uma notificação enquanto o aplicativo está em primeiro plano. Se este método for chamado incondicionalmente no seu código, todas as notificações em primeiro plano serão silenciosamente bloqueadas.
Durante os testes, mantenha o aplicativo em segundo plano ou completamente fechado para descartar a supressão em primeiro plano como causa.
Android Notification Service Extension
Se você implementou a Android Notification Service Extension, este é o primeiro ponto de entrada para uma notificação recebida no seu aplicativo. Seevent.preventDefault() for chamado dentro desta extensão, a notificação será bloqueada independentemente do estado do aplicativo. Revise o código da extensão e confirme que este método é chamado apenas intencionalmente.
Conflito com o SDK do Firebase Messaging
Se seu aplicativo usa o SDK do Firebase Messaging junto com o OneSignal, verifique seuAndroidManifest.xml para a seguinte declaração de receptor. Se presente, pode interceptar notificações antes que o OneSignal possa processá-las:
AndroidManifest.xml
Solução de problemas
Se você percorreu as seções acima e o problema não foi resolvido, capture um log de depuração. Esta é a forma mais rápida de identificar exatamente onde a entrega está falhando. Siga Obtendo um Log de Depuração para habilitar o registro detalhado no seu aplicativo. Em seguida:- Coloque o aplicativo em segundo plano
- Envie uma notificação de teste para o dispositivo afetado
- Verifique o log em busca de erros. Certifique-se de ver o OneSignal inicializado e que o
subscription-idno log está inscrito para push e é o mesmo para o qual você está enviando a mensagem.
Precisa de ajuda?Entre em contato com nossa equipe de Suporte em
support@onesignal.comPor favor inclua:- Seu ID do Aplicativo OneSignal
- O ID de Inscrição ou ID Externo
- A URL da mensagem que você testou no Painel do OneSignal
- O log de depuração completo de Obtendo um Log de Depuração