init e o caminho do service worker no código, use Custom Code.
Configuração do WordPress
Configuração do Shopify
Configuração Custom Code
OneSignal.init().Requisitos
- Website HTTPS: Web push não funciona em HTTP ou em modos incógnito/privado.
- Acesso ao servidor: Você precisa fazer upload de um arquivo service worker para seu site.
- Origem única: Web push segue a política de mesma origem. Se você tem múltiplas origens (domínios/subdomínios), precisará de múltiplos apps OneSignal (um por origem). Para cumprir com esta limitação do navegador, você pode:
- Redirecionar tráfego para uma origem única para inscrições.
- Criar múltiplos apps OneSignal, um por origem.
Configure seu app e plataforma OneSignal
No dashboard do OneSignal:- Vá para Settings > Push & In-App > Web.

Ative a plataforma web nas suas configurações OneSignal
Typical Site (recomendado)
WordPress
Custom Code
Configuração do site
Adicione os detalhes do site:- Site Name: O nome do seu site e título de notificação padrão.
- Site URL: A URL do seu site. Veja Site URL para mais detalhes.
- Auto Resubscribe: Habilite isto para reinscrever automaticamente usuários que limpam seus dados de navegador quando retornam ao seu site (nenhum novo prompt de permissão necessário).
- Default Icon URL: Faça upload de um PNG, JPG ou GIF não animado quadrado de
256×256que aparece em notificações e prompts. Se não definido, um ícone de sino é usado como padrão. Veja Ícones de notificação.

Configurações Web no dashboard do OneSignal
Site URL
Insira a origem exata do seu site, ex.:https://yourdomain.com. Evite usar www. se seu site não estiver configurado dessa forma.
Se você tem múltiplas origens, veja Requisitos.
Testes locais
O web SDK pode ser testado em ambientes localhost. Se você está testando em localhost, use um app OneSignal separado do seu app de produção.Configuração de localhost
Configuração de localhost
http://localhosthttps://localhost:3000http://127.0.0.1https://127.0.0.1:5000
http://localhost e http://127.0.0.1 como origens seguras, então o SDK pode inicializar via HTTP somente nesses hosts. Outros hostnames (por exemplo http://mysite.local) não são tratados como seguros e não podem ser usados para testar web push.
Testes locais no dashboard do OneSignal
allowLocalhostAsSecureOrigin: true às suas opções init do OneSignal ao inicializar em localhost.Se você está testando localhost em HTTPS com um certificado autoassinado, pode ter que pedir ao Chrome para ignorar certificados inválidos para testes com: --allow-insecure-localhost. Firefox e Safari fornecem mecanismos integrados para adicionar exceções para certificados de segurança.Prompt de permissões
A configuração Typical Site permite que você ou seus membros de equipe adicionem, removam e atualizem prompts de permissão através do dashboard do OneSignal a qualquer momento.Prompts de permissão web
Notificação de boas-vindas (opcional)
Você também pode definir uma notificação de boas-vindas para ser enviada aos usuários quando eles se inscrevem para notificações push. Typical Site e WordPress definem isso no dashboard. Custom Code definewelcomeNotification no OneSignal.init().
Para definir isso no dashboard, vá para Settings > Push & In-App > Web:

