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

# Criar uma página de cancelamento de assinatura de email personalizada

> Aprenda como substituir o link de cancelamento de assinatura padrão do OneSignal por uma página de preferências de email com marca, multilíngue e personalizada, mantendo a conformidade e o rastreamento.

## Visão geral

O OneSignal fornece uma [experiência de cancelamento de assinatura padrão em conformidade com email](./unsubscribe-links-email-subscriptions) que injeta um link em seus templates de email para que os usuários possam cancelar a assinatura com facilidade e seus [status de assinatura](./subscriptions) sejam atualizados em tempo real. Se você deseja controle total sobre branding, cópia e campos (como opt-outs de categoria), você pode substituir o link padrão por sua própria página personalizada e usar a API do OneSignal para cancelar a assinatura ou atualizar as preferências do usuário.

Este guia explica como adicionar sua própria página de cancelamento de assinatura personalizada aos emails (removendo o link padrão do OneSignal) e quais de nossas APIs usar para cancelar a assinatura de email do usuário.

Se você deseja adicionar mais funcionalidade à sua página de cancelamento de assinatura personalizada (como opt out de categorias específicas de email em vez de todas), isso é detalhado em nosso tutorial [Preference Center](./preference-center).

***

## Remover o link de cancelamento de assinatura padrão do OneSignal

O OneSignal insere automaticamente um link especial no formato `[unsubscribe_url]` em seus templates de email. Esta URL cancela a assinatura do usuário de todos os emails no OneSignal. Veja [Links de cancelamento de assinatura de email](./unsubscribe-links-email-subscriptions) para detalhes.

Para usar sua própria página, **localize e remova o link padrão** no seu template.

<Tabs>
  <Tab title="Editor de arrastar e soltar">
    No editor de arrastar e soltar, o link padrão pode aparecer aninhado assim:

    <Frame caption="Link de cancelamento de assinatura do editor de arrastar e soltar">
      <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/82cc033-Default_Unsubscribe.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=3c507499bbc29854761df1136f8c0ff4" alt="Drag-and-Drop editor unsubscribe link" width="1598" height="1203" data-path="images/docs/82cc033-Default_Unsubscribe.png" />
    </Frame>
  </Tab>

  <Tab title="Editor HTML">
    ```html theme={null}
    <a href="[unsubscribe_url]">Unsubscribe</a>
    ```
  </Tab>
</Tabs>

***

## Adicionar seu link de cancelamento de assinatura personalizado

Agora que você removeu nosso link especial, você pode substituí-lo por sua própria URL.

Muitas vezes, esses links requerem alguns dados adicionais a serem passados para sua página. Use [variáveis Liquid](./message-personalization) para passar dados do OneSignal para sua página.

Parâmetros comuns:

| Parâmetro                        | Descrição                                  |
| -------------------------------- | ------------------------------------------ |
| `subscription.email`             | Endereço de email do assinante             |
| `subscription.external_id`       | ID externo do usuário                      |
| `app.id`                         | ID do aplicativo OneSignal                 |
| `message.id`                     | ID da notificação de email                 |
| `subscription.language`          | Idioma preferido (para localização)        |
| `subscription.unsubscribe_token` | Token de segurança para verificação da API |

**URL de exemplo:**

```liquid theme={null}
https://examplesite.com/unsubscribe?app_id={{app.id}}&notification_id={{message.id}}&email={{subscription.email}}&language={{subscription.language}}&token={{subscription.unsubscribe_token}}
```

```html HTML theme={null}
  <div style="text-align: center;">
    <a
      href="https://examplesite.com/unsubscribe?app_id={{app.id}}&notification_id={{message.id}}&email={{subscription.email}}&language={{subscription.language}}&token={{subscription.unsubscribe_token}}"
      data-disable-tracking="true"
      style="display: inline; text-decoration: none;"
    >
      Unsubscribe
    </a>
    <p style="display: inline;"> from our emails</p>
  </div>
```

<Frame caption="Adicionar link de cancelamento de assinatura personalizado">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/0c94ab0-HTML_unsubscribe_custom.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=e931f0e8649ea80d29194e0db2722942" alt="Add custom unsubscribe link" width="1606" height="1175" data-path="images/docs/0c94ab0-HTML_unsubscribe_custom.png" />
</Frame>

### Desabilitar rastreamento de cliques

