Pular para o conteúdo principal

Visão geral

As notificações push do Android são essenciais para impulsionar o engajamento sustentado do usuário e a retenção em seu aplicativo Android. Elas permitem que você entregue atualizações em tempo real, lembretes e mensagens personalizadas diretamente aos seus usuários, melhorando a experiência geral do usuário e a aderência do seu aplicativo. O OneSignal aproveita o Firebase Cloud Messaging (FCM), mas é projetado para fornecer ainda mais flexibilidade e funcionalidade, conforme mostrado neste guia.

Requisitos

  • Dispositivo ou emulador Android 7.0+ com “Google Play Store (Services)” instalado.
  • Android Studio (as instruções de configuração usam o Android Studio Meerkat).
  • Aplicativo e plataforma OneSignal configurados.

Configure your OneSignal app and platform

Required setup for push notifications To start sending push notifications with OneSignal, you must first configure your OneSignal app with all the platforms your support—Apple (APNs), Google (FCM), Huawei (HMS), and/or Amazon (ADM).
If your organization already has a OneSignal account, ask to be invited as an admin role to configure the app. Otherwise, sign up for a free account to get started.
You can manage multiple platforms (iOS, Android, Huawei, Amazon, Web) under a single OneSignal app.
1

Create or select your app

  • To add platforms to an existing app, go to Settings > Push & In-App in the OneSignal dashboard.
  • To start fresh, click New App/Website and follow the prompts.

Example shows creating a new app.

2

Set up and activate a platform

  • Choose a clear and recognizable name for your app and organization.
  • Select the platform(s) you want to configure (iOS, Android, etc.).
  • Click Next: Configure Your Platform.

Example setting up your first OneSignal app, org, and channel.

3

Configure platform credentials

Follow the prompts based on your platforms:Click Save & Continue after entering your credentials.
4

Choose target SDK

Select the SDK that matches your development platform (e.g., iOS, Android, React Native, Unity), then click Save & Continue.

Select which SDK you are using to be navigated to the docs.

5

Install SDK and save your App ID

Once your platform is configured, your OneSignal App ID will be displayed. Copy and save this ID—you’ll need it when installing and initializing the SDK.If collaborating with others, use the Invite button to add developers or teammates, then click Done to complete setup.

Save your App ID and invite additional team members.

Once complete, follow the SDK installation guide for your selected platform to finish integrating OneSignal.

Configuração do Android

1. Adicionar o SDK do OneSignal

No Android Studio, abra seu arquivo build.gradle.kts (Module: app) ou build.gradle (Module: app) e adicione o OneSignal às suas dependencies.
implementation("com.onesignal:OneSignal:[5.4.0, 5.4.99]")

Exemplo mostrando a adição do OneSignal ao arquivo build.gradle.kts do seu App.

Sincronizar o Gradle

Após adicionar a dependência, sincronize seu projeto:
  • Clique em Sync Now no banner
  • Ou vá em File > Sync Project with Gradle Files

2. Inicializar o SDK na classe Application

É uma boa prática inicializar o OneSignal no método onCreate da sua classe Application para garantir a configuração adequada do SDK em todos os pontos de entrada.
Crie uma nova classe (exemplo: ApplicationClass) e adicione o seguinte código.
package com.your.package.name // Replace with your package name
import android.app.Application

class ApplicationClass : Application() {
  override fun onCreate() {
    super.onCreate()
    // OneSignal initialization will go here
  }
}

Exemplo de arquivo ApplicationClass.kt.

Abra o AndroidManifest.xml do seu aplicativoNa sua tag <application>, adicione android:name=".ApplicationClass" (substitua .ApplicationClass pelo nome real da sua classe, se você a definiu como algo diferente).
xml
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools">

     <application
          android:name=".ApplicationClass"
          android:icon="@mipmap/ic_launcher"
          android:label="@string/app_name"
          ...
      </application>

  </manifest>

