> ## 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.

# Gatilhos de mensagens no aplicativo

> Opções para exibir mensagens no aplicativo para os usuários.

## Visão geral

Use gatilhos para exibir mensagens no aplicativo aos usuários dentro do público no momento de sua escolha. Ao contrário de push, e-mail e SMS que apenas enviam a mensagem em um momento específico, as mensagens no aplicativo exigem um gatilho para determinar quando mostrar a mensagem aos usuários enquanto estão no seu aplicativo.

<Note>
  Os gatilhos determinam quando exibir a mensagem. Para definir com que frequência a mensagem deve ser exibida, consulte [Agendamento e frequência](./in-app-messages-setup#schedule-%26-frequency).
</Note>

<Frame caption="Defina um gatilho ao criar uma mensagem no aplicativo no painel do OneSignal">
  <img src="https://mintcdn.com/onesignal/sfRFE3uPEhgSxmaa/images/iam/triggers.png?fit=max&auto=format&n=sfRFE3uPEhgSxmaa&q=85&s=dba1e928eb406fc5bd6f2008f4c30869" width="1138" height="382" data-path="images/iam/triggers.png" />
</Frame>

### Requisitos

* Revise a [Visão geral de mensagens no aplicativo](./in-app-messages-setup) para configuração adicional e requisitos.
* Alguns gatilhos (documentados abaixo) são programáticos e exigem que o código seja adicionado ao seu aplicativo antes que a mensagem possa ser exibida.
* **Os usuários devem estar dentro do público antes que uma nova sessão comece para que o gatilho exiba a mensagem.** Uma nova sessão começa quando o aplicativo está fora de foco por pelo menos 30 segundos. Consulte [Como as mensagens no aplicativo são exibidas](./in-app-messages-setup#how-in-app-messages-are-shown).

***

## Tipos de gatilhos

Existem quatro tipos de gatilhos. Cada um pode ser combinado com operadores **AND** e **OR** para exibir apenas sob condições muito específicas.

### Na abertura do aplicativo

**Nenhum código necessário.** Exibe a mensagem na próxima abertura do aplicativo. Os usuários dentro do público estarão qualificados para receber a mensagem quando abrirem o aplicativo.

* Para segmentos de público que exigem tags ou ações específicas que um usuário participa durante uma sessão, eles precisarão iniciar uma nova sessão para que a mensagem seja exibida na próxima abertura do aplicativo.
* Para segmentos de público que visam todos os usuários ou filtros de versão do aplicativo, a mensagem será exibida quando o usuário abrir o aplicativo. Mesmo se for um usuário totalmente novo.

### Gatilho no aplicativo

**Código necessário.** Exibe a mensagem quando o usuário realiza certas ações. Requer que uma `key` e um `value` sejam passados para o [método `addTrigger`](./mobile-sdk-reference#in-app-messages) dentro do seu aplicativo.

<Frame caption="Defina um gatilho programático no aplicativo.">
  <img src="https://mintcdn.com/onesignal/sfRFE3uPEhgSxmaa/images/iam/in-app-trigger.png?fit=max&auto=format&n=sfRFE3uPEhgSxmaa&q=85&s=0732451f4ff8c8bf2f43231432b99a4a" width="1334" height="652" data-path="images/iam/in-app-trigger.png" />
</Frame>

O exemplo exibirá a mensagem no aplicativo quando seu aplicativo chamar o método `addTrigger('trigger', '1')`. Lembre-se de que o usuário deve estar dentro do público antes que uma nova sessão comece para que o gatilho exiba a mensagem. Consulte os [Requisitos](#requirements) acima para mais detalhes.

#### Requisitos importantes do gatilho no aplicativo

* `keys` e `values` diferenciam espaços e maiúsculas de minúsculas. Verifique se há espaços acidentais ou diferenças de maiúsculas ao definir o gatilho.
* Você pode exigir que múltiplas `keys` e `values` estejam presentes para que a mensagem seja exibida.
  * Cada par chave-valor usando uma condição `AND` deve ser satisfeito para que o gatilho exiba a mensagem.
  * Pares chave-valor usando uma condição `OR` exibirão a mensagem se qualquer um dos pares chave-valor for satisfeito.
* Ao exigir múltiplos gatilhos, você pode usar o [método `removeTrigger`](./mobile-sdk-reference#in-app-messages#remove-trigger) para remover um gatilho, se necessário.
* As condições `maior que` e `menor que` funcionam para valores numéricos, mesmo que sejam definidos como strings no código.
  * Se você quiser exibir uma mensagem quando um usuário atingir o nível 5. Você definiria o público como todos os usuários, mas definiria seu gatilho como "level is 5". Cada vez que um usuário subir de nível, você chamaria `addTrigger("level", "x")` onde "x" é o nível que eles alcançaram. Isso continua a incrementar até que `addTrigger("level", "5");` seja chamado, então a mensagem no aplicativo será exibida ao usuário.

### Duração da sessão

**Nenhum código necessário.** Exibe a mensagem após um número específico de segundos dentro da sessão atual do aplicativo. O usuário deve estar dentro do público antes que uma nova sessão comece para que o gatilho exiba a mensagem. Consulte os [Requisitos](#requirements) acima para mais detalhes.

### Duração desde a última mensagem no aplicativo

**Nenhum código necessário.** Exibe a mensagem após um número específico de segundos desde a mensagem no aplicativo mais recente. O usuário deve estar dentro do público antes que uma nova sessão comece para que o gatilho exiba a mensagem. Consulte os [Requisitos](#requirements) acima para mais detalhes.

Isso é útil para incluir em mensagens menos urgentes ou de menor prioridade para que não sejam exibidas muito próximas de mensagens mais importantes.

***

## Quando esta mensagem deve ser dispensada?

Esta opção permite que você controle quanto tempo a mensagem deve permanecer na tela.

* **Mostrar até ser dispensada**: A mensagem será exibida até que haja uma ação física. Ou um botão de fechar é clicado ou a mensagem é deslizada para fora.
* **Dispensar após um determinado tempo**: Defina o número de segundos em que a mensagem será exibida antes de ser automaticamente removida da tela. Isso é útil se a mensagem for informativa e não exigir ação do usuário.

***

## Com que frequência você deseja mostrar esta mensagem?

Enquanto os gatilhos determinam quando exibir a mensagem, esta opção permite que você controle com que frequência a mensagem deve ser exibida. Consulte [Agendamento e frequência](./in-app-messages-setup#schedule-%26-frequency) para mais detalhes.

<Frame caption="Imagem mostrando a capacidade de agendar uma mensagem no aplicativo">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fb6d705-Screen_Shot_2022-09-28_at_3.44.24_PM.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=f52d005f9b59abb767c2968c24359fd2" width="1766" height="642" data-path="images/docs/fb6d705-Screen_Shot_2022-09-28_at_3.44.24_PM.png" />
</Frame>

### Defina quando e quantas vezes a mensagem é exibida

**Apenas uma vez** é o padrão. A mensagem no aplicativo será exibida apenas 1 vez para a assinatura.

**Toda vez que as condições do gatilho forem satisfeitas** exibirá esta mensagem cada vez que as condições do gatilho forem atendidas.

* Para gatilhos no aplicativo, isso pode ser várias vezes por sessão. Para outros gatilhos, é apenas uma vez por sessão.

**Múltiplas vezes** permite que você defina a quantidade específica de vezes que esta mensagem pode ser exibida e quanto tempo esperar entre cada exibição.

* Se você definir: "`2` vezes com um intervalo de `1` **hora** entre elas" - A mensagem terá permissão para ser acionada um total de `2` vezes. A primeira vez quando os gatilhos forem atendidos, depois a 2ª vez quando os gatilhos forem atendidos e `1` hora tiver passado.
* Se você definir "`12` vezes com um intervalo de `30` **dias** entre elas" - A mensagem será exibida aproximadamente uma vez por mês durante um ano.

***

## Perguntas frequentes

### Os gatilhos são tags?

Os gatilhos não são tags. Os gatilhos são pares chave-valor definidos dentro dos [métodos de gatilho do nosso SDK](./mobile-sdk-reference#in-app-messages). As [tags](./add-user-data-tags) são dados do usuário que você pode definir e usar para direcionar usuários em seu público.

Defina tags para segmentos usarem no público e use gatilhos para exibir a mensagem.

### Posso usar múltiplos gatilhos?

Sim, você pode usar múltiplos gatilhos. Consulte [Requisitos importantes do gatilho no aplicativo](#important-in-app-trigger-requirements) para mais detalhes.

***
