O Service Worker é o componente que torna as Push Notifications possíveis no seu site. Neste guia você entende o papel dele, como se conecta à Inngage e as regras dos navegadores para que tudo funcione.

O que é um Service Worker?

É um script JavaScript executado em segundo plano pelo navegador, independente da página aberta. Ele habilita funcionalidades avançadas como Push Notifications, cache inteligente de arquivos, modo offline e interceptação de requisições.

📌 No contexto de push, o Service Worker é obrigatório: é ele que permite ao navegador receber e exibir mensagens mesmo quando o usuário não está com o site aberto.

Como funciona com a Inngage

  1. A Inngage solicita ao visitante a permissão para enviar notificações.
  2. Quando o visitante aceita, o navegador instala o Service Worker no domínio do site.
  3. O Service Worker passa a "escutar" as comunicações vindas da Inngage.
  4. Quando uma mensagem é enviada, ele exibe a notificação na tela do usuário.

Regras obrigatórias dos navegadores

O protocolo Web Push, seguido por todos os navegadores modernos, impõe estas regras:

  • Apenas um Service Worker pode ser registrado por domínio.
  • O arquivo precisa estar acessível na raiz do site, ou em um caminho com permissão explícita (via header Service-Worker-Allowed).
  • Deve ser hospedado no mesmo domínio do site — nunca em domínio ou subdomínio diferente.
  • O navegador não aceita Service Workers carregados via <script> na página; precisa ser um arquivo JS independente.

⚠️ Essas regras são definidas pelos padrões da web (W3C) — não são limitações da Inngage.

Formas de instalar o Service Worker da Inngage

  • Via Upload/FTP: acesse a raiz do seu site (normalmente public_html) e faça o upload do arquivo sw.js fornecido pela Inngage. Veja o guia Instalação manual do Service Worker via FTP.
  • Via VTEX IO / Legacy: veja o guia Instalação manual em VTEX IO.
  • Via Cloudflare: veja o guia Instalação via Cloudflare.
  • Em subdiretórios ou SW existente: veja os guias específicos desta seção.

Perguntas frequentes

Posso usar um Service Worker hospedado em outro domínio? Não. Por segurança, o protocolo Web Push proíbe Service Workers externos.

Posso incluir o conteúdo do Service Worker num <script> no HTML? Não. Ele precisa ser um arquivo JS independente, hospedado no servidor.

Meu site pode enviar Push sem Service Worker? Não — sem ele o navegador não exibe notificações push.

E se eu instalar a tag da Inngage sem configurar o Service Worker? A Inngage tentará pedir permissão via modal e pop-up, mas esse fluxo exige dupla confirmação do visitante e derruba drasticamente a taxa de opt-in. As On Site Notifications continuam funcionando normalmente. Recomendação: instale o Service Worker corretamente para maximizar conversões.

Posso hospedar o Service Worker em um subdiretório? Sim, desde que a resposta HTTP inclua o cabeçalho Service-Worker-Allowed: /. Veja o guia Instalando o Service Worker em subdiretórios.

Meu site já usa um Service Worker. Como integrar o da Inngage? É possível combinar os dois scripts em um único Service Worker — veja o guia Instalando a Inngage em um Service Worker existente.

O Service Worker da Inngage é seguro? Sim. O script é auditável, não acessa nenhuma informação pessoal do visitante e tem uma única função: exibir as notificações para quem concedeu permissão.