Configuração da notificação de boas-vindas
welcomeNotification na referência do Web SDK.
Configurações avançadas
Os seguintes recursos são configuráveis no dashboard do OneSignal.Webhooks
O web SDK pode fazerPOST de certos eventos de web push para uma URL de sua escolha.
Web Push Webhooks são uma implementação separada de Event Webhooks e não podem ser usados de forma intercambiável.
Webhooks de web push
Service workers
O Web SDK procura oOneSignalSDKWorker.js na raiz do seu site (https://yourdomain.com/OneSignalSDKWorker.js), a menos que você informe uma localização diferente.
Como você informa ao SDK uma localização fora da raiz depende do tipo de integração que você selecionou.
Typical Site: Defina o caminho no dashboard. Não defina serviceWorkerPath no código.
Se você hospedar o arquivo na raiz, mantenha as configurações de caminho padrão. Se você hospedá-lo em um subdiretório, deve definir o caminho abaixo, ou o SDK continuará requisitando /OneSignalSDKWorker.js e o registro falhará.
- Vá para Settings > Push & In-App > Web.
- Abra Advanced Push Settings.
- Habilite Customize service worker paths and filenames.
- Defina os campos para corresponder à URL pública do arquivo:

Configuração do service worker
https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js.
Custom Code: Não use os campos de caminho do dashboard. Passe serviceWorkerPath e serviceWorkerParam no OneSignal.init(). Veja Configuração Custom Code para as opções de init, e Service worker do OneSignal para combinar workers e migração.
Comportamento de clique
O comportamento de clique só muda o que acontece quando o usuário já tem seu site aberto em uma aba de mesma origem. Se nenhuma aba correspondente estiver aberta, o navegador abre uma nova aba na URL da notificação. Esta configuração não muda isso. O comportamento de clique funciona no Chrome, Edge, Firefox e Safari. Se nenhuma launch URL estiver definida, a URL da notificação é sua página inicial. Defina uma launch URL para enviar usuários a uma página específica, adicionar rastreamento UTM ou acrescentar?_osp=do_not_open para descartar sem abrir uma página.
Se uma aba de mesma origem já estiver aberta, o comportamento depende da configuração que você escolher:
URLs, links e deep linking
?_osp=do_not_open.Botões de ação
Listeners de eventos push do Web SDK
Persistência
A persistência mantém a notificação na tela até que o usuário interaja com ela. Funciona apenas no Chrome e Edge em desktop. Firefox, Safari e todos os navegadores móveis a ignoram. Uma notificação persistente pode ocultar texto, imagens e botões de ação, então você pode querer desabilitá-la se isso for um problema para seus usuários. Quando o valor não está definido, o SDK atualmente trata a persistência como ativada.- Typical Site: Use a alternância de Persistência em Settings > Push & In-App > Web.
- Custom Code: Defina
persistNotificationnoOneSignal.init(). A alternância do dashboard não se aplica. VejapersistNotification.
Certificado .p12 do Safari Web Push (opcional, legado)
Deixe isso desativado a menos que você já tenha seu próprio certificado.p12 do Safari Web Push e queira dar suporte a usuários legados do Safari.
O Safari moderno (macOS 13+ e iOS 16.4+) usa Web Push baseado em padrões com VAPID (Voluntary Application Server Identification). O OneSignal cuida do VAPID automaticamente. Você não faz upload de um certificado para esses navegadores.
A Apple não oferece um token ou chave .p8 para web push do Safari. Apps nativos de iOS e macOS usam um .p8 para autenticar com o APNs. O web push do Safari não usa. A única credencial da Apple que se aplica ao Safari é um certificado .p12 do Safari Web Push, e apenas para o caminho legado de Website Push ID.
Esse caminho legado ainda se aplica a:
- Safari no macOS 12 e anteriores (sem VAPID)
- Inscritos existentes que já concederam permissão através da API mais antiga do Safari (o Safari não migra essas inscrições para VAPID)
.p12 e da sua senha. Typical Site e Custom Code definem isso no dashboard. Você não define isso no OneSignal.init().

Certificado .p12 do Safari Web Push (opcional, legado)
Fazer upload do arquivo service worker
Adicione o arquivo service workerOneSignalSDKWorker.js ao seu site.
Baixe-o do dashboard do OneSignal, ou crie um arquivo chamado OneSignalSDKWorker.js com esta única linha:

Passo de upload do arquivo service worker
OneSignal.init() em vez disso. Veja Configuração Custom Code.
Raiz (padrão): Faça upload do arquivo para que ele esteja disponível em https://yourdomain.com/OneSignalSDKWorker.js. Mantenha as configurações de caminho do service worker inalteradas. O SDK requisita essa URL automaticamente.
Subdiretório: Se seu site já tem um service worker (por exemplo, um PWA), coloque o arquivo do OneSignal em um subdiretório como /push/onesignal/ para que ele não entre em conflito com o worker que controla /. Então informe ao SDK onde procurar: siga Service workers e habilite Customize service worker paths and filenames. Defina Path to service worker files e Service worker registration scope para esse subdiretório (por exemplo /push/onesignal/). O arquivo deve estar publicamente acessível em https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js.
Uma vez que o arquivo esteja no seu servidor, verifique o seguinte para garantir que funciona:
Verifique a localização
- Padrão:
https://yourdomain.com/OneSignalSDKWorker.js - Exemplo de subdiretório:
https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js
Deve ser publicamente acessível na sua origem
OneSignalSDKWorker.js deve ser publicamente acessível e disponível na sua origem. Não pode ser hospedado via CDN ou colocado em uma origem diferente com redirecionamento.Quando você visitar a URL para o arquivo, você deve ver o código.Deve ser servido com content-type: application/javascript
Service worker do OneSignal
Adicione código ao seu site
Para inicializar o OneSignal no seu site com o SDK JavaScript, copie o código fornecido nas tags<head> do seu website. O dashboard do OneSignal fornece o mesmo trecho pré-preenchido com seu app ID.
Se você carrega scripts com o Google Tag Manager, pare aqui e siga a configuração do Google Tag Manager. Aquele guia usa este trabalho de dashboard e service worker, e então inicializa o SDK no GTM em vez de colar o trecho abaixo.
Suporte de web push para iOS
A Apple começou a suportar notificações web push em iPhones e iPads rodando iOS 16.4+. Diferente de dispositivos Android, onde web push funciona em um navegador suportado sem configuração extra, a Apple exige um arquivomanifest.json e uma ação do usuário para adicionar seu site à Tela de Início.
Configuração de web push para iOS
manifest.json necessário e guie usuários a adicionar seu site à tela de início deles.Testando a integração do OneSignal SDK
Este guia ajuda você a verificar se sua integração do OneSignal SDK está funcionando corretamente testando notificações push e registro de inscrição.Verifique inscrições de web push
Inicie seu site em um dispositivo de teste.
- Use Chrome, Firefox, Edge ou Safari durante os testes.
- Não use modo Incógnito ou navegação privada. Usuários não podem se inscrever em notificações push nestes modos.
- Os prompts devem aparecer baseados na sua configuração de permission prompts.
- Clique em Allow no prompt nativo para se inscrever em notificações push.

Prompt de permissão nativo de web push
Verifique seu dashboard OneSignal
- Vá para Audience > Subscriptions.
- Você deve ver uma nova entrada com o status Subscribed.

Dashboard mostrando inscrição com status 'Subscribed'
Configure inscrições de teste
Inscrições de teste são úteis para testar uma notificação push antes de enviar uma mensagem.Adicione a Test Users.

Adicionando um dispositivo a Test Users
Nomeie sua inscrição.
Crie um segmento de usuários de teste.
Nomeie o segmento.
Test Users (o nome é importante porque será usado depois).Adicione o filtro Test Users e clique em Create Segment.

Criando um segmento 'Test Users' com o filtro Test Users
Envie push de teste via API
Obtenha seu App API Key e App ID.
Atualize o código fornecido.
YOUR_APP_API_KEY e YOUR_APP_ID no código abaixo com suas chaves reais. Este código usa o segmento Test Users que criamos anteriormente.Execute o código.
Verifique imagens e entrega confirmada.

Notificação push expandida com imagem no Chrome macOS
Verifique por entrega confirmada.
Relatórios de mensagens de notificação push
support@onesignal.com com o seguinte:
- A requisição e resposta da API (copie e cole em um arquivo
.txt) - Seu Subscription ID
- A URL do seu website com o código OneSignal
Identificação de usuário
A seção anterior cobriu a criação de Inscrições de web push. Esta seção expande para identificar Usuários através de todas as suas inscrições (incluindo push, email e SMS) usando o OneSignal SDK. Cobre External IDs, tags, inscrições multicanal, privacidade e rastreamento de eventos para ajudá-lo a unificar e engajar usuários em todas as plataformas.Atribua External ID
Use um External ID para identificar usuários consistentemente através de 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 através de canais e sistemas de terceiros (especialmente importante para Integrações). Defina o External ID com o métodologin do SDK cada vez que um usuário é identificado pelo seu app.
Adicione Tags
Tags são pares chave-valor de dados string que você pode usar para armazenar propriedades de usuário (comousername, role ou preferências) e eventos (como purchase_date, game_level ou interações de usuário). Tags potencializam Personalização de Mensagem avançada e Segmentação permitindo casos de uso mais avançados.
Defina tags com os métodos addTag e addTags do SDK conforme eventos ocorrem no seu app.
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"

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

Captura de tela mostrando uma notificação push direcionada ao segmento Nível 5-10 com uma mensagem personalizada
Adicione inscrições de email e/ou SMS
O OneSignal SDK cria inscrições de web push automaticamente quando os usuários optam por receber. Você também pode alcançar usuários através de canais de email e SMS criando as inscrições correspondentes.- Use o método
addEmailpara criar inscrições de email. - Use o método
addSmspara criar inscrições de SMS.

Um perfil de usuário com inscrições push, email e SMS unificadas por External ID
- Obtenha consentimento explícito antes de adicionar inscrições 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 usuários possam selecionar quais canais eles preferem.
Privacidade e consentimento do usuário
Para controlar quando OneSignal coleta dados de usuário, use os métodos de controle de consentimento do SDK:setConsentRequired(true): Previne coleta de dados até que consentimento seja dado.setConsentGiven(true): Habilita coleta de dados uma vez que consentimento é concedido.
Dados coletados pelo SDK
Tratamento de dados pessoais
Escute eventos de push, usuário e in-app
Use listeners do SDK para reagir a ações de usuário e mudanças de estado. O SDK fornece vários event listeners para você conectar. Veja nosso guia de referência do SDK para mais detalhes.Eventos de notificação push
- Click event listener: Detecte quando uma notificação é tocada.
- Foreground lifecycle listener: Controle como notificações se comportam em foreground.
Mudanças de estado do usuário
- User state change event listener: Detecte quando o External ID é definido.
- Permission observer: Rastreie a interação específica do usuário com o prompt de permissão push nativo.
- Push subscription change observer: Rastreie quando o status de inscrição push muda.
Configuração avançada e capacidades
Explore mais capacidades para melhorar sua integração:Migrando para o OneSignal
Integrações
Botões de ação
Mensagens multilíngues
Verificação de Identidade
Custom Outcomes
Configuração e referência do Web SDK
Configuração de web push
Referência do Web SDK
FAQ
O web push funciona em sites HTTP?
Não. O web push requer HTTPS. Os navegadores impõem isso como requisito de segurança. A única exceção élocalhost e 127.0.0.1, que os navegadores tratam como origens seguras para fins de desenvolvimento.
Por que preciso de um arquivo service worker?
O service worker é executado em segundo plano e lida com notificações push recebidas mesmo quando o usuário não tem seu site aberto. Sem ele, o navegador não consegue exibir notificações. O arquivoOneSignalSDKWorker.js deve ser publicamente acessível na sua origem.
Onde o Web SDK procura o service worker?
O Web SDK procura oOneSignalSDKWorker.js na raiz do seu site (https://yourdomain.com/OneSignalSDKWorker.js), a menos que você defina um caminho personalizado. Typical Site define o caminho no dashboard: habilite Customize service worker paths and filenames em Settings > Push & In-App > Web > Advanced Push Settings. Custom Code não usa esses campos do dashboard. Passe serviceWorkerPath e serviceWorkerParam no OneSignal.init(). Veja Configuração Custom Code.
Devo usar este guia se meu site está no WordPress ou Shopify?
Não. Use a configuração do WordPress ou a configuração do Shopify. Essas integrações adicionam o SDK e o service worker para você.Qual é a diferença entre Typical Site e Custom Code?
Typical Site é o caminho recomendado nesta página: você configura prompts, a maioria das configurações e o caminho do service worker no dashboard do OneSignal, e então adiciona o trecho JavaScript. Custom Code é para controle programático. Você define prompts, opções deinit e o caminho do service worker no código com serviceWorkerPath e serviceWorkerParam. Veja Configuração Custom Code.
Preciso fazer upload de um certificado Safari?
Não, não para o Safari no macOS 13+ ou iOS 16.4+. O OneSignal usa VAPID automaticamente. Faça upload de um .p12 do Safari Web Push apenas para o caminho legado de Website Push ID (macOS 12 e anteriores, além de inscritos legados existentes). Veja Certificado .p12 do Safari Web Push.Posso usar uma chave .p8 para web push do Safari?
Não. A Apple não oferece um token ou chave .p8 para web push do Safari. Use um .p8 apenas para apps nativos de iOS ou macOS. Veja Conexão baseada em token .p8 do iOS com o APNs. A única credencial do Safari é um .p12 do Safari Web Push, e apenas para o caminho legado.Posso usar web push no iOS (iPhone/iPad)?
Sim, a partir do iOS 16.4+. No entanto, a Apple exige um arquivomanifest.json e o usuário deve adicionar seu site à tela de início primeiro. Veja Configuração de web push para iOS para os requisitos completos. O web push do iOS usa VAPID. Você não faz upload de um .p12 do Safari nem de um .p8 para ele.
Por que minhas notificações não estão aparecendo?
Causas comuns incluem um arquivo service worker colocado incorretamente, uma Site URL incompatível no dashboard, ou o usuário ter notificações bloqueadas nas configurações do navegador. Veja Web push: notificações não exibidas para uma lista completa de solução de problemas.support@onesignal.comPor favor inclua:- Detalhes do problema que você está enfrentando e passos para reproduzir se disponível
- Seu OneSignal App ID
- O External ID ou Subscription ID se aplicável
- A URL para a mensagem que você testou no Dashboard OneSignal se aplicável
- Quaisquer logs ou mensagens de erro relevantes