AndroidManifest.xml com o nome .ApplicationClass.

Na sua ApplicationClass, inicialize o OneSignal com os métodos fornecidos. Substitua YOUR_APP_ID pelo seu ID do aplicativo OneSignal encontrado em Settings > Keys & IDs no seu painel OneSignal. Se você não tiver acesso ao aplicativo OneSignal, peça aos seus Team Members para convidá-lo.
package com.your.package.name // Replace with your package name

import android.app.Application
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

import com.onesignal.OneSignal
import com.onesignal.debug.LogLevel

class ApplicationClass : Application() {
   override fun onCreate() {
      super.onCreate()

      // Enable verbose logging for debugging (remove in production)
      OneSignal.Debug.logLevel = LogLevel.VERBOSE
      // Initialize with your OneSignal App ID
      OneSignal.initWithContext(this, "YOUR_APP_ID")
      // Use this method to prompt for push notifications.
      // We recommend removing this method after testing and instead use In-App Messages to prompt for notification permission.
      CoroutineScope(Dispatchers.IO).launch {
         OneSignal.Notifications.requestPermission(true)
      }
   }
}

Arquivo ApplicationClass.kt com o código do OneSignal adicionado.

Inicializar em uma Activity (como MainActivity) não é recomendado porque pode não ser chamada em inicializações a frio do aplicativo a partir de deep links ou notificações. Sempre inicialize o OneSignal na sua classe Application para maior confiabilidade.

3. Personalizar ícones padrão

Recomendamos configurar seus ícones de notificação para corresponder à marca do seu aplicativo. Caso contrário, o OneSignal usará um ícone de sino padrão.

Testando a integração do SDK do OneSignal

Este guia ajuda você a verificar se a integração do SDK do OneSignal está funcionando corretamente, testando notificações push, registro de assinatura e mensagens in-app.
Se você estiver testando com um emulador Android, ele deve iniciar com uma inicialização a frio.
  1. Vá para Device Manager no Android Studio.
  2. Selecione seu dispositivo emulador e clique em Edit.
  3. Vá para Additional Settings ou More.
  4. Defina a Boot option como Cold Boot.
  5. Salve as alterações e reinicie o emulador.

Verificar assinaturas móveis

1

Inicie seu aplicativo em um dispositivo de teste.

O prompt de permissão push nativo deve aparecer automaticamente se você adicionou o método requestPermission durante a inicialização.

Prompts de permissão push do iOS e Android

2

Verifique seu painel OneSignal

Antes de aceitar o prompt, verifique o painel OneSignal:
  • Vá para Audience > Subscriptions.
  • Você deve ver uma nova entrada com o status “Never Subscribed”.

Painel mostrando assinatura com status 'Never Subscribed'

3

Retorne ao aplicativo e toque em Allow no prompt.

4

Atualize a página de Subscriptions do painel OneSignal.

O status da assinatura agora deve mostrar Subscribed.

Painel mostrando assinatura com status 'Subscribed'

Você criou com sucesso uma assinatura móvel. As assinaturas móveis são criadas quando os usuários abrem seu aplicativo pela primeira vez em um dispositivo ou se desinstalarem e reinstalarem seu aplicativo no mesmo dispositivo.

Configurar assinaturas de teste

As assinaturas de teste são úteis para testar uma notificação push antes de enviar uma mensagem.
1

Adicionar às Assinaturas de Teste.

No painel, ao lado da assinatura, clique no botão Options (três pontos) e selecione Add to Test Subscriptions.

Adicionando um dispositivo às Assinaturas de Teste

2

Nomeie sua assinatura.

Nomeie a assinatura para que você possa identificar facilmente seu dispositivo mais tarde na Test Subscriptions tab.

Painel mostrando o campo 'Name your subscription'

3

Crie um segmento de usuários de teste.

Vá para Audience > Segments > New Segment.
4

Nomeie o segmento.

Nomeie o segmento Test Users (o nome é importante porque será usado posteriormente).
5

Adicione o filtro Test Users e clique em Create Segment.

Criando um segmento 'Test Users' com o filtro Test Users

Você criou com sucesso um segmento de usuários de teste. Agora podemos testar o envio de mensagens para este dispositivo individual e grupos de usuários de teste.

Enviar push de teste via API

1

Obtenha sua chave de API do aplicativo e ID do aplicativo.

No seu painel OneSignal, vá para Settings > Keys & IDs.
2

Atualize o código fornecido.

Substitua YOUR_APP_API_KEY e YOUR_APP_ID no código abaixo pelas suas chaves reais. Este código usa o segmento Test Users que criamos anteriormente.
curl -X \
POST --url 'https://api.onesignal.com/notifications' \
 --header 'content-type: application/json; charset=utf-8' \
 --header 'authorization: Key YOUR_APP_API_KEY' \
 --data \
 '{
  "app_id": "YOUR_APP_ID",
  "target_channel": "push",
  "name": "Testing basic setup",
  "headings": {
  	"en": "👋"
  },
  "contents": {
    "en": "Hello world!"
  },
  "included_segments": [
    "Test Users"
  ],
  "ios_attachments": {
    "onesignal_logo": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
  },
  "big_picture": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
}'
3

Execute o código.

Execute o código no seu terminal.
4

Verifique as imagens e a entrega confirmada.

Se todas as etapas de configuração foram concluídas com sucesso, as assinaturas de teste devem receber uma notificação com uma imagem incluída:

Notificação push com imagem no iOS e Android

As imagens aparecerão pequenas na visualização de notificação recolhida. Expanda a notificação para ver a imagem completa.
5

Verifique a entrega confirmada.

No seu painel, vá para Delivery > Sent Messages e clique na mensagem para visualizar as estatísticas.Você deve ver a estatística confirmed, significando que o dispositivo recebeu o push.

Estatísticas de entrega mostrando entrega confirmada

Se você estiver em um plano Professional ou superior, role até Audience Activity para ver a confirmação no nível da assinatura:

Entrega confirmada no nível do dispositivo na Audience Activity

Você enviou com sucesso uma notificação via nossa API para um segmento.
  • Sem entrega confirmada? Revise o guia de solução de problemas aqui.
  • Tendo problemas? Copie e cole a solicitação de API e um log do início ao fim do lançamento do aplicativo em um arquivo .txt. Em seguida, compartilhe ambos com support@onesignal.com.

Enviar uma mensagem in-app

Mensagens in-app permitem que você se comunique com os usuários enquanto eles estão usando seu aplicativo.
1

Feche ou coloque seu aplicativo em segundo plano no dispositivo.

Isso ocorre porque os usuários devem atender aos critérios de público in-app antes que uma nova sessão comece. No OneSignal, uma nova sessão começa quando o usuário abre seu aplicativo depois que ele ficou em segundo plano ou fechado por pelo menos 30 segundos. Para mais detalhes, consulte nosso guia sobre como as mensagens in-app são exibidas.
2

Crie uma mensagem in-app.

  • No seu painel OneSignal, navegue até Messages > In-App > New In-App.
  • Encontre e selecione a mensagem Welcome.
  • Defina seu Audience como o segmento Test Users que usamos anteriormente.

Segmentando o segmento 'Test Users' com uma mensagem in-app

3

Personalize o conteúdo da mensagem, se desejar.

Exemplo de personalização da mensagem de boas-vindas in-app

4

Defina o Trigger como 'On app open'.

5

Agende a frequência.

Em Schedule > How often do you want to show this message? selecione Every time trigger conditions are satisfied.

Opções de agendamento de mensagens in-app

6

Torne a mensagem ativa.

Clique em Make Message Live para que ela fique disponível para seus Test Users cada vez que eles abrirem o aplicativo.
7

