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

# URLs, links e deep links

> Configure URLs de inicialização, deep links, URLs dinâmicas, rastreamento UTM e rastreamento de cliques em mensagens push, email, no aplicativo, SMS e RCS.

## Como os links funcionam

Cada mensagem do OneSignal — push, email, no aplicativo, SMS ou RCS — pode incluir uma URL que leva o User a um destino ao ser clicado. Esse destino pode ser uma página web que abre no navegador ou um [deep link](#deep-links) que abre diretamente no seu aplicativo.

A forma de definir a URL depende do canal:

* **Push**: Use o campo **Launch URL** no painel ou o parâmetro `url` na API.
* **Email**: Adicione links usando o editor de email ou HTML. O OneSignal rastreia cliques automaticamente.
* **No aplicativo**: Configure [Click Actions](./iam-click-actions) em botões, imagens ou planos de fundo.
* **SMS/RCS**: Adicione links inline. Use **Insert Trackable Link** no painel para encurtamento e rastreamento automáticos. Consulte [links rastreáveis de SMS/RCS](#sms%2Frcs-trackable-links).

### Deep links

Para abrir conteúdo dentro do seu aplicativo em vez de um navegador, use um deep link. O suporte a deep links varia por canal:

* **Push e no aplicativo**: Suportam esquemas de URL personalizados como `your-app://product/123` e links universais `https://` / App Links.
* **Email e SMS**: Apenas links universais `https://` / App Links são suportados. Esquemas de URL personalizados não funcionam porque clientes de email e aplicativos de SMS não os tratam.

<Card title="Deep Linking" icon="link" href="./deep-linking">
  Guia completo de configuração para esquemas de URL personalizados, links universais e roteamento específico do aplicativo.
</Card>

### Push

#### Launch URL

A Launch URL abre quando o User clica em uma notificação push. Ela deve começar com `https://`.

<Info>
  Para usar URLs `http://` em dispositivos Apple, configure a propriedade [NSAppTransportSecurity](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity) no arquivo `Info.plist` do seu aplicativo.
</Info>

Se você enviar uma única mensagem para Users web e mobile, use campos de URL específicos por plataforma:

* `url` — direciona todas as plataformas
* `web_url` — direciona apenas Subscriptions de push web
* `app_url` — direciona apenas Subscriptions mobile

<Frame caption="Campo Launch URL no painel do OneSignal">
  <img src="https://mintcdn.com/onesignal/KudGm9GSZy-rIRO3/images/dashboard/push-launch-url.png?fit=max&auto=format&n=KudGm9GSZy-rIRO3&q=85&s=5b5687b99e1bc2ab8c3afd9e1780c1a5" alt="Painel do OneSignal exibindo o campo de entrada de Launch URL para notificações push" width="1066" height="440" data-path="images/dashboard/push-launch-url.png" />
</Frame>

<Tip>
  Para dispensar uma notificação push web sem abrir nenhuma página, adicione `?_osp=do_not_open` à launch URL, por exemplo, `https://yoursite.com/page?_osp=do_not_open`. Isso funciona apenas para push web.
</Tip>

#### Additional data

Em vez de uma Launch URL, você pode enviar pares de chave-valor personalizados usando o campo **Additional Data** (`data` na API). Seu aplicativo lê esses dados por meio do [Notification Click Listener do SDK](./mobile-sdk-reference#push-notification-events) via propriedade `additionalData` — útil quando você precisa de mais flexibilidade do que uma única URL.

<Frame caption="Envie uma URL pelo campo Additional Data para que seu aplicativo processe">
  <img src="https://mintcdn.com/onesignal/KudGm9GSZy-rIRO3/images/dashboard/push-additional-data.png?fit=max&auto=format&n=KudGm9GSZy-rIRO3&q=85&s=9c00048fd23586de1e3e70a82fcd1db7" alt="Painel do OneSignal exibindo o campo Additional Data com um par de chave-valor personalizado" width="1034" height="378" data-path="images/dashboard/push-additional-data.png" />
</Frame>

### Email link tracking

O OneSignal rastreia automaticamente cliques em links dentro de emails quando **Track link clicks** está habilitado para o email ou template (ativado por padrão). O OneSignal rastreia cliques totais e únicos por email e por link individual (até 30 links por email). Veja essas estatísticas nos [Relatórios de Mensagens de Email](./email-message-reports).

<Note>
  Para links de cancelamento de assinatura, consulte [Unsubscribe Links & Email Subscriptions](./unsubscribe-links-email-subscriptions).
</Note>

<Frame caption="Tabela de Atividade de Cliques mostrando estatísticas de rastreamento por link">
  <img src="https://mintcdn.com/onesignal/3PUtCumasMeFG2p0/images/docs/link_tracking.png?fit=max&auto=format&n=3PUtCumasMeFG2p0&q=85&s=318dab483003dac8e1203ab75b5c2756" alt="Relatório de mensagem de email do OneSignal exibindo atividade de cliques com contagens de cliques totais e únicos por link" width="957" height="312" data-path="images/docs/link_tracking.png" />
</Frame>

<Accordion title="Como o rastreamento de cliques de email reescreve URLs">
  O rastreamento funciona reescrevendo URLs para capturar o evento de clique e, em seguida, redirecionando o User para o destino original. Isso acontece quase instantaneamente, mas pode causar comportamento inesperado com [deep links](./deep-linking). Por exemplo:

  `https://some-domain.com/the-page`

  torna-se algo como:

  `https://some-domain/c/eJxU0D2uGzEMBODTrDoZJPW3...`

  O User é imediatamente redirecionado para a URL pretendida.
</Accordion>

Se você construir links com sintaxe Liquid, o OneSignal pode não detectá-los automaticamente. Marque explicitamente um link como rastreável:

```liquid theme={null}
{{ 'https://some-domain.com/the-page' | track_link }}
```

Para desabilitar o rastreamento para um email inteiro, desmarque **Track link clicks** no editor de email do painel ou defina `disable_email_click_tracking: true` na API.

<Frame caption="Caixa de seleção Track link clicks desmarcada para desabilitar o rastreamento">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/onesignal/images/docs/8d3292a5cb0b24a4b5bc8f9ae1074f513c3fed310045a6b6c534b94e344a401b-Screenshot_2025-02-14_at_11.50.38_AM.png" alt="Configurações de email do painel do OneSignal com Track link clicks desmarcado" />
</Frame>

Para desabilitar o rastreamento para um link específico enquanto mantém o rastreamento habilitado para os demais, adicione o atributo `disable-tracking=true` à sua tag âncora:

```html theme={null}
<a href="https://some-domain.com/the-page" disable-tracking=true>Ver a página</a>
```

<Warning>
  Desabilitar o rastreamento para um email inteiro significa que nenhum dado de clique é coletado — o CTR exibe "N/A" nos [Relatórios de Mensagens de Email](./email-message-reports).
</Warning>

### SMS/RCS trackable links

O OneSignal fornece links encurtados rastreáveis para mensagens SMS/RCS usando o domínio `1sgnl.co`. Basta envolver sua URL em `{{ "https://your-url.com" | track_link }}` e o link será substituído por um link rastreável quando a mensagem for enviada. Para uso via API, consulte a [referência da API de criação de mensagem SMS/RCS](/reference/sms).

Apenas 1 link rastreável é permitido por mensagem SMS/RCS.

Ao usar o painel, você também pode clicar no botão **Insert Trackable Link** abaixo da caixa de entrada de mensagem e inserir sua URL:

<Frame caption="Modal para inserir um link rastreável de SMS">
  <img src="https://mintcdn.com/onesignal/bUViEhbP9-TaIZwH/images/docs/trackable_sms_1.png?fit=max&auto=format&n=bUViEhbP9-TaIZwH&q=85&s=c1cd72dbf1cd7e3be05460bd4958ecff" alt="Modal do painel do OneSignal para inserir um link encurtado rastreável em uma mensagem SMS" width="2570" height="1232" data-path="images/docs/trackable_sms_1.png" />
</Frame>

Clique em **Insert trackable link** para adicionar o link curto à sua mensagem:

```liquid theme={null}
Your order is on its way!
Track it here: {{ "https://your-url.com" | track_link }}
```

Quando a mensagem for enviada, as chaves duplas e tudo dentro delas serão substituídas por um link rastreável `1sgnl.co/XXXX`:

<Frame caption="Link rastreável como aparece em um dispositivo">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/trackable_sms_3.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=627e22caedd413d193a403aef6070b68" alt="Notificação SMS em um dispositivo mobile exibindo um link encurtado rastreável" width="1242" height="1044" data-path="images/docs/trackable_sms_3.png" />
</Frame>

***

## URLs dinâmicas

Você pode criar URLs personalizadas e específicas do usuário com [sintaxe Liquid](./using-liquid-syntax). Por exemplo, inclua o ID de um User na URL para que cada pessoa acesse sua própria página de perfil, ou insira um ID de produto de um evento recente para vincular diretamente a um item relevante.

URLs dinâmicas podem extrair dados de:

* Propriedades do User (por exemplo, `external_id`, `email`)
* Tags armazenadas no OneSignal
* `custom_data` enviado via API
* Custom Events (em Journeys)

<Tabs>
  <Tab title="User properties">
    Injete valores como `external_id` ou `email` diretamente em URLs.

    ```text theme={null}
    https://yourdomain.com/profile/user={{subscription.external_id}}
    ```

    Se o `external_id` do User for `12345`, a URL final será:

    ```text theme={null}
    https://yourdomain.com/profile/user=12345
    ```

    Da mesma forma:

    ```text theme={null}
    https://yourdomain.com/profile/email={{subscription.email}}
    ```

    Se o email do User for `john@example.com`, a URL final será:

    ```text theme={null}
    https://yourdomain.com/profile/email=john@example.com
    ```
  </Tab>

  <Tab title="Tags">
    Referencie tags de usuários armazenadas no OneSignal.

    ```text theme={null}
    https://yourdomain.com/topic/{{tag_key}}
    ```

    Se o User tiver uma tag `tag_key` com valor `technology`, a URL final será:

    ```text theme={null}
    https://yourdomain.com/topic/technology
    ```

    Se `tag_key` não estiver definida, a URL se tornará:

    ```text theme={null}
    https://yourdomain.com/topic/
    ```

    Use o filtro `default` para definir um valor padrão:

    ```text theme={null}
    https://yourdomain.com/topic/{{tag_key | default: 'unknown'}}
    ```
  </Tab>

  <Tab title="custom_data">
    Use a API de criação de mensagem com Templates. Defina a URL no template com sintaxe Liquid que referencia o objeto `custom_data`.

    URL do template:

    ```text theme={null}
    https://yourdomain.com/invoice={{message.custom_data.invoice_number}}
    ```

    Requisição da API com `custom_data`:

    ```json theme={null}
    {
        "template_id": "YOUR_TEMPLATE_ID",
        "custom_data": {
            "invoice_number": "12345"
        }
    }
    ```

    URL final:

    ```text theme={null}
    https://yourdomain.com/invoice=12345
    ```
  </Tab>

  <Tab title="Custom Events">
    Personalize URLs usando Custom Events capturados em Journeys. Referencie propriedades do evento diretamente ou atribua o evento a uma variável para uma sintaxe mais limpa.

    **Referencie propriedades do evento diretamente:**

    ```text theme={null}
    https://yourdomain.com/order/{{ journey.event.purchase.properties.order_id }}
    ```

    Se o evento `purchase` mais recente incluiu `"order_id": "98765"`, a URL final será:

    ```text theme={null}
    https://yourdomain.com/order/98765
    ```

    **Atribua o evento para melhor legibilidade:**

    ```liquid theme={null}
    {% assign event = journey.event.purchase %}
    https://yourdomain.com/order/{{ event.properties.order_id }}
    ```

    **Acesse o evento armazenado mais recente:**

    ```text theme={null}
    https://yourdomain.com/product/{{ journey.last_event.properties.product_id | default: 'unknown' }}
    ```

    **Nomes de eventos com espaços ou caracteres especiais (notação de hash):**

    ```text theme={null}
    https://yourdomain.com/status/{{ journey.event["order status"].properties.current_status }}
    ```

    <Note>
      Custom Events só podem ser referenciados em Templates usados dentro de Journeys. Use `journey.first_event`, `journey.last_event` ou `journey.event.<name>` para acessar dados de eventos em Liquid.
    </Note>
  </Tab>
</Tabs>

<Tip>
  Substitua dados apenas em partes da URL — mantenha o protocolo (`https://`) e o domínio como texto estático. Use o filtro `default` para definir um valor padrão se um valor não estiver presente.
</Tip>

***

## Parâmetros UTM

Parâmetros UTM rastreiam o desempenho de campanhas adicionando detalhes de `source`, `medium` e `campaign` às URLs. Adicione parâmetros UTM diretamente nas URLs de suas mensagens.

Para notificações push enviadas pelo painel, o OneSignal pode adicionar UTMs automaticamente.

<Accordion title="UTMs automáticos para notificações push" icon="circle-chevron-down">
  Navegue até **Settings > Push & In-app > UTM Settings** e habilite **Turn on automated UTM tagging**.

  Uma vez habilitado, o OneSignal adiciona estes valores (editáveis):

  * **Source** = `utm_source` — padrão `onesignal`
  * **Medium** = `utm_medium` — padrão `push`
  * **Campaign** = `utm_campaign` — padrão `{{ sendDate }}-{{ title }}`
    * `sendDate`: Data de envio
    * `title`: Primeiros 15 caracteres alfanuméricos, sublinhados ou hífens do título da mensagem

  Exemplo:

  ```text theme={null}
  https://test.com?utm_source=onesignal&utm_medium=push&utm_campaign=2020-06-03-sale-today
  ```

  <Warning>
    A marcação UTM automática só se aplica a notificações push enviadas pelo painel. Ela não funciona com:

    * Emails, SMS ou mensagens no aplicativo
    * Journeys, Templates ou mensagens automatizadas
    * Requisições da API
    * O botão "Send Test Message"
    * Campos de additional data

    Para esses casos, adicione parâmetros UTM manualmente nos seus templates ou payloads da API.
  </Warning>

  #### Tratamento de URL e substituições

  Se você adicionar parâmetros UTM manualmente a uma launch URL enquanto a marcação automática estiver habilitada, seus UTMs manuais substituirão os valores automáticos.
</Accordion>

***

## FAQ

### Como crio um link para a loja de aplicativos?

Use o link da loja como a launch URL:

* **Android**: Use o link do Google Play, por exemplo, `https://play.google.com/store/apps/details?id=com.example.app`. Consulte [Linking to Google Play](https://developer.android.com/distribute/marketing-tools/linking-to-google-play.html).
* **iOS**: Use o link da App Store, mas substitua `https://` por `itms-apps://` para abrir o aplicativo da App Store diretamente, por exemplo, `itms-apps://apps.apple.com/app/id123456789`.

### Posso criar um link para outro aplicativo?

Para mensagens push e no aplicativo, você pode usar um esquema de URL para fazer deep link em outro aplicativo. Por exemplo, para [fazer deep link no WhatsApp](https://faq.whatsapp.com/425247423114725): `whatsapp://wa.me/15551234567`.

Para email e SMS, use links `https://` — esquemas de URL personalizados não são suportados.

### Por que minha launch URL não está funcionando?

Causas comuns:

* **URL incorreta**: A URL deve começar com `https://`. Se você estiver usando `http://` em dispositivos Apple, é necessário configurar o [NSAppTransportSecurity](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity).
* **Esquemas personalizados em mobile**: Deep links como `your-app://path` podem não funcionar como launch URL em todas as plataformas. Use o campo **Additional Data** ou consulte [Deep Linking](./deep-linking) para roteamento confiável no aplicativo.
* **Padrão para push web**: Se nenhuma launch URL for definida, o push web abre sua página inicial. Defina uma launch URL explicitamente para controlar o destino.
* **Interferência do rastreamento de cliques**: No email, a reescrita de links para rastreamento de cliques pode quebrar deep links. Tente [desabilitar o rastreamento de cliques](#email-link-tracking) para esse link específico.

### Os parâmetros UTM funcionam com email e SMS?

Não. A marcação UTM automática se aplica apenas a notificações push enviadas pelo painel. Para email e SMS, adicione parâmetros UTM manualmente nas URLs dos seus templates ou payloads da API. Consulte [Parâmetros UTM](#utm-parameters) para a lista completa de limitações.

### Posso impedir que uma notificação push abra uma URL?

Em mobile, clicar em uma notificação push sempre abre o aplicativo.

Na web, adicione `?_osp=do_not_open` à launch URL para dispensar a notificação sem abrir nenhuma página. Consulte a [dica de Launch URL](#launch-url) para um exemplo.

***

<Columns cols={2}>
  <Card title="Deep Linking" icon="link" href="./deep-linking">
    Configure esquemas de URL personalizados e roteamento específico do aplicativo para mensagens push e no aplicativo.
  </Card>

  <Card title="Personalização" icon="wand-magic-sparkles" href="./message-personalization">
    Insira dados dinâmicos de usuários em mensagens usando sintaxe Liquid e tags.
  </Card>

  <Card title="Usando sintaxe Liquid" icon="code" href="./using-liquid-syntax">
    Guia de referência para filtros, tags e variáveis Liquid em templates do OneSignal.
  </Card>

  <Card title="Relatórios de mensagens de email" icon="chart-line" href="./email-message-reports">
    Veja métricas de entrega, abertura e taxa de cliques para campanhas de email.
  </Card>

  <Card title="Botões de ação" icon="hand-pointer" href="./action-buttons">
    Adicione botões de chamada para ação a notificações push com URLs personalizadas.
  </Card>
</Columns>
