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

# Direcionar versões desatualizadas do aplicativo para incentivar atualizações

> Use mensagens in-app para detectar versões desatualizadas do app e solicitar que os usuários atualizem, com segmentos específicos por plataforma para iOS e Android.

Use mensagens in-app para notificar usuários em versões mais antigas do aplicativo de que uma atualização está disponível e solicitar que a instalem. Este tutorial mostra como criar segmentos e mensagens específicos por plataforma para iOS e Android.

## Requisitos

* OneSignal SDK v5 ou posterior

## Configuração

**Cenário de exemplo**: A versão mais recente do nosso aplicativo é `1.0.1`. Queremos direcionar usuários na versão `1.0.0` e anteriores com uma mensagem in-app solicitando que eles atualizem.

### 1. Obter a versão mais recente do seu aplicativo

O OneSignal detecta `App Version` com base no seguinte:

**iOS**: A `Version` encontrada no Xcode **your main app Target > General > Identity**

<Frame caption="Versão do app iOS encontrada no Xcode">
  <img src="https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/mobile/ios-version.png?fit=max&auto=format&n=FXJz6yFfOqztaEND&q=85&s=4c6582a16d72787f02bce216ff5cd1c4" alt="Configurações do projeto Xcode mostrando o campo Version em Identity" width="2104" height="1294" data-path="images/mobile/ios-version.png" />
</Frame>

**Android**: O `versionCode` encontrado no arquivo `build.gradle` do seu aplicativo

<Frame caption="Versão do app Android encontrada no build.gradle do seu aplicativo">
  <img src="https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/mobile/android-version.png?fit=max&auto=format&n=FXJz6yFfOqztaEND&q=85&s=ded4166d51b66edd8727904db655eee7" alt="Arquivo build.gradle do Android mostrando o campo versionCode" width="2302" height="1390" data-path="images/mobile/android-version.png" />
</Frame>

<Note>
  Se você não tiver acesso ao Xcode e/ou Android Studio, peça esses valores ao seu desenvolvedor.
</Note>

<Warning>
  iOS e Android usam formatos de versão diferentes, e os links da loja diferem por plataforma. Crie segmentos e mensagens in-app separados para cada um.
</Warning>

### 2. Configurar os segmentos

Você precisará criar dois segmentos, um para iOS e um para Android.

**iOS**:

* Nome do segmento: `iOS App version less than 1.0.1`
* Filtros: `App Version` is `less than` `1.0.1` AND `Device Type` is `iOS`.

<Frame caption="Filtros de segmento iOS">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/ios-appversion-segment.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=4326713ed20081df29db2b30ce8a0033" alt="Segmento do OneSignal com filtros App Version menor que 1.0.1 e Device Type iOS" width="1300" height="620" data-path="images/segments/ios-appversion-segment.png" />
</Frame>

**Android**:

* Nome do segmento: `Android App version less than 10001`
* Filtros: `App Version` is `less than` `10001` AND `Device Type` is `Android`.

<Frame caption="Filtros de segmento Android">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/android-appversion-segment.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=7684e1d0ec956fe40fc1f46e2359f45b" alt="Segmento do OneSignal com filtros App Version menor que 10001 e Device Type Android" width="1302" height="628" data-path="images/segments/android-appversion-segment.png" />
</Frame>

### 3. Configurar as mensagens in-app

Navegue até **Messages > In-App > New Message > New In-App**.

Comece a partir do design pré-construído **New Feature Announcement** ou crie o seu próprio do zero.

<Frame caption="Template New Feature Announcement">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/new-in-app-message-select.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=672e45bec1d7b137040c0e4cfda951a9" alt="Seleção de template de mensagem in-app do OneSignal mostrando a opção New Feature Announcement" width="2310" height="1888" data-path="images/iam/new-in-app-message-select.png" />
</Frame>

Nomeie a mensagem com algo que reflita que é para usuários iOS.

#### Adicionar seu público

Selecione o segmento específico **iOS App version less than 1.0.1**.

#### Atualizar a mensagem