Abra o aplicativo e veja a mensagem.

Depois que a mensagem in-app estiver ativa, abra seu aplicativo. Você deve vê-la exibida:

Mensagem in-app de boas-vindas exibida nos dispositivos

Não está vendo a mensagem?
  • Inicie uma nova sessão
    • Você deve fechar ou colocar o aplicativo em segundo plano por pelo menos 30 segundos antes de reabrir. Isso garante que uma nova sessão seja iniciada.
    • Para mais informações, consulte como as mensagens in-app são exibidas.
  • Ainda no segmento Test Users?
    • Se você reinstalou ou trocou de dispositivo, adicione novamente o dispositivo às Assinaturas de Teste e confirme se ele faz parte do segmento Test Users.
  • Tendo problemas?
    • Siga Getting a Debug Log enquanto reproduz as etapas acima. Isso gerará logs adicionais que você pode compartilhar com support@onesignal.com e nós ajudaremos a investigar o que está acontecendo.
Você configurou com sucesso o SDK do OneSignal e aprendeu conceitos importantes como:Continue com este guia para identificar usuários em seu aplicativo e configurar recursos adicionais.

Identificação de usuário

Anteriormente, demonstramos como criar Assinaturas móveis. Agora vamos expandir para identificar Usuários em todas as suas assinaturas (incluindo push, email e SMS) usando o SDK do OneSignal. Abordaremos IDs externos, tags, assinaturas multicanal, privacidade e rastreamento de eventos para ajudá-lo a unificar e engajar usuários entre plataformas.

Atribuir ID externo

Use um ID externo para identificar usuários de forma consistente em dispositivos, endereços de email e números de telefone usando o identificador de usuário do seu backend. Isso garante que suas mensagens permaneçam unificadas entre canais e sistemas de terceiros (especialmente importante para Integrações). Defina o ID externo com o método login do nosso SDK cada vez que eles forem identificados pelo seu aplicativo.
O OneSignal gera IDs únicos somente leitura para assinaturas (ID de assinatura) e usuários (ID do OneSignal).À medida que os usuários baixam seu aplicativo em diferentes dispositivos, assinam seu site e/ou fornecem endereços de email e números de telefone fora do seu aplicativo, novas assinaturas serão criadas.Definir o ID externo via nosso SDK é altamente recomendado para identificar usuários em todas as suas assinaturas, independentemente de como elas são criadas.

Adicionar tags de dados

Tags são pares chave-valor de dados de string que você pode usar para armazenar propriedades do usuário (como username, role ou preferências) e eventos (como purchase_date, game_level ou interações do usuário). As tags alimentam Personalização de mensagem avançada e Segmentação, permitindo casos de uso mais avançados. Defina tags com nossos métodos addTag e addTags do SDK conforme eventos ocorrem em seu aplicativo. Neste exemplo, o usuário alcançou o nível 6, identificável pela tag chamada current_level definida com um valor de 6.

Um perfil de usuário no OneSignal com uma tag chamada "current_level" definida como "6"

Podemos criar um segmento de usuários que têm um nível entre 5 e 10 e usar isso para enviar mensagens direcionadas e personalizadas:

Editor de segmento mostrando um segmento direcionado a usuários com valor de current_level maior que 4 e menor que 10


Captura de tela mostrando uma notificação push direcionada ao segmento Level 5-10 com uma mensagem personalizada


A notificação push é recebida em um dispositivo iOS e Android com o conteúdo personalizado

Adicionar assinaturas de email e/ou SMS

Anteriormente, vimos como nosso SDK cria assinaturas móveis para enviar mensagens push e in-app. Você também pode alcançar usuários por meio de emails e canais SMS criando as assinaturas correspondentes. Se o endereço de email e/ou número de telefone já existir no aplicativo OneSignal, o SDK irá adicioná-lo ao usuário existente, não criará duplicatas. Você pode visualizar usuários unificados via Audience > Users no painel ou com a API View user.

Um perfil de usuário com assinaturas push, email e SMS unificadas por ID externo

Melhores práticas para comunicação multicanal
  • Obtenha consentimento explícito antes de adicionar assinaturas de email ou SMS.
  • Explique os benefícios de cada canal de comunicação aos usuários.
  • Forneça preferências de canal para que os usuários possam selecionar quais canais preferem.

Privacidade e consentimento do usuário

Para controlar quando o OneSignal coleta dados do usuário, use os métodos de controle de consentimento do SDK: Consulte nossa documentação de Privacidade e segurança para mais informações sobre:

Solicitar permissões push

Em vez de chamar requestPermission() imediatamente na abertura do aplicativo, adote uma abordagem mais estratégica. Use uma mensagem in-app para explicar o valor das notificações push antes de solicitar permissão. Para melhores práticas e detalhes de implementação, consulte nosso guia Solicitar permissões push.

Ouvir eventos push, de usuário e in-app

Use listeners do SDK para reagir a ações do usuário e mudanças de estado. O SDK fornece vários listeners de eventos para você se conectar. Consulte nosso guia de referência do SDK para mais detalhes.

Eventos de notificação push

Para personalização completa, consulte Extensões de serviço móvel.

Mudanças de estado do usuário

Eventos de mensagem in-app

  • addClickListener(): Lida com ações de clique in-app. Ideal para deep linking ou rastreamento de eventos.
  • addLifecycleListener(): Rastreia o ciclo de vida completo das mensagens in-app (exibido, clicado, dispensado, etc.).

Configuração avançada e recursos

Explore mais recursos para aprimorar sua integração:

Configuração e referência do SDK móvel

Certifique-se de ter habilitado todos os recursos principais revisando o guia Configuração de push móvel. Para detalhes completos sobre métodos disponíveis e opções de configuração, visite a Referência do SDK móvel.

Layout de notificação personalizado

O Android 12 e superior impõem modelos do sistema para notificações personalizadas. No entanto, você ainda pode personalizar seu layout usando os estilos de notificação padrão do Android.
Aplicativos direcionados ao Android 12+ não podem usar layouts totalmente personalizados devido a mudanças de comportamento. Consulte Notification.DecoratedCustomViewStyle para personalizações disponíveis.
Para personalizar seu layout:

Desabilitar comportamento de abertura padrão

Quando uma notificação é clicada, o OneSignal retomará seu aplicativo ou abrirá sua Activity iniciadora se seu aplicativo foi deslizado para fora. Para evitar que o OneSignal abra automaticamente sua Activity iniciadora quando uma notificação é clicada, adicione isso ao seu AndroidManifest.xml:
AndroidManifest.xml
  <application ...>
     <meta-data android:name="com.onesignal.NotificationOpened.DEFAULT" android:value="DISABLE" />
  </application>
Você deve implementar um Notification Opened Listener personalizado no método onCreate na sua classe Application. Você precisará chamar startActivity deste callback para levar o usuário à sua Activity pretendida.

Dados de fundo e substituições de push

Suporte a idiomas da direita para a esquerda (RTL)

Para suportar idiomas RTL em notificações e UI, adicione isso ao seu AndroidManifest.xml:
AndroidManifest.xml
  <application
    android:supportsRtl="true"
    ...
  </application>
Certifique-se de testar todas as Activities e views para verificar o comportamento RTL correto. Consulte a documentação do Android sobre localização do seu aplicativo para mais informações.

Need help?Chat with our Support team or email support@onesignal.comPlease include:
  • Details of the issue you’re experiencing and steps to reproduce if available
  • Your OneSignal App ID
  • The External ID or Subscription ID if applicable
  • The URL to the message you tested in the OneSignal Dashboard if applicable
  • Any relevant logs or error messages
We’re happy to help!