Pular para o conteúdo principal

Por que usar um prompt de permissão push?

Para enviar notificações push que aparecem como banners, mostrar na tela de bloqueio e reproduzir sons, seu aplicativo deve primeiro solicitar permissão ao usuário. No iOS, Android, Huawei, Amazon e Web, isso envolve exibir um prompt de permissão no nível do sistema.
iOS and Android system-level push permission prompts side by side
Este guia é para assinantes de push de aplicativos móveis. Para push web, consulte Prompts de permissão web. Pré-requisitos: Uma conta OneSignal, um aplicativo móvel com o SDK do OneSignal instalado, e mensagens in-app habilitadas.
O iOS permite o prompt de permissão do sistema apenas uma vez. O Android permite duas vezes. Se o usuário recusar, ele deverá habilitar notificações manualmente nas configurações do sistema. Um prompt mal cronometrado pode custar permanentemente um assinante.
No iOS, você também pode usar notificações provisórias, que são entregues silenciosamente na Central de Notificações sem solicitar ao usuário — ideal para testes ou onboarding com baixo atrito.
Como o prompt do sistema é limitado, tanto a Apple quanto o Google recomendam fortemente explicar o valor das suas notificações antes de exibi-lo. Você pode acionar o prompt a qualquer momento usando o método SDK requestPermission(), mas sem o contexto adequado, os usuários têm mais probabilidade de recusar — e no iOS, um prompt recusado não pode ser exibido novamente. A abordagem recomendada é um “soft prompt” — uma mensagem in-app personalizada que apresenta a solicitação antes do prompt do sistema. Se o usuário aceitar, o prompt do sistema aparece. Se recusar, nada acontece e você pode perguntar novamente depois.
In-app message leading to system push permission prompt

Configurar um prompt de permissão push in-app

1

Remover quaisquer prompts de permissão automáticos

Antes de começar, certifique-se de que seu aplicativo não está acionando automaticamente o prompt push nativo:
  • Remova os métodos requestPermission() ou optIn() se você estiver chamando-os na inicialização do aplicativo.
  • Remova chamadas nativas do iOS para requestAuthorizationWithOptions e quaisquer métodos que geram tokens push.
  • Remova chamadas do Android para requestPermissions e quaisquer métodos que geram tokens push.
Além disso, certifique-se de estar usando a versão mais recente do SDK do OneSignal em seu aplicativo.
2

Criar ou editar a mensagem in-app

Vá para Messages > In-App, então:
  • Edite o template padrão Push Permission Prompt, ou
  • Clique em New Message para criar o seu próprio.
OneSignal in-app messages list showing the Push Permission Prompt template
Defina a audiência como Show to all users. O OneSignal filtra automaticamente esta mensagem para mostrar apenas para usuários que não se inscreveram no push, com base na ação de clique Push Permission Prompt.
Audience setting configured to show to all users
3

Personalizar o design da mensagem

Personalize a aparência, sensação e redação para se adequar ao seu aplicativo. Informe aos usuários que tipo de notificações eles receberão e por que são valiosas.Consulte Design de Mensagens In-App com Arrastar e Soltar ou Design de mensagens in-app com HTML para detalhes.
In-app message block editor with a push opt-in prompt
4

Adicionar a ação de clique do prompt de permissão push

Adicione uma ação de clique Push Permission Prompt a qualquer botão ou imagem em sua mensagem. Quando tocado, o prompt do sistema é exibido.
Click action dropdown with Push Permission Prompt selected
iOS native push notification permission prompt
Se um usuário já negou a permissão, o botão irá direcioná-lo para as configurações de notificação do seu aplicativo.
Mensagens in-app com uma ação Push Permission Prompt não são mostradas aos usuários que já permitiram notificações.
5

Escolher um gatilho