Atualize o conteúdo da mensagem conforme necessário. Para navegar o usuário até sua listagem na app store, adicione uma [ação de clique de URL](./iam-click-actions#url) a um botão ou outro elemento.

<Frame caption="Ação de clique de URL vinculada à listagem na app store">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/url-click-action.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=c9895a060ca2edb109e395a232b920b5" alt="Editor de mensagem in-app do OneSignal mostrando uma ação de clique de URL configurada em um botão" width="1732" height="1164" data-path="images/iam/url-click-action.png" />
</Frame>

Insira o link da loja como a URL:

* **iOS**: `https://apps.apple.com/app/idYOUR_APP_STORE_ID` — veja [Requesting App Store Reviews](https://developer.apple.com/documentation/storekit/requesting_app_store_reviews)
* **Android**: `https://play.google.com/store/apps/details?id=YOUR_PACKAGE_NAME` — veja [Linking to Google Play](https://developer.android.com/distribute/marketing-tools/linking-to-google-play.html)

### 4. Gatilhos

Recomendamos usar o gatilho **On app open** para garantir que a mensagem seja exibida quando o usuário abrir o aplicativo.

### 5. Agendamento e frequência

Se você agendou a atualização do aplicativo para algum momento no futuro, você pode agendar a mensagem para começar a ser exibida naquele momento.

Dependendo de quão agressivo você deseja ser com seus prompts de atualização, você pode definir a frequência "How often do you want to show this message?" para:

* **Every time trigger conditions are satisfied** - o que significa toda vez que eles abrem o aplicativo neste exemplo.
* **Multiple times** - defina o número total de vezes para mostrar a mensagem e qual atraso entre elas. Por exemplo, 100 vezes com um intervalo de 3 dias entre elas. Mostrará a mensagem a cada 3 dias por até 100 vezes.

### 6. Salvar como rascunho e duplicar para Android

Clique no botão **Save as Draft** para salvar a mensagem.

Na página **In-App Messages**, clique em **Options > Duplicate** ao lado da mensagem que você acabou de salvar.

Atualize o seguinte para seus usuários Android:

* O nome do IAM para refletir que é para usuários Android
* Defina o segmento como **Android App version less than 10001**
* Atualize a URL para o link da loja Android
* Adicione quaisquer alterações adicionais à mensagem para torná-la única para usuários Android

Clique em **Save as Draft** para salvar a mensagem.

***

## Testando

Antes de publicar suas mensagens, sugerimos testá-las com as seguintes etapas:

<Steps>
  <Step title="Encontre seu dispositivo de teste e defina como uma test user">
    * Encontre seu dispositivo de teste e defina-o como uma [test user](./test-users).
    * Certifique-se de que o dispositivo de teste está na versão inferior do seu aplicativo.
  </Step>

  <Step title="Atualize o segmento para incluir Test Users">
    * Abra a mensagem in-app que você deseja testar.
    * Clique no Segmento e adicione um filtro **And** para **Test Users**.
      * Isso garantirá que a mensagem seja exibida apenas para seus dispositivos de teste
    * Por exemplo, se o seu dispositivo de teste estiver no iOS, o segmento ficará assim:
          <Frame caption="Segmento iOS com filtro Test Users adicionado">
            <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/ios-appversion-testusers-segment.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=8ba7a6b64f91409ae8056408fd5dc941" alt="Segmento do OneSignal com filtros App Version, Device Type e Test Users" width="1292" height="653" data-path="images/segments/ios-appversion-testusers-segment.png" />
          </Frame>
    * Clique em **Update Segment** para salvar as alterações.
  </Step>

  <Step title="Publique a mensagem">
    * Clique em **Update Message** para atualizar a mensagem in-app.
    * Clique em **Options > Resume** ao lado da mensagem para ativá-la.
  </Step>

  <Step title="Verifique se a mensagem é exibida">
    * Feche o aplicativo no dispositivo de teste.
    * Aguarde 1 minuto.
    * Abra o aplicativo no seu dispositivo de teste.
    * Você deve ver a mensagem se:
      * O dispositivo é uma test user
      * O dispositivo está na versão inferior do seu aplicativo.
      * O segmento está definido como **Test Users**.
  </Step>
</Steps>

***

## Checklist para entrar em produção

Quando estiver pronto para entrar em produção:

* Atualize os Segmentos para remover o filtro `Test Users`.
* Verifique o Schedule para garantir que está definido para a data e hora corretas.
* Clique em **Update Message** para atualizar a mensagem in-app.

<Check>
  Você terminou! Quaisquer usuários que abrirem seu aplicativo em uma versão mais antiga serão notificados sobre a atualização do seu aplicativo.

  Retorne à mensagem in-app após algum tempo para verificar o progresso. Você também pode obter análises de mensagens in-app com [Event Streams](./event-streams) ou [Integrações](./integrations) de terceiros.
</Check>

***

## FAQ

### O OneSignal detecta a versão do aplicativo automaticamente?

Sim. O SDK do OneSignal reporta a versão do aplicativo ao OneSignal automaticamente. No iOS, é o campo `Version` no Xcode, e no Android é o `versionCode` no arquivo `build.gradle`.

### Por que preciso de mensagens separadas para iOS e Android?

iOS e Android usam formatos de versão diferentes (por exemplo, `1.0.1` vs `10001`), e os links da loja de cada plataforma são diferentes. Segmentos e mensagens separados garantem que o filtro de versão correto e o link da loja certos sejam usados para cada plataforma.

### Posso usar isso com Journeys em vez de gatilhos in-app?

Sim. Você pode criar uma Journey que direcione os mesmos segmentos baseados em versão e envie uma mensagem in-app como uma etapa. Isso oferece controle adicional sobre o tempo e as ações de acompanhamento.

***

<Info>
  Precisa de ajuda?

  Converse com nossa equipe de Suporte ou envie email para `support@onesignal.com`

  Por 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](/docs/pt-BR/capturing-a-debug-log) relevantes

  Estamos felizes em ajudar!
</Info>

<Columns cols={2}>
  <Card title="Ações de clique in-app" icon="hand-pointer" href="./iam-click-actions">
    Configure ações de clique de URL, solicitação de permissão, tag, resultado e personalizadas em elementos de mensagem in-app.
  </Card>

  <Card title="Segmentos" icon="users" href="./segmentation">
    Crie segmentos com base em propriedades do usuário, comportamento e atributos do dispositivo.
  </Card>
</Columns>
