O OneSignal não foi projetado para comunicação em tempo real. As notificações push são melhor usadas como fallback quando os usuários não estão ativamente no app. Para mensagens em tempo real dentro do app, use a camada de mensagens existente do seu app e acione notificações do OneSignal apenas quando o destinatário estiver offline ou inativo.
Atividade social
Notifique usuários quando alguém curtir, comentar, mencionar, marcar ou segui-los.
Mensagens diretas
Alerte usuários sobre novas mensagens recebidas com debounce e deep links para a conversa.
Alertas de jogos
Envie eventos competitivos sensíveis ao tempo, como ataques à base, desafios e atividade da guilda.
Pré-requisitos
Antes de começar, certifique-se de que você tem:- O SDK do OneSignal instalado no seu app. Veja Configuração do SDK móvel ou Configuração do SDK web.
- Um
external_iddefinido para cada usuário para que você possa segmentá-los pelo seu próprio identificador. Veja Usuários e Aliases. - Um backend que possa detectar ações sociais e chamar a API do OneSignal. Veja Visão geral da REST API.
- Modelos criados no painel se você planeja usar
custom_datapara personalização. Umtemplate_idé obrigatório para usarcustom_data.
Notificações de atividade social
Envie uma notificação push quando um usuário estiver envolvido em uma ação social. Usecustom_data para injetar o nome do remetente, o avatar e o contexto relevante na mensagem no momento do envio. Nenhum dado é armazenado no OneSignal.
Ações sociais comuns
Configuração
1
Detecte a ação no seu backend
Quando uma ação social ocorre, seu backend identifica o remetente e o destinatário, além de qualquer contexto relevante, como o ID da postagem ou o conteúdo:
JSON
2
Crie um modelo de push
No painel, vá para Messages > Templates > New Push Template. Use a sintaxe Liquid para referenciar os campos de Mensagem:Imagem (opcional, exibe o avatar do remetente):Salve o modelo e anote seu
custom_data:Título:Liquid
Liquid
Liquid
template_id.3
Chame a API Create Message
Do seu backend, envie a notificação ao destinatário:O OneSignal renderiza o modelo no momento do envio usando os valores de
JSON
custom_data. O nome e o avatar do remetente aparecem na notificação sem serem armazenados no OneSignal.4
Opcional: adicione fallbacks de email e SMS
Para alcançar usuários que têm push desabilitado ou cuja notificação não foi entregue, veja Fallbacks de email e SMS abaixo.
Limite ações de alto volume
Uma postagem viral pode gerar milhares de eventos delike por segundo. Não envie um push para cada um — isso inunda o destinatário e faz seu app ser silenciado ou desinstalado. O padrão:
- Acumule contagens no seu backend (por exemplo, um contador Redis com chave por destinatário + postagem).
- Após uma janela de silêncio (10 minutos é um padrão razoável), envie um único push de resumo: “12 pessoas curtiram sua postagem.”
- Se mais curtidas chegarem após o resumo, inicie uma nova janela — não envie outro push imediatamente.
Mensagens diretas (usuário para usuário)
Notifique um usuário quando ele receber uma nova mensagem direta e leve-o via deep link diretamente para a conversa.Envie um push apenas quando o destinatário não estiver ativamente no chat. Notificar alguém que já está lendo a conversa cria uma experiência ruim. Use a lógica do próprio app para verificar se o destinatário está atualmente ativo antes de acionar uma notificação. O OneSignal não rastreia se um usuário está usando seu app no momento.
Configuração
1
Detecte quando uma mensagem é enviada e verifique a atividade
Quando o Usuário A envia uma mensagem para o Usuário B, verifique se o Usuário B está atualmente ativo naquela conversa. Se o Usuário B estiver offline ou fora da conversa, prossiga com o envio de um push.
2
Evite enviar um push por mensagem
Se o Usuário A enviar várias mensagens em sequência, aguarde um curto período após a última mensagem antes de acionar uma notificação. Veja como fazer isso no seu backend:
- Quando a primeira mensagem chegar, inicie um timer (por exemplo, 60 segundos).
- Se outra mensagem chegar antes que o timer termine, reinicie-o.
- Quando o timer terminar sem novas mensagens, envie um único push resumindo a contagem de não lidas.
3
Envie a notificação push
Envie um push para o Usuário B com um deep link para a conversa:Seu app lê
JSON
data.conversation_id na abertura da notificação e navega para a tela correta. Veja Deep linking para a configuração específica de cada plataforma.4
Opcional: adicione fallbacks de email e SMS
Para alcançar usuários que têm push desabilitado ou cuja notificação não foi entregue, veja Fallbacks de email e SMS abaixo.
Jogos: alertas competitivos e sociais
Jogos competitivos se beneficiam de alertas sensíveis ao tempo que criam urgência. Usecustom_data para tornar essas notificações específicas e pessoais. Uma notificação que nomeia o atacante ou mostra contagens exatas de recursos é muito mais atraente do que um alerta genérico.
Eventos competitivos comuns
Configuração
1
Detecte o evento do jogo no seu backend
Quando um evento competitivo ocorre, o backend do seu jogo identifica o jogador afetado e captura o contexto relevante:
JSON
2
Crie um modelo de push
No painel, crie um Modelo de Push com referências Liquid:Título:Mensagem:Salve o modelo e anote seu
Liquid
Liquid
template_id.3
Envie a notificação
Chame a API Create Message a partir do backend do seu jogo:A
JSON
url leva o jogador via deep link diretamente para a tela de defesa. O objeto data passa o contexto ao handler de notificações do seu app para que ele possa carregar o estado de batalha correto.4
Opcional: adicione fallbacks de email e SMS
Para alcançar jogadores que têm push desabilitado ou cuja notificação não foi entregue, veja Fallbacks de email e SMS abaixo.
Mais exemplos de alertas de jogos
- Ultrapassagem no ranking
- Evento de guilda
- Convite de desafio
Mensagem do modelo:Requisição de API:
Liquid
JSON
Fallbacks de email e SMS
Adicione um fallback de email ou SMS a qualquer tipo de notificação para alcançar usuários que têm push desabilitado ou cuja notificação não foi entregue. Use a API View Message para verificar um recebimento confirmado ou clique. Se nenhum for registrado dentro da sua janela de atraso, envie um follow-up usando a mesma abordagem decustom_data com um modelo de Email ou SMS.
- Email
- SMS
Atividade socialMelhor para ações de alto valor, como menções e respostas diretas.Exemplo de modelo de email (assunto):Mensagens diretasMelhor como um resumo diário de conversas não lidas em vez de alertas por mensagem.Exemplo de modelo de email (assunto):Exemplo de modelo de email (corpo, iterando sobre o array de conversas):Veja Personalize mensagens com custom_data da API para a referência completa de iteração de arrays, incluindo objetos aninhados e renderização condicional.JogosMelhor para resumos não urgentes, como resumos semanais de ranking, resultados de guerra de guilda ou desbloqueio de marcos.Exemplo de modelo de email (assunto):
JSON
Liquid
JSON
Liquid
Liquid
JSON
Liquid
FAQ
O OneSignal pode enviar notificações em tempo real, como um app de chat?
Não. As notificações push são entregues pela infraestrutura da Apple (APNs) e do Google (FCM), o que introduz tempos de entrega variáveis e nenhuma garantia de entrega. Use a camada de mensagens existente do seu app para comunicação em tempo real dentro do app e use o OneSignal como fallback quando o destinatário não estiver ativamente no app.Como evito notificar um usuário que já está no app?
O OneSignal não rastreia se um usuário está ativo no seu app no momento. Sua própria lógica de backend deve determinar se a notificação deve ser acionada. Chame a API do OneSignal apenas quando você tiver confirmado que o destinatário está offline ou fora da tela relevante.Como evito múltiplas notificações de sequências rápidas de mensagens?
Adicione um pequeno atraso no seu backend antes de enviar uma notificação. Quando a primeira mensagem chegar, inicie um timer. Se outra mensagem chegar antes que ele termine, reinicie-o. Quando o timer terminar, envie um único push com a contagem de não lidas. O OneSignal não consolida múltiplas chamadas de API automaticamente, então, se você chamar a API cinco vezes, cinco notificações são enviadas.O custom_data é salvo no perfil do usuário depois que a mensagem é enviada?
Não. O custom_data é efêmero e existe apenas durante a requisição de API, usado para renderizar o modelo no momento do envio. Ele não é armazenado no OneSignal e não pode ser reutilizado em mensagens futuras ou Journeys. Para dados de usuário persistentes, use Tags.
Posso segmentar múltiplos destinatários em uma única chamada de API?
Sim. Passe múltiplos valores deexternal_id no array include_aliases. Se cada destinatário precisar de conteúdo personalizado diferente (por exemplo, nomes de atacantes diferentes), use o padrão de personalização em massa no custom_data. Veja Personalize mensagens com custom_data da API para a abordagem completa. O limite exato de destinatários por chamada e os limites de taxa estão documentados na referência da API Create Message — para audiências muito grandes, a segmentação baseada em segmentos é mais eficiente do que passar milhares de valores de external_id por chamada.
Preciso localizar mensagens para usuários internacionais?
Sim, para qualquer audiência que abranja vários idiomas. Os camposheadings e contents aceitam múltiplos códigos de idioma (por exemplo, { "en": "...", "es": "...", "fr": "..." }) e o OneSignal seleciona a variante correta com base no idioma de cada assinatura. O mesmo padrão se aplica aos campos de modelos. Veja Mensagens multilíngues para a referência completa, incluindo o comportamento de idioma de fallback.
Páginas relacionadas
Personalize mensagens com custom_data da API
Injete dados dinâmicos e específicos da mensagem em modelos usando custom_data e a sintaxe Liquid.
Personalização de mensagens
Visão geral de todas as opções de personalização no OneSignal, incluindo Tags, atributos de usuário e segmentação.
Deep linking
Direcione usuários para uma tela específica do seu app quando eles tocarem em uma notificação.
Criar um Feed de Atividades
Exiba um histórico de alertas sociais dentro do seu app usando a caixa de entrada de notificações do OneSignal.
Modelos
Crie e gerencie modelos de mensagens reutilizáveis para push, email e SMS.
API Create Message
Referência completa da API para enviar mensagens com custom_data, segmentação e todos os campos disponíveis.