A audiência controla quem é elegível para ver a mensagem. Os gatilhos controlam quando ela é mostrada.
In-app message trigger configuration panel
Você pode acionar a mensagem:
  • Na abertura do aplicativo
  • Após um tempo definido de sessão
  • Em um evento específico do usuário
  • Programaticamente, usando os métodos SDK de mensagem in-app para controle total sobre tempo e contexto
Por exemplo, para esperar até que o usuário tenha passado pelo menos 5 minutos no aplicativo:
Session duration trigger set to 5 minutes
6

Agendamento e frequência

Controle com que frequência a mensagem aparece:
  • Apenas uma vez — Baixa chance de converter usuários que não estavam prontos da primeira vez.
  • Toda vez que as condições forem atendidas — Muito agressivo e pode incomodar os usuários.
  • Múltiplas vezes (recomendado) — Defina um máximo alto (ex.: 9999) com um intervalo entre visualizações (ex.: 2 semanas). Isso solicita novamente aos usuários não inscritos periodicamente sem ser intrusivo. Ajuste o intervalo com base no seu caso de uso.
Schedule configuration showing max displays and gap between views
Atualize sua mensagem e ative-a. Monitore suas estatísticas e ajuste o intervalo entre exibições conforme necessário.

Mostrar programaticamente o prompt de permissão

Você pode acionar o prompt de permissão push manualmente usando os métodos SDK requestPermission() ou optIn(). Isso é útil para fluxos personalizados, como:

Rastrear permissões push e resultados de prompt

Ao usar mensagens in-app para solicitar push, você pode rastrear ações de clique com o listener de clique de mensagem in-app. Se a mensagem in-app for exibida mas o usuário não clicar no botão, use os eventos de ciclo de vida da mensagem in-app para rastrear impressões e dispensas. Para rastrear o resultado do prompt de permissão no nível do sistema em si, use o listener de permissão push.
Você pode enviar esses eventos SDK para seu backend ou ferramenta de analytics de sua escolha.

FAQ

O que acontece se um usuário recusar o prompt de permissão push?

No iOS, recusar o prompt do sistema desativa permanentemente as notificações push do seu aplicativo — o prompt não pode ser exibido novamente. No Android, o usuário tem mais uma chance (dois no total). Após todas as tentativas serem usadas, o usuário deve reativar as notificações manualmente em Configurações > Notificações no dispositivo. O método requestPermission(fallbackToSettings: true) do SDK do OneSignal pode redirecionar os usuários para as configurações de notificação se a permissão foi negada anteriormente.

Posso personalizar o prompt de permissão nativo do sistema?

Não. Os diálogos de permissão nativos do iOS e Android são controlados pelo sistema operacional e não podem ser personalizados. Você só pode controlar o soft prompt (a mensagem in-app exibida antes do prompt do sistema). Use o soft prompt para explicar o valor das suas notificações, definir expectativas e aumentar a chance de um “Permitir” no prompt do sistema.

Posso ainda solicitar aos usuários com notificações provisórias?

Sim. Se você usar notificações push provisórias do iOS, ainda pode mostrar um soft prompt para converter esses usuários em assinantes push completos. Cronometrize o prompt estrategicamente — depois que o usuário tiver visto o valor das suas notificações provisórias.

Como solicitar novamente a usuários que negaram push anteriormente?

Você não pode exibir o prompt de permissão do sistema novamente depois que o usuário recusou no iOS (ou duas vezes no Android). Em vez disso, use o método SDK requestPermission(fallbackToSettings: true), que abre a página de configurações de notificação do aplicativo para que o usuário possa habilitar as notificações manualmente. Combine isso com uma mensagem in-app explicando por que as notificações são valiosas.

Quando o Android começou a exigir prompts de permissão?

O Android 13 (API nível 33) introduziu a permissão de notificação em tempo de execução, exigindo consentimento explícito do usuário para notificações push.

Notificações push provisórias do iOS

Envie notificações para a Central de Notificações sem um prompt de permissão antecipado no iOS 12+.