> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Prompts de permissão web

> Aprenda como usar os prompts de permissão de push na web do OneSignal para aumentar as adesões de notificações push. Abrange prompts suaves, prompts nativos do navegador, prompts deslizantes, configuração de categoria, coleta de email e número de telefone e personalização do sino de assinatura.

***

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/yQBdt7Kf1Lg?si=XSBE3dIb1eBqjOZA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

***

## Visão Geral

"Prompting" refere-se ao processo de pedir permissão aos usuários para enviar-lhes notificações push. Os prompts são mensagens pop-up apresentadas pelo navegador ou aplicativo móvel e exigem que o usuário clique em "Permitir" para ser inscrito e receber notificações push.

O Web Push funciona em Desktop, Android e iOS, mas observe que o [web push para iOS requer algumas etapas adicionais para configurar](./web-push-for-ios). Se você tem um aplicativo móvel, veja [como solicitar Permissões Push com Mensagens no Aplicativo](./prompt-for-push-permissions).

Os navegadores fornecem seu próprio prompt de permissão nativo em nível de sistema, que é obrigatório ser mostrado e clicado em "Permitir" para que o usuário se inscreva para notificações push em seu site. Os navegadores agora [recomendam fortemente que os sites sejam mais seletivos](https://onesignal.com/blog/changes-to-chrome-and-firefox-permission-prompting) quando se trata de mostrar o prompt de permissão nativo. É por isso que usar Prompts do OneSignal ou seus próprios "prompts suaves" personalizados antes do prompt nativo é incentivado.

### Prompts do OneSignal (prompts suaves)

Os prompts suaves do OneSignal são prompts amigáveis e personalizáveis que aparecem antes do diálogo de permissão nativa do navegador. Esses prompts não inscrevem os usuários para mensagens por si mesmos; em vez disso, eles ajudam a:

1. Explicar o valor de se inscrever para mensagens (push, email ou SMS).
2. Evitar que os navegadores bloqueiem automaticamente solicitações de permissão.
3. Lançar o prompt nativo do navegador somente depois que o usuário expressar interesse.

<Note>
  Os prompts suaves são [recomendados pelos navegadores](https://onesignal.com/blog/changes-to-chrome-and-firefox-permission-prompting) e ajudam a maximizar as taxas de engajamento enquanto protegem a reputação do seu domínio.
</Note>

***

## Ícone do prompt

Para personalizar o ícone mostrado em suas notificações push na web, vá para o painel do OneSignal: **Configurações > Push & In-App > Configurações Web**.

Na seção **Configuração do Site**, configure a **URL do Ícone Padrão**. Este ícone aparece em todas as suas notificações, a menos que especificado de outra forma.

* Formatos aceitos: `.png` ou `.jpg`
* Tamanho recomendado: `256x256` pixels (para atender aos requisitos do Safari)
* Se não for definido, o OneSignal usará um ícone de sino genérico

Esta configuração pode ser alterada a qualquer momento.

<Frame caption="A imagem mostra a seção Configuração do Site das suas configurações de push na web. É aqui que você configura o nome do seu site, URL do site e ícone padrão.">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/prompt-icon-site-setup.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=17d8ced53a0a9606ee0e5ffcd1c55d4a" width="2028" height="750" data-path="images/docs/prompt-icon-site-setup.png" />
</Frame>

***

## Configuração do prompt de permissão

Configure os prompts que você gostaria de exibir em seu site para incentivar assinaturas de usuários. No painel do OneSignal, navegue até: **Configurações > Push & In-App > Configurações Web > Configuração do Prompt de Permissão**

A partir daí, clique em **Adicionar Prompt** para escolher entre os tipos de prompt disponíveis do OneSignal. Você também pode editar quaisquer prompts existentes já mostrados na lista.

<Frame caption="Adicione novos prompts ou selecione o prompt que você deseja editar.">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/permission-prompt-setup.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=7f4d0dec6942dce06f795f0397df5633" width="2028" height="576" data-path="images/docs/permission-prompt-setup.png" />
</Frame>

Cada tipo de prompt tem diferentes casos de uso e comportamentos de exibição. Você pode usá-los individualmente ou em combinação para guiar os usuários através do processo de assinatura de uma forma que se adeque à UX do seu site.

Os prompts disponíveis são:

* [Slidedown](#slidedown-%26-category): Um prompt visualmente proeminente usado para notificações push e seleção opcional de categoria.
* [Prompt de Email/Telefone](#email-%26-phone-number-prompt): Usado para coletar endereços de email de usuários, números de telefone ou ambos.
* [Prompt de sino de assinatura](#subscription-bell-prompt): Um widget flutuante persistente para assinaturas push, normalmente colocado no canto inferior do seu site.
* [Prompt de link personalizado](#custom-link-prompt): Um botão ou link personalizável incorporado em seu site que aciona o prompt nativo do navegador.
* [Prompt de permissão nativo](#native-permission-prompt): O prompt obrigatório em nível de navegador que deve ser aceito para que os usuários recebam notificações push.

***

### Slidedown & category

Os prompts Slide e Category aparecem de forma proeminente no centro superior da tela no desktop e centro inferior no mobile. Estes são prompts suaves de alta visibilidade mostrados antes do [prompt de permissão nativo](#native-permission-prompt) obrigatório. Eles não inscrevem o usuário por conta própria, mas ajudam a iniciar o fluxo de assinatura.

<Frame caption="Exemplo mostrando o Prompt Slide com Tags de Categoria.">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/slidedown-categories-demo.gif?s=aba2989a03cc97b01b35eff561c1f120" width="552" height="338" data-path="images/docs/slidedown-categories-demo.gif" />
</Frame>

Para adicionar um Prompt Slide:

1. Vá para **Configurações > Push & In-App > Configurações Web > Configuração do Prompt de Permissão**
2. Selecione **Adicionar Prompt > Prompt Push > Prompt Slide Push**

<Info>
  Para configuração de Código Personalizado, dentro do objeto `promptOptions` do seu código `init` do OneSignal. Use as propriedades `slidedown`. Veja [Referência do SDK Web](./web-sdk-reference) para mais detalhes.
</Info>

<Frame caption="As opções do prompt slide push.">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/slide-prompt-options.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=3b525cb30aa7908a7b8062e99e5734f4" width="1918" height="1602" data-path="images/docs/slide-prompt-options.png" />
</Frame>

<Note>Para detalhes sobre como acionar o prompt, veja [Configurações de exibição e prompt automático](#auto-prompt-%26-display-settings).</Note>

#### Texto do prompt slide

Você pode personalizar o texto exibido no prompt slide:

* Mensagem de ação: até 90 caracteres
* Rótulos dos botões: até 15 caracteres cada
* A personalização de fonte, tamanho ou cores não é suportada atualmente

Ative a opção de personalização de texto no painel. Se nenhum texto for inserido, o texto padrão será usado.

<Frame caption="Opções de texto do prompt slide.">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/slide-prompt-text-options.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=52231800573d2d9f1720f924d59a3474" width="568" height="392" data-path="images/docs/slide-prompt-text-options.png" />
</Frame>

Quando terminar, clique em **Concluído** e **Salvar** novamente na próxima página para que isso entre em vigor.

<Info>
  Para configuração de Código Personalizado, dentro do objeto `promptOptions` do seu código `init` do OneSignal. Use as propriedades `text`. Veja [Referência do SDK Web](./web-sdk-reference) para mais detalhes.
</Info>

#### Categorias

Você pode aprimorar o prompt Slidedown adicionando categorias—caixas de seleção que permitem aos usuários indicar interesse em tópicos de mensagens específicos (por exemplo, Notícias, Vendas, Atualizações).

* Até 10 categorias permitidas
* Cada categoria é armazenada como uma Tag de Dados com valor 1 (selecionada) ou 0 (não selecionada)
* Útil para segmentação e direcionamento de mensagens por preferências do usuário

Você pode exibir o prompt de categoria novamente mais tarde para permitir que os usuários atualizem suas preferências. Os valores selecionados anteriormente serão mantidos, a menos que sejam substituídos.

* **Rótulo**: o que o usuário vê no prompt. Recomenda-se colocar a primeira letra em maiúscula.
* **Chave da Tag**: o que a tag será no OneSignal. Recomenda-se usar letras minúsculas e sublinhados (`_`) para espaços.
* **Instruções de Atualização, Botões Positivo e Negativo**: se você optar por exibir o prompt de categoria novamente depois que o usuário já estiver inscrito para push, as instruções de atualização serão mostradas em vez da mensagem de ação. Isso permite que você informe ao usuário que ele pode atualizar suas categorias.

<Frame caption="Exemplo de categorias. O Rótulo é o que os usuários veem, enquanto a chave da tag é o que é definido como uma chave de tag com valor de '1'.">
  <img src="https://mintcdn.com/onesignal/DUD9LiwQFHL3zLE4/images/web-push/slidedown-category-config.png?fit=max&auto=format&n=DUD9LiwQFHL3zLE4&q=85&s=0bd4de9323c496e67ce19138b18cb602" width="328" height="429" data-path="images/web-push/slidedown-category-config.png" />
</Frame>

Quando terminar, clique em **Concluído** e **Salvar** novamente na próxima página para que isso entre em vigor.

<Info>
  Para configuração de Código Personalizado, dentro do objeto `promptOptions` do seu código `init` do OneSignal. Use as propriedades `categories`. Veja [Referência do SDK Web](./web-sdk-reference) para mais detalhes.
</Info>

<Note>Para detalhes sobre como acionar o prompt, veja [Configurações de exibição e prompt automático](#auto-prompt-%26-display-settings).</Note>

***

### Prompt de email e número de telefone

O Prompt de Email e Telefone coleta informações de contato opcionais do usuário diretamente dentro de um Slidedown. Cada campo possui validação integrada para garantir a formatação correta.

Uma vez enviado:

* Novas assinaturas de Email e/ou SMS são criadas para o usuário
* Você pode começar a enviar mensagens para eles por meio desses canais

Para adicionar este prompt:

* Navegue até **Configurações > Push & In-App > Configurações Web > Configuração do Prompt de Permissão > Adicionar Prompt > Prompt de Email/Telefone**.

<Frame caption="Configuração do Prompt de Email e Número de Telefone">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/email-phone-prompt-setup.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=fea01e0388356640c0d456b8ff0acd53" width="1356" height="428" data-path="images/docs/email-phone-prompt-setup.png" />
</Frame>

Personalize quais campos de entrada são exibidos, os rótulos de texto e o atraso do prompt automático.

<Frame caption="Configuração do Prompt de Email e Número de Telefone">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/email-phone-prompt-options.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=aac3648d194490c50d9b39ac2eecac79" width="1504" height="1574" data-path="images/docs/email-phone-prompt-options.png" />
</Frame>

Quando terminar, pressione **Concluído** e **Salvar** novamente na próxima página para que isso entre em vigor.

<Info>
  Para configuração de Código Personalizado, dentro do objeto `promptOptions` do seu código `init` do OneSignal, adicione o `type` como `email`, `sms` ou `smsAndEmail`. Veja [Referência do SDK Web](./web-sdk-reference) para mais detalhes.
</Info>

<Note>Para detalhes sobre como acionar o prompt, veja [Configurações de exibição e prompt automático](#auto-prompt-%26-display-settings).</Note>

***

### Prompt de sino de assinatura

O Prompt de Sino de Assinatura é um pequeno widget persistente que aparece no canto inferior do seu site. Quando clicado por um usuário não inscrito, ele aciona o [Prompt Nativo do Navegador](./permission-requests).

Devido à sua pegada mínima, o sino pode permanecer visível o tempo todo, tornando-o uma opção passiva, mas eficaz, para oportunidades contínuas de adesão. Ele não requer descarte e fornece aos usuários controle sobre quando se inscrever.

<Frame caption="Prompt de Sino de Assinatura">
  <img src="https://mintcdn.com/onesignal/uaUYB-ILUGPSRvKB/images/docs/subscription-bell-widget.png?fit=max&auto=format&n=uaUYB-ILUGPSRvKB&q=85&s=6b78132f8eddd9584dc4e6fe687b99d1" width="1340" height="730" data-path="images/docs/subscription-bell-widget.png" />
</Frame>

Você pode personalizar a cor, tamanho, posição inferior, texto e mais do Prompt de Sino do OneSignal! **🛑 Você não pode atualmente alterar a imagem do ícone ou colocar o sino nos cantos superiores.**

<AccordionGroup>
  <Accordion title="Configuração Típica de Site e WordPress: Prompt de Sino de Assinatura">
    Navegue até: **Configurações > Push & In-App > Configurações Web > Configuração do Prompt de Permissão > Adicionar Prompt > Prompt de Sino de Assinatura**

    Você pode personalizar:

    * Cor do sino
    * Tamanho
    * Posição inferior (esquerda ou direita)
    * Texto e rótulos

    Após a configuração, clique em **Concluído** e depois em **Salvar** para aplicar as alterações.

    <Frame caption="Configuração do Sino de Assinatura no Painel">
      <img src="https://mintcdn.com/onesignal/uaUYB-ILUGPSRvKB/images/docs/subscription-bell-setup.png?fit=max&auto=format&n=uaUYB-ILUGPSRvKB&q=85&s=0439c90f8592644b6d9e4f2a8fd1853b" width="1504" height="1352" data-path="images/docs/subscription-bell-setup.png" />
    </Frame>
  </Accordion>

  <Accordion title="Configuração de Código Personalizado: Prompt de Sino de Assinatura">
    Use o parâmetro `notifyButton` nas opções de inicialização do seu SDK web. Você pode alternar entre diferentes exemplos para personalizações do Prompt de Sino.

    **Ocultar:** Para ocultar o sino de assinatura depois que um usuário se inscrever ou mostrá-lo apenas em certas páginas, certifique-se de retornar o valor `false` *ou* uma `Promise` que resolve para o valor `false` na função `displayPredicate` durante a inicialização. Esta função é avaliada antes do sino de assinatura ser mostrado. Você pode retornar qualquer outro valor para mostrar o sino de assinatura.

    <CodeGroup>
      ```javascript Text & Basic Options theme={null}
      // Your other init options here
      notifyButton: {
          enable: true, /* Required to use the Subscription Bell */
          size: 'medium', /* One of 'small', 'medium', or 'large' */
          theme: 'default', /* One of 'default' (red-white) or 'inverse" (white-red) */
          position: 'bottom-right', /* Either 'bottom-left' or 'bottom-right' */
          offset: {
              bottom: '0px',
              left: '0px', /* Only applied if bottom-left */
              right: '0px' /* Only applied if bottom-right */
          },
          showCredit: false, /* Hide the OneSignal logo */
          text: {
              'tip.state.unsubscribed': 'Subscribe to notifications',
              'tip.state.subscribed': "You're subscribed to notifications",
              'tip.state.blocked': "You've blocked notifications",
              'message.prenotify': 'Click to subscribe to notifications',
              'message.action.subscribed': "Thanks for subscribing!",
              'message.action.resubscribed': "You're subscribed to notifications",
              'message.action.unsubscribed': "You won't receive notifications again",
              'dialog.main.title': 'Manage Site Notifications',
              'dialog.main.button.subscribe': 'SUBSCRIBE',
              'dialog.main.button.unsubscribe': 'UNSUBSCRIBE',
              'dialog.blocked.title': 'Unblock Notifications',
              'dialog.blocked.message': "Follow these instructions to allow notifications:"
          }
      }
      ```

      ```javascript Colors theme={null}
      // Your other init options here
      notifyButton: {
        enable: true, // Required to use the Subscription Bell
        // Your other Subscription Bell settings here
        colors: { // Customize the colors of the main button and dialog popup button
          'circle.background': 'rgb(84,110,123)',
          'circle.foreground': 'white',
          'badge.background': 'rgb(84,110,123)',
          'badge.foreground': 'white',
          'badge.bordercolor': 'white',
          'pulse.color': 'white',
          'dialog.button.background.hovering': 'rgb(77, 101, 113)',
          'dialog.button.background.active': 'rgb(70, 92, 103)',
          'dialog.button.background': 'rgb(84,110,123)',
          'dialog.button.foreground': 'white'
        },
      }
      ```

      ```javascript Hiding theme={null}
      // Your other init options here
      notifyButton: {
          /* Your other Subscription Bell settings here ... */
          enable: true,
          displayPredicate: function() {
            /* The user is subscribed, so we want to return "false" to hide the Subscription Bell */
            return !OneSignal.Notifications.permission
          },
      }
      ```

      ```javascript HTTPS Full Example Code theme={null}
      <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>
      <script>
        var OneSignal = window.OneSignal || [];
        OneSignal.push(function() {
          OneSignal.init({
            appId: "YOUR_APP_ID",
            notifyButton: {
              enable: true, /* Required to use the Subscription Bell */
            /* SUBSCRIPTION BELL CUSTOMIZATIONS START HERE */
              size: 'medium', /* One of 'small', 'medium', or 'large' */
              theme: 'default', /* One of 'default' (red-white) or 'inverse" (white-red) */
              position: 'bottom-right', /* Either 'bottom-left' or 'bottom-right' */
              offset: {
                  bottom: '0px',
                  left: '0px', /* Only applied if bottom-left */
                  right: '0px' /* Only applied if bottom-right */
              },
              showCredit: false, /* Hide the OneSignal logo */
              text: {
                  'tip.state.unsubscribed': 'Subscribe to notifications',
                  'tip.state.subscribed': "You're subscribed to notifications",
                  'tip.state.blocked': "You've blocked notifications",
                  'message.prenotify': 'Click to subscribe to notifications',
                  'message.action.subscribed': "Thanks for subscribing!",
                  'message.action.resubscribed': "You're subscribed to notifications",
                  'message.action.unsubscribed': "You won't receive notifications again",
                  'dialog.main.title': 'Manage Site Notifications',
                  'dialog.main.button.subscribe': 'SUBSCRIBE',
                  'dialog.main.button.unsubscribe': 'UNSUBSCRIBE',
                  'dialog.blocked.title': 'Unblock Notifications',
                  'dialog.blocked.message': "Follow these instructions to allow notifications:"
              },
              colors: { // Customize the colors of the main button and dialog popup button
                 'circle.background': 'rgb(84,110,123)',
                 'circle.foreground': 'white',
                 'badge.background': 'rgb(84,110,123)',
                 'badge.foreground': 'white',
                 'badge.bordercolor': 'white',
                 'pulse.color': 'white',
                 'dialog.button.background.hovering': 'rgb(77, 101, 113)',
                 'dialog.button.background.active': 'rgb(70, 92, 103)',
                 'dialog.button.background': 'rgb(84,110,123)',
                 'dialog.button.foreground': 'white'
               },
              /* HIDE SUBSCRIPTION BELL WHEN USER SUBSCRIBED */
              displayPredicate: function() {
                  return OneSignal.isPushNotificationsEnabled()
                      .then(function(isPushEnabled) {
                          return !isPushEnabled;
                      });
              }
            }
          });
        });
      </script>
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

***

### Prompt de link personalizado

O Prompt de Link Personalizado é um botão ou link acionado pelo usuário que você pode incorporar em qualquer lugar do seu site. Quando clicado, ele exibe o [Prompt Nativo do Navegador](./permission-requests) para notificações push.

<Frame caption="Prompt de Link Personalizado">
  <img src="https://mintcdn.com/onesignal/a0r2lOarnYx0JYIH/images/docs/custom-link-prompt.png?fit=max&auto=format&n=a0r2lOarnYx0JYIH&q=85&s=85fdb1296bafe621b69c8c45cce1db99" width="1744" height="746" data-path="images/docs/custom-link-prompt.png" />
</Frame>

Casos de uso comuns:

* Abaixo de uma postagem de blog: "Gostou deste artigo? Receba atualizações assim que publicarmos!"
* No rodapé do seu site
* Em um cabeçalho fixo ou barra de ferramentas flutuante

<AccordionGroup>
  <Accordion title="Configuração Típica de Site e WordPress: Prompt de Link Personalizado">
    Navegue até: **Configurações > Push & In-App > Configurações Web > Configuração do Prompt de Permissão > Adicionar Prompt > Link Personalizado**.

    Adicione o HTML fornecido na sua página onde você deseja que o widget seja renderizado.

    Configure suas opções, depois clique em **Concluído** e **Salvar** para ativar.

    <Frame caption="Configuração de Link Personalizado no Painel">
      <img src="https://mintcdn.com/onesignal/a0r2lOarnYx0JYIH/images/docs/custom-link-setup.png?fit=max&auto=format&n=a0r2lOarnYx0JYIH&q=85&s=a47f3461c89f9e730f2574047edfe290" width="1534" height="1352" data-path="images/docs/custom-link-setup.png" />
    </Frame>
  </Accordion>

  <Accordion title="Configuração de Código Personalizado: Link Personalizado">
    Dentro do objeto `promptOptions` do seu código `init` do OneSignal, adicione o objeto `customlink` e suas propriedades disponíveis.

    <CodeGroup>
      ```javascript theme={null}
      // Your other init options here
      promptOptions: {
        customlink: {
          enabled: true, /* Required to use the Custom Link */
          style: "button", /* Has value of 'button' or 'link' */
          size: "medium", /* One of 'small', 'medium', or 'large' */
          color: {
            button: '#E12D30', /* Color of the button background if style = "button" */
            text: '#FFFFFF', /* Color of the prompt's text */
          },
          text: {
            subscribe: "Subscribe to push notifications", /* Prompt's text when not subscribed */
            unsubscribe: "Unsubscribe from push notifications", /* Prompt's text when subscribed */
            explanation: "Get updates from all sorts of things that matter to you", /* Optional text appearing before the prompt button */
          },
          unsubscribeEnabled: true, /* Controls whether the prompt is visible after subscription */
        }
      }
      ```
    </CodeGroup>

    Para renderizar o prompt no seu site, insira o seguinte HTML onde você deseja que o widget apareça:

    ```html html theme={null}
    <div class='onesignal-customlink-container'></div>
    ```
  </Accordion>

  <Accordion title="Configuração Típica e de Código Personalizado: Estilização Adicional">
    Para alterar a aparência do widget a qualquer momento, todos os elementos têm uma classe especial `onesignal-reset` que remove qualquer estilização anterior do elemento para garantir que não haja conflito com nossos estilos internos e que pareça exatamente como você o definiu no painel.

    Se você se encontrar precisando redefinir quaisquer estilos do OneSignal, aqui está uma breve referência das classes usadas no widget de Link Personalizado

    | Nome da Classe                   | Aplica-se a                                                                                            |
    | -------------------------------- | ------------------------------------------------------------------------------------------------------ |
    | onesignal-customlink-container   | Container principal                                                                                    |
    | onesignal-customlink-subscribe   | Botão de ação                                                                                          |
    | onesignal-customlink-explanation | Parágrafo com texto de explicação personalizado                                                        |
    | state-subscribed                 | Todos os componentes internos ao container principal                                                   |
    | state-unsubscribed               | Todos os componentes internos ao container principal                                                   |
    | button                           | Botão de ação se estiver no modo botão                                                                 |
    | link                             | Botão de ação se estiver no modo link                                                                  |
    | small                            | Todos os componentes internos ao container principal                                                   |
    | medium                           | Todos os componentes internos ao container principal                                                   |
    | large                            | Todos os componentes internos ao container principal                                                   |
    | hide                             | Todos os componentes internos ao container principal se unsubscribeEnabled estiver definido como false |

    Para sobrescrever qualquer um deles, você precisa criar uma regra CSS com maior especificidade; combinar o nome da classe com o id do elemento pai deve ser suficiente. Mas cuidado com os conflitos, nossos estilos internos podem mudar.
  </Accordion>
</AccordionGroup>

***

## Prompt de permissão nativo

O prompt de permissão nativo é o diálogo controlado pelo navegador que os usuários devem aceitar para se inscrever para notificações push do seu site. Este prompt é:

* Obrigatório para assinatura
* Automaticamente acionado após prompts suaves do OneSignal (como um Slidedown ou Link Personalizado)
* Não personalizável em aparência, texto ou comportamento

<Frame caption="Prompt de Permissão Nativo no Chrome">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/native-prompt-chrome.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=db741c607bbd5d18f5b31bdf4f0ac38b" width="1422" height="592" data-path="images/docs/native-prompt-chrome.png" />
</Frame>

### Comportamento do prompt nativo do navegador

Diferentes navegadores impõem comportamentos e restrições únicos para reduzir solicitações de permissão spam. Em um esforço para combater spam e má experiência do usuário, o OneSignal automaticamente usará o Prompt Slide por padrão em certos casos listados abaixo.

**Se você não quiser mostrar o Prompt Slide e gostaria de usar o prompt de permissão nativo diretamente, você deve desativar as opções de Prompt Automático e usar nosso [método `requestPermission()` do SDK Web](./web-sdk-reference#requestpermission).** Observe que exibir o prompt de permissão nativo diretamente pode não funcionar em todos os navegadores conforme descrito abaixo.

#### Chrome

[Chrome 80+](https://blog.chromium.org/2020/01/introducing-quieter-permission-ui-for.html?m=1) pode exibir uma UI mais discreta em vez do prompt completo:

* Aplica-se automaticamente a usuários que frequentemente negam prompts
* Também se aplica a sites com uma alta taxa de negações

<Frame caption="Exemplo de uma UI mais discreta no Chrome desktop.">
  <img src="https://mintcdn.com/onesignal/GxkD7lQqPiL4KVpn/images/push/chrome-quiet-ui.png?fit=max&auto=format&n=GxkD7lQqPiL4KVpn&q=85&s=683a14ce5d8f0849d6ccc3479377ff06" width="1344" height="646" data-path="images/push/chrome-quiet-ui.png" />
</Frame>

O Chrome implementa lógica de recuo se o usuário clicar no "X" no prompt nativo:

* Você tem 3 tentativas para solicitar
* Após a 3ª dispensa, o prompt é suprimido por 7 dias ([fonte](https://chromestatus.com/feature/6443143280984064)).

<Warning>
  Usar a Configuração Típica de Site e WordPress para configurar o prompt de permissão nativo mostrará automaticamente o Prompt Slide no Chrome para dispositivos móveis.

  Nós deliberadamente adicionamos o prompt duplo no Android porque o Prompt de Permissão nativo no Chrome para Android é um pop-up muito hostil ao usuário que toma conta da tela inteira do seu site e isso evita que seus usuários tenham uma má experiência ao visitar seu site.

  Se você não quiser mostrar o Prompt Slide, você deve desativar a opção de Prompt Automático no Editor de Prompts (não se esqueça de pressionar o botão **Salvar**), então use o [método `requestPermission()` do SDK Web](./web-sdk-reference#requestpermission).
</Warning>

#### Firefox

[Firefox 72+](https://blog.mozilla.org/futurereleases/2019/11/04/restricting-notification-permission-prompts-in-firefox/) começou a exigir um gesto do usuário para acionar o prompt de permissão nativo. Se você tentar mostrar automaticamente o prompt de permissão nativo no Firefox, você verá um ícone dentro do navegador assim, exigindo que o usuário clique no ícone para mostrar o prompt de permissão nativo.

<Frame caption="Ícone do Firefox">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/firefox-permission-icon.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=b02371c12275f3bb8ae2c8e9bea1cd9e" width="831" height="84" data-path="images/docs/firefox-permission-icon.png" />
</Frame>

<Warning>
  Usar a Configuração Típica de Site e WordPress para configurar o prompt de permissão nativo mostrará automaticamente o Prompt Slide no Firefox.

  Nós deliberadamente adicionamos o prompt duplo no Firefox porque ele requer uma adesão em 2 etapas em qualquer caso e o prompt Slide é uma maneira mais chamativa de aumentar o engajamento.

  Se você não quiser mostrar o Prompt Slide, você deve desativar a opção de Prompt Automático no Editor de Prompts (não se esqueça de pressionar o botão **Salvar**), então use o [método `requestPermission()` do SDK Web](./web-sdk-reference#requestpermission).
</Warning>

#### Safari

[Safari 12.1+](https://developer.apple.com/documentation/safari_release_notes/safari_12_1_release_notes) começou a exigir um gesto do usuário para acionar o prompt de permissão nativo.

<Warning>
  Usar a Configuração Típica de Site e WordPress para configurar o prompt de permissão nativo não funcionará para o Safari por causa deste requisito de gesto do usuário.

  Nós deliberadamente adicionamos o Prompt Slide no Safari porque ele requer uma adesão em 2 etapas.
</Warning>

#### Edge

[Edge](https://blogs.windows.com/msedgedev/2023/07/06/fighting-notification-spam-microsoft-edge/) usa um modelo baseado em confiança:

* Se o site não for confiável, o prompt é suprimido e substituído por um ícone de sino na barra do navegador:

<Frame caption="Ícone de sino mostrado para sites desconhecidos ou não confiáveis no Edge.">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/edge-untrusted-bell-icon.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=89f63297323c3dd1bb72007b2259110d" width="1014" height="556" data-path="images/docs/edge-untrusted-bell-icon.png" />
</Frame>

* Se o site for confiável, o prompt nativo aparece normalmente:

<Frame caption="O prompt nativo aparece diretamente para sites confiáveis no Edge.">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/edge-trusted-native-prompt.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=08a0cef396c99ca006e44c4a1b6b0460" width="862" height="402" data-path="images/docs/edge-trusted-native-prompt.png" />
</Frame>

***

## Configurações de exibição e prompt automático

Para maximizar o engajamento e evitar interromper seus usuários, é melhor atrasar a exibição de prompts até que eles tenham passado algum tempo no seu site. O OneSignal permite que você exiba automaticamente prompts com base no comportamento do usuário usando duas condições de atraso:

* **Visualizações de Página:** Número de vezes que o usuário carrega qualquer página do seu site
* **Segundos na Página:** Quantidade de tempo que o usuário deve passar na página

Esses atrasos são aplicados usando uma condição **E**, o que significa que ambos devem ser satisfeitos antes que o prompt apareça.

**Exemplo:** Se você definir o atraso para 3 visualizações de página e 30 segundos, o prompt será exibido no terceiro carregamento de página, após 30 segundos terem passado. Se o usuário não interagir com o prompt, ele continuará sendo mostrado em cada carregamento de página (após 30 segundos) até que seja clicado ou dispensado.

<AccordionGroup>
  <Accordion title="Configuração Típica de Site e WordPress: Prompt Automático">
    * Navegue até: **Configurações > Push & In-App > Configurações Web > Configuração do Prompt de Permissão**
    * Escolha um prompt ou crie um novo
    * Ative o Prompt Automático
    * Defina suas preferências de atraso (visualizações de página e atraso de tempo)

    <Frame caption="Exemplo: Este prompt está configurado para aparecer na terceira visualização de página após 30 segundos.">
      <img src="https://mintcdn.com/onesignal/sJbUl77xEbJHQiBq/images/docs/auto-prompt-delay-settings.png?fit=max&auto=format&n=sJbUl77xEbJHQiBq&q=85&s=992e5b449485e3cf96fd5fef5588f8fb" width="564" height="218" data-path="images/docs/auto-prompt-delay-settings.png" />
    </Frame>

    * Clique em Concluído, depois em Salvar

    <Info>
      Se você deseja acionar o prompt programaticamente, mantenha o Prompt Automático desativado e use os [métodos de prompt do SDK Web](./web-sdk-reference).
    </Info>
  </Accordion>

  <Accordion title="Configuração de Código Personalizado: Prompt Automático">
    Dentro do objeto `promptOptions` do seu código `init` do OneSignal, use as opções `autoPrompt` e `delay`. Também existem métodos para acionar os prompts slidedown ou nativos desejados diretamente. Veja [Referência do SDK Web](./web-sdk-reference) para mais detalhes.
  </Accordion>

  <Accordion title="Acionamento Manual (Em vez de Prompt Automático)">
    Se você quiser mais controle sobre quando os prompts são mostrados—por exemplo, apenas em páginas específicas ou após ações específicas:

    1. Desative o Prompt Automático
    2. Use os métodos de Slidedown ou Prompt Nativo do SDK para mostrar o prompt via código
  </Accordion>
</AccordionGroup>

### Lógica de recuo do prompt slidedown

Uma vez que um prompt Slidedown (Push, Categoria ou Email/Telefone) é mostrado e dispensado (via Permitir, Cancelar ou fechar o diálogo), ele recuará e reaparecerá em um cronograma definido:

|              Resultado da Interação             | Próximo Tempo do Prompt |
| :---------------------------------------------: | :---------------------: |
|                Primeira Dispensa                |     Aguardar 3 dias     |
|                 Segunda Dispensa                |     Aguardar 7 dias     |
| Terceira e dispensas posteriores (não inscrito) |     Aguardar 30 dias    |

Por exemplo, se o usuário clicar em "Permitir" no Slidedown mas depois clicar em "X" no prompt nativo do navegador (sem se inscrever), o Slidedown seguirá o ciclo de recuo acima.

<Warning>
  Esta lógica se aplica aos prompts Slidedown de Push, Categoria e Email/Telefone. Você pode contornar a lógica de recuo usando nossos [métodos de prompt Slidedown do SDK Web](./web-sdk-reference#slidedown-prompts).

  Para lógica de recuo do prompt nativo, veja [Comportamento do prompt nativo do navegador](#browser-native-prompt-behavior). Você não pode contornar a lógica de recuo para o prompt nativo porque isso é controlado pelo navegador.
</Warning>

Se o usuário limpar cookies ou dados do navegador, o ciclo de recuo é reiniciado e o prompt pode aparecer novamente como se fosse a primeira vez.

***

## Melhores práticas para solicitar permissão de push na web

Fazer com que os usuários concedam permissão de push na web requer tempo, confiança e design amigável ao usuário. Siga estas melhores práticas para maximizar as taxas de adesão enquanto mantém uma experiência positiva no site.

### Seja estratégico sobre quando perguntar

O tempo é mais importante do que a frequência. Exiba prompts de permissão quando os usuários já estiverem engajados ou mostrarem intenção. Por exemplo:

* Depois que eles adicionarem um item ao carrinho ou interagirem com uma postagem ou comentário
* Quando atualizarem seu perfil ou fizerem login em uma conta
* Após a conclusão de uma ação que mostre comprometimento com sua marca

Solicitar aos usuários nesses momentos aumenta as taxas de aceitação porque eles estão mais investidos em seu conteúdo e valor.

Se seu site tiver um perfil ou centro de preferências, inclua controles de adesão de push (e outros canais) lá. Isso aumenta a transparência e dá aos usuários mais controle sobre como eles recebem atualizações. Veja nosso guia de [Centro de Preferências](./preference-center) para mais detalhes.

### Use o prompt de sino de assinatura

O [prompt de sino](#subscription-bell-prompt) é uma maneira persistente e não intrusiva para os usuários se inscreverem sempre que estiverem prontos. Este ícone de sino flutuante é ideal para engajamento de longo prazo porque:

* Mantém a opção de assinatura visível sem interromper a navegação.
* Permite que os usuários escolham quando se inscrever.
* Constrói confiança ao não forçar uma solicitação de permissão imediata.

<Note> O prompt de sino é especialmente eficaz para visitantes recorrentes e usuários que inicialmente dispensaram uma solicitação de permissão.</Note>

### Deixe os usuários personalizarem sua assinatura com categorias

[Prompts de categoria](#categories) permitem que os usuários escolham quais tópicos ou tipos de mensagem desejam—como "Promoções", "Atualizações de Produto" ou "Postagens de Blog". Esta abordagem:

* Faz com que o prompt pareça menos intrusivo e mais relevante
* Aumenta o engajamento e as taxas de cliques nas mensagens
* Reduz cancelamentos de assinatura posteriores ao definir expectativas antecipadamente

<Note> Adesões personalizadas podem aumentar a retenção de longo prazo porque os usuários sentem que têm controle sobre a experiência.</Note>

### Teste e otimize ao longo do tempo

Não confie em uma única estratégia. Teste diferentes tipos de prompt, mensagens e tempo para ver o que ressoa com seu público.

Tente esta abordagem:

* Comece com o prompt nativo do navegador por alguns meses para avaliar sua taxa de adesão de linha de base.
* Após coletar dados, experimente com o Prompt Slide ou fluxos de prompt personalizados para melhorar a conversão em navegadores e segmentos de público.
* Use os [eventos `permissionPromptDisplay` e `permissionChange`](./web-sdk-reference#addeventlistener-notifications) e [eventos `slidedown`](./web-sdk-reference#addeventlistener-slidedown) do nosso SDK para rastrear o desempenho.

<Info> O comportamento de adesão pode variar por temporada, tipo de dispositivo e região—então teste regularmente para encontrar o equilíbrio certo entre engajamento e conforto do usuário.</Info>

***

## FAQ e solução de problemas

### Problemas de exibição de prompt

O Prompt de Permissão nativo de um navegador pode não ser mostrado se alguma destas condições for verdadeira:

**1. O navegador impediu a exibição do prompt.**

Navegue até as configurações do navegador e verifique as configurações de permissão de "Notificações". Exemplo do Chrome: `chrome://settings/content/notifications`

<Frame caption="Configurações de notificação do Chrome">
  <img src="https://mintcdn.com/onesignal/GxkD7lQqPiL4KVpn/images/push/chrome-notifications-settings.png?fit=max&auto=format&n=GxkD7lQqPiL4KVpn&q=85&s=8edb5d3cdbe4b785086053fdfc82bd1c" width="2268" height="2012" data-path="images/push/chrome-notifications-settings.png" />
</Frame>

Neste exemplo:

* O usuário selecionou "Não permitir que sites enviem notificações", o que bloqueará a exibição do prompt de permissão nativo. Isso deve dizer "Sites podem solicitar para enviar notificações" para permitir que o prompt de permissão nativo seja mostrado.
* O usuário adicionou `https://seusite.com` à lista "Não permitido enviar notificações", o que bloqueará a exibição do prompt de permissão nativo. Deve ser removido da lista para permitir que o prompt de permissão nativo seja mostrado.

**Documentação específica do navegador:**

* [Chrome](https://support.google.com/chrome/answer/3220216) - Esta página explica como gerenciar notificações no Chrome navegando para Configurações > Privacidade e segurança > Configurações do site > Notificações, onde você pode controlar o comportamento padrão e gerenciar permissões para sites individuais.
* [Firefox](https://support.mozilla.org/en-US/kb/push-notifications-firefox) - Este guia cobre notificações push na web para Firefox, explicando como gerenciar permissões de notificação através de Configurações > Privacidade e Segurança > Notificações, e como controlar permissões específicas de site através do ícone de informações do site na barra de endereços.
* [Safari](https://support.apple.com/guide/safari/customize-website-notifications-sfri40734/mac) - Este guia da Apple explica como personalizar notificações do Safari no Mac através de Safari > Preferências > Sites > Notificações, onde você pode gerenciar quais sites podem enviar notificações e controlar o comportamento das notificações através das Preferências do Sistema.
* [Edge](https://support.microsoft.com/en-us/microsoft-edge/manage-website-notifications-in-microsoft-edge-0c555609-5bf2-479d-a59d-fb30a0b80b2b) - Este artigo detalha como gerenciar notificações no Edge navegando para Configurações > Privacidade, pesquisa e serviços > Permissões de site > Notificações, ou clicando no ícone de informações do site na barra de endereços.

**2. O usuário já permitiu notificações ou já está inscrito.**

Nas configurações do navegador, verifique se a URL do seu site está listada na lista "Permitido enviar notificações".

**3. Você está no modo anônimo, modo de navegador privado ou modo de navegador convidado.**

O Prompt de Permissão nativo não será mostrado enquanto estiver no Modo Anônimo, modo de Navegador Privado ou modo de Navegador Convidado. Os usuários não podem se inscrever para notificações nesses modos.

**4. Você está usando um navegador e dispositivo que não suportam notificações push na web.**

Certifique-se de estar [usando um navegador e dispositivo que suportam push na web](./web-push-setup-faq#browser-support-by-operating-system).

**5. Requisitos do iOS/iPadOS não atendidos.**

Para iOS, existem alguns requisitos adicionais para solicitar aos usuários sua assinatura. Mais informações podem ser vistas no guia [Push na Web Móvel para iOS/iPadOS](./web-push-for-ios).

<Warning>
  Se você ainda tiver problemas, consulte nosso [Guia de Solução de Problemas de Push na Web](./troubleshooting-web-push).
</Warning>

## FAQ

<AccordionGroup>
  <Accordion title="Como mostrar os prompts enquanto estiver em um aplicativo de mídia social como Facebook, Instagram ou TikTok?">
    Se você tentar visualizar seu site através de um Aplicativo de Mídia Social (Instagram, Facebook, outros), você pode não ver o prompt da web se ele usar um webview. Webviews não suportam notificações push na web. O aplicativo deve abrir seu site em um navegador que suporte notificações push na web.
  </Accordion>

  <Accordion title="Por que o prompt slide continua aparecendo?">
    Existem tipicamente 2 razões pelas quais o prompt slide continua aparecendo:

    1. Você está no modo anônimo, modo de navegador privado ou modo de navegador convidado.
    2. Você está acionando programaticamente o prompt sem usar a opção de prompt automático. Veja a [Referência do SDK Web](./web-sdk-reference) e verifique quais métodos de prompt você está usando.
  </Accordion>

  <Accordion title="Após dispensar um prompt de push na web, quando o prompt é mostrado novamente?">
    Para Prompts do OneSignal, veja [Lógica de recuo do prompt slidedown](#slidedown-prompt-back-off-logic).

    Para os prompts de permissão nativos, veja [Comportamento do prompt nativo do navegador](#browser-native-prompt-behavior).
  </Accordion>

  <Accordion title="Por que vejo o Prompt Slide quando quero o prompt nativo do navegador?">
    Veja a seção [Comportamento do prompt nativo do navegador](#browser-native-prompt-behavior) acima para mais detalhes.
  </Accordion>
</AccordionGroup>

### Personalizações

<AccordionGroup>
  <Accordion title="Como traduzir/localizar o prompt?">
    Atualmente você precisará selecionar a [Configuração de Código Personalizado](./web-push-custom-code-setup). Em seguida, altere programaticamente o idioma dos prompts detectando o idioma do navegador do usuário e inicialize o SDK do OneSignal com texto(s) diferente(s).

    O Prompt de Permissão nativo será automaticamente traduzido para o idioma definido no navegador.
  </Accordion>

  <Accordion title="Posso fazer Teste A/B de Prompts?">
    Usando a [Configuração de Código Personalizado](./web-push-custom-code-setup) você pode inicializar o OneSignal com diferentes opções de prompt. Você precisaria configurar sua própria maneira de acionar os testes A/B/C/D etc que inicializam o OneSignal.

    Como bônus, você pode usar o método [Mudança de Assinatura](./web-sdk-reference#addeventlistener-push-subscription) para detectar quando o usuário se inscreveu e adicionar [Tags de Dados](./add-user-data-tags) com base em qual teste ganhou a assinatura.
  </Accordion>

  <Accordion title="Posso segmentar assinaturas com base na página em que se inscreveram?">
    Sim! Por favor, veja nosso guia [Segmentação Automática por Página de Assinatura](./auto-segment-users-by-page-visit).
  </Accordion>

  <Accordion title="Posso alterar o ícone do sino?">
    Você não pode alterar a imagem do sino, mas pode alterar as cores, texto e colocá-lo no canto inferior esquerdo ou inferior direito da página.
  </Accordion>

  <Accordion title="Posso alterar as categorias com base na página?">
    Sim! Isso exigirá o uso da [Configuração de Código Personalizado](./web-push-custom-code-setup) e adicionar as categorias através de código com base nas configurações acima.
  </Accordion>

  <Accordion title="Como rastrear Eventos do Prompt Slide?">
    O SDK Web do OneSignal tem os [Métodos de Evento do Prompt Slide](./web-sdk-reference#addeventlistener-slidedown) para detectar quando ele é mostrado na tela, quando é fechado e a ação "Permitir" ou "Cancelar".
  </Accordion>

  <Accordion title="Como posso mostrar o prompt apenas em certas páginas?">
    Você deve [desativar a opção **Prompt Automático**](#auto-prompt-%26-display-settings), depois adicione o código do [prompt Slidedown](./web-sdk-reference#slidedown-prompts) às páginas específicas nas quais você deseja que os prompts sejam mostrados.

    Se você está usando o prompt de Sino, ele não pode ser desativado página por página no momento.
  </Accordion>

  <Accordion title="Por que vejo o Prompt Slide no mobile quando quero o Prompt de Permissão nativo?">
    Em 5 de dezembro de 2017, o Google mudou a aparência do Prompt de Permissão nativo no Chrome para Android. É um pop-up muito hostil ao usuário que toma conta da tela inteira do seu site. Nós deliberadamente adicionamos o prompt duplo no Android para evitar que seus usuários tenham uma má experiência no seu site.

    Se você não quiser mostrar o Prompt Slide, você deve desativar a opção de Prompt Automático no Editor de Prompts (não se esqueça de pressionar o botão **Salvar**), então use o [método `requestPermission()` do SDK Web](./web-sdk-reference#requestpermission).
  </Accordion>
</AccordionGroup>

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Referência do Web SDK" icon="code" href="./web-sdk-reference">
    Referência completa da API para métodos de prompt, eventos e opções de inicialização.
  </Card>

  <Card title="Push web para iOS" icon="apple" href="./web-push-for-ios">
    Etapas de configuração adicionais necessárias para suporte a push web no iOS e iPadOS.
  </Card>

  <Card title="Solução de problemas de push web" icon="wrench" href="./troubleshooting-web-push">
    Diagnostique e resolva problemas comuns de notificações web push.
  </Card>

  <Card title="Central de preferências" icon="sliders" href="./preference-center">
    Permita que os usuários gerenciem suas preferências de notificação e opt-ins de canais.
  </Card>
</Columns>