Cliques de cancelamento de assinatura geralmente não são usados para métricas de engajamento. Se você deseja desabilitar o rastreamento de links, você pode adicionar o atributo `data-disable-tracking="true"` ao seu link assim:

```html HTML theme={null}
  <a
    href="https://www.examplesite.com/unsubscribe?app_id={{app.id}}&notification_id={{message.id}}&email={{subscription.email}}&language={{subscription.language}}&token={{subscription.unsubscribe_token}}"
    data-disable-tracking="true"
  >
    Unsubscribe
  </a>
```

**Atributos específicos de provedor:**

| Provedor  | Atributo                       |
| --------- | ------------------------------ |
| OneSignal | `data-disable-tracking="true"` |
| Mailgun   | `disable-tracking=true`        |
| SendGrid  | `clicktracking=off`            |
| Mandrill  | `mc:disable-tracking`          |

***

## Hospedar sua página de cancelamento de assinatura personalizada

Implante uma página web que:

* Lê parâmetros de consulta do link de cancelamento de assinatura.
* Exibe opções de opt-out ou preferências amigáveis ao usuário.
* Envia a solicitação de cancelamento de assinatura ou atualização para o OneSignal via API.

<Info> Fornecemos um [projeto de exemplo no GitHub](https://github.com/OneSignalDevelopers/custom-email-unsubscribe-page-sample) funcional que você pode fazer fork e implantar. </Info>

<Frame caption="UI de exemplo da página de cancelamento de assinatura">
  <img src="https://mintcdn.com/onesignal/jBdBk5XvQR5eKOks/images/docs/75a39d1-Github_page.png?fit=max&auto=format&n=jBdBk5XvQR5eKOks&q=85&s=4d1b004b41a3ad4bd3e7c4f76da7e9fc" alt="Sample unsubscribe page" width="1448" height="1438" data-path="images/docs/75a39d1-Github_page.png" />
</Frame>

***

## Chamar a API do OneSignal

Dependendo do seu caso de uso, você pode usar as seguintes APIs para cancelar a assinatura ou atualizar as preferências do usuário:

* [Update Subscription by Token](/reference/update-subscription-by-token)
* [Unsubscribe Email with Token](/reference/unsubscribe-with-token)
* [Update User](/reference/update-user)

<Tabs>
  <Tab title="Update Subscription by Token">
    Esta API é mais comumente usada quando você tem o endereço de email do usuário e só quer inscrevê-lo ou cancelar sua assinatura de todos os emails.

    **Parâmetros de consulta obrigatórios:**

    * `app_id`
    * `token`

    **Autenticação necessária**

    * Chame esta API do seu servidor.
  </Tab>

  <Tab title="Unsubscribe Email with Token">
    Use esta API se você deseja rastrear qual email específico causou o cancelamento de assinatura. Isso usa o ID da mensagem de email para rastrear o cancelamento de assinatura. Veja a API [Unsubscribe Email with Token](/reference/unsubscribe-with-token) para mais detalhes.

    **Parâmetros de consulta obrigatórios:**

    * `app_id`
    * `notification_id`
    * `token`

    **Parâmetros opcionais:**

    * `email`
    * `language`

    **Exemplo JavaScript:**

    ```javascript JavaScript theme={null}
    const unsubscribeURL = (href) => {
      const unsubscribeURL = new URL(href)
      const appID = unsubscribeURL.searchParams.get("app_id")
      const notificationID = unsubscribeURL.searchParams.get("notification_id")
      const unsubscribeToken = unsubscribeURL.searchParams.get("token")
      const language = unsubscribeURL.searchParams.get("language")
      const email = unsubscribeURL.searchParams.get("email")
      return {
        unsubscribeURL: `https://api.onesignal.com/apps/${appID}/notifications/${notificationID}/unsubscribe?token=${unsubscribeToken}`,
        meta: { language, email },
      }
    }
    ```
  </Tab>

  <Tab title="Update User">
    Atualize as preferências do usuário usando a API [Update User](/reference/update-user).

    **Parâmetros de consulta obrigatórios:**

    * `app_id`
    * `alias_id` - O ID externo do usuário é recomendado.

    **Autenticação necessária**

    * Chame esta API do seu servidor.
  </Tab>
</Tabs>

***

<Check>
  Agora você deve estar equipado com tudo o que precisa saber sobre criar uma página de cancelamento de assinatura personalizada.
</Check>

***
