Links universais e App Links
Este artigo descreve como configurar links universais da Apple e Android App Links.
Para uma comparação dos tipos de links em todos os canais de envio de mensagens e orientações sobre quando você precisa de um arquivo AASA, consulte o Guia de deep linking para iOS.
Os links universais da Apple e os Android App Links são mecanismos criados para proporcionar uma transição fluida entre conteúdo web e apps móveis. Enquanto os links universais são específicos do iOS, os Android App Links servem ao mesmo propósito para aplicativos Android.
Como os links universais e App Links funcionam
Os links universais (iOS) e App Links (Android) são links web padrão (http://mydomain.com) que apontam tanto para uma página web quanto para um conteúdo dentro de um app.
Quando um link universal ou App Link é aberto, o sistema operacional verifica se algum app instalado está registrado para aquele domínio. Se um app for encontrado, ele é aberto imediatamente sem carregar a página web. Se nenhum app for encontrado, a URL web é carregada no navegador padrão do usuário, que também pode ser configurado para redirecionar para a App Store ou Google Play Store, respectivamente.
Em termos simples, os links universais permitem que um site associe suas páginas web a telas específicas do app. Assim, quando um usuário clica em um link para uma página web que corresponde a uma tela do app, o app pode ser aberto diretamente (se estiver instalado).
Esta tabela descreve as principais diferenças entre links universais e deep links tradicionais:
| Links universais e App Links | Deep Links | |
|---|---|---|
| Compatibilidade de plataforma | iOS (versão 9 e posterior) e Android (versão 6.0 e posterior) | Usado em vários sistemas operacionais móveis |
| Finalidade | Conectar conteúdo web e de app de forma fluida em dispositivos iOS e Android | Vincular a conteúdo específico do app |
| Função | Direciona para páginas web ou conteúdo do app com base no contexto | Abre telas específicas do app |
| Instalação do app | Abre o app se estiver instalado, caso contrário abre o conteúdo web | Requer que o app esteja instalado |
Casos de uso
Os links universais e App Links são mais comumente usados em Campaigns de e-mail, já que os e-mails podem ser abertos e clicados tanto em dispositivos desktop quanto móveis.
Alguns canais não funcionam bem com esses links. Por exemplo, notificações por push, mensagens no app e Content Cards devem usar deep links baseados em esquema (mydomain://).
Os Android App Links requerem um IBrazeDeeplinkHandler personalizado com lógica para tratar links de seus domínios separadamente de outras URLs web. Pode ser mais fácil usar deep links e manter as práticas de vinculação uniformes para canais que não sejam e-mail.
Pré-requisitos
Para usar links universais e App Links:
- Seu site deve ser acessível via HTTPS
- Seu app deve estar disponível na App Store (iOS) ou Google Play Store (Android)
Configurando links universais e App Links
Para que os apps suportem links universais ou App Links, tanto o iOS quanto o Android exigem que um arquivo especial de permissões seja hospedado no domínio do link. Esse arquivo contém definições de quais apps podem abrir links daquele domínio e, no caso do iOS, quais caminhos esses apps podem abrir:
- iOS: Arquivo Apple App Site Association (AASA)
- Android: Arquivo Digital Asset Links
Além desse arquivo de permissões, existem definições codificadas de quais domínios de link o app pode abrir, configuradas dentro do próprio app:
- iOS: Definido como “Associated Domains” no Xcode
- Android: Definido no arquivo
AndroidManifest.xmldo app
Essa associação bidirecional entre domínio e app é necessária para que um link universal ou App Link funcione e impede que qualquer app sequestre links de um domínio específico ou que qualquer domínio abra um app específico.
Estas etapas são adaptadas da documentação para desenvolvedores da Apple. Para saber mais, consulte Allowing apps and websites to link to your content.
Etapa 1: Configure os entitlements do seu app
No Xcode 13 e posterior, o Xcode pode gerenciar o provisionamento de entitlements automaticamente. Você provavelmente pode pular para a etapa 1c e voltar a estas instruções se tiver problemas.
Etapa 1a: Registre seu app
- Acesse developer.apple.com e faça login.
- Clique em Certificates, Identifiers & Profiles.
- Clique em Identifiers.
- Se você ainda não tiver um App Identifier registrado, clique em + para criar um. a. Insira um Name. Pode ser qualquer nome que você quiser. b. Insira o Bundle ID. Você pode encontrar o bundle ID na guia General do seu projeto Xcode para o build target correto.
Etapa 1b: Ative Associated Domains no seu app identifier
- No seu App Identifier existente ou recém-criado, localize a seção App Services.
- Selecione Associated Domains.
- Clique em Save.

Etapa 1c: Ative Associated Domains no seu projeto Xcode
Antes de prosseguir, verifique se o seu projeto Xcode tem o mesmo time selecionado que o usado para registrar o App Identifier.
- No Xcode, acesse a guia Capabilities do arquivo do seu projeto.
- Ative Associated Domains.
Dica de solução de problemas
Se você vir o erro “An App ID with Identifier ‘your-app-id’ is not available. Please enter a different string”, faça o seguinte:
- Verifique se o time correto está selecionado.
- Verifique se o Bundle ID (etapa 1a) do seu projeto Xcode corresponde ao usado para registrar o App Identifier.
Etapa 1d: Adicione o entitlement de domínio
Na seção de domínios, adicione a tag de domínio apropriada. Você deve prefixá-la com applinks:. Neste caso, você pode ver que adicionamos applinks:yourdomain.com.

Etapa 1e: Confirme que o arquivo de entitlements está incluído no build
No navegador do projeto, verifique se o novo arquivo de entitlements está selecionado em Target Membership.
O Xcode deve gerenciar isso automaticamente.
Etapa 2: Configure seu site para hospedar o arquivo AASA
Para associar o domínio do seu site ao seu app nativo no iOS, você precisa hospedar o arquivo Apple App Site Association (AASA) no seu site. Esse arquivo serve como uma forma segura de verificar a propriedade do domínio para o iOS. Antes do iOS 9, os desenvolvedores podiam registrar qualquer esquema de URI para abrir seus apps, sem nenhuma verificação. No entanto, com o AASA, esse processo se tornou muito mais seguro e confiável.
O arquivo AASA contém um objeto JSON com uma lista de apps e os caminhos de URL no domínio que devem ser incluídos ou excluídos como links universais. Aqui está um exemplo de arquivo AASA:
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"applinks": {
"apps": [],
"details": [
{
"appID": "JHGFJHHYX.com.facebook.ios",
"paths": [
"*"
]
}
]
}
}
appID: Construído combinando o Team ID do seu app (acessehttps://developer.apple.com/account/#/membership/para obter o team ID) e o Bundle Identifier. No exemplo acima, “JHGFJHHYX” é o team ID e “com.facebook.ios” é o bundle ID.paths: Array de strings que especificam quais caminhos são incluídos ou excluídos da associação. Você pode usarNOTantes do caminho para desativar caminhos. Neste exemplo, todos os links nesse caminho irão para a web em vez de abrir o app. Você pode usar*como curinga para habilitar todos os caminhos em um diretório e?para corresponder a um único caractere (como /archives/201?/ para corresponder a todos os números de 2010 a 2019).
Essas strings diferenciam maiúsculas de minúsculas, e query strings e identificadores de fragmento são ignorados.
Etapa 3: Hospede o arquivo AASA no seu domínio
Quando o arquivo AASA estiver pronto, você pode hospedá-lo no seu domínio em https://<<yourdomain>>/apple-app-site-association ou em https://<<yourdomain>>/.well-known/apple-app-site-association.
Faça upload do arquivo apple-app-site-association para o seu servidor web HTTPS. Você pode colocar o arquivo na raiz do servidor ou no subdiretório .well-known. Não adicione .json ao nome do arquivo.
O iOS só tentará buscar o arquivo AASA por meio de uma conexão segura (HTTPS).
Ao hospedar o arquivo AASA, verifique se o arquivo segue estas diretrizes:
- É servido via HTTPS.
- Usa o tipo MIME
application/json. - Não excede 128 KB (requisito a partir do iOS 9.3.1)
Etapa 4: Prepare seu app para lidar com links universais
Quando um usuário toca em um link universal em um dispositivo iOS, o dispositivo abre o app e envia a ele um objeto NSUserActivity. O app pode então consultar o objeto NSUserActivity para determinar como foi iniciado.
Para suportar links universais no seu app, siga estas etapas:
- Adicione um entitlement que especifique os domínios que seu app suporta.
- Atualize o app delegate para responder adequadamente quando receber o objeto NSUserActivity.
No Xcode, abra a seção Associated Domains na guia Capabilities e adicione uma entrada para cada domínio que seu app suporta, prefixada com applinks:. Por exemplo, applinks:www.mywebsite.com.
A Apple recomenda limitar essa lista a no máximo 20 a 30 domínios.
Etapa 5: Teste seu link universal
Adicione o link universal a um e-mail e envie-o para um dispositivo de teste. Colar um link universal diretamente no campo de URL do Safari não fará com que o app abra automaticamente. Se você fizer isso, precisará puxar manualmente a página para baixo para que um prompt apareça no topo perguntando se deseja abrir o respectivo app.
Estas etapas são adaptadas da documentação para desenvolvedores Android. Para saber mais, consulte Add Android App Links e Create Deep Links to App Content.
Os Android App Links requerem um IBrazeDeeplinkHandler personalizado com lógica para tratar links de seus domínios separadamente de outras URLs web. Pode ser mais fácil usar deep links e manter as práticas de vinculação uniformes para canais que não sejam e-mail.
Etapa 1: Crie deep links
Primeiro, você precisa criar deep links para o seu app Android. Isso pode ser feito adicionando intent filters no seu arquivo AndroidManifest.xml. O intent filter deve incluir a ação VIEW e a categoria BROWSABLE, junto com a URL do seu site no elemento de dados.
Etapa 2: Associe seu app ao seu site
Você precisa associar seu app ao seu site. Isso pode ser feito criando um arquivo Digital Asset Links. Esse arquivo deve estar no formato JSON e incluir detalhes sobre os apps Android que podem abrir links para o seu site. Ele deve ser colocado no diretório .well-known do seu site.
Etapa 3: Atualize o arquivo de manifesto do seu app
No seu arquivo AndroidManifest.xml, adicione um elemento meta-data dentro do elemento application. O elemento meta-data deve ter um atributo android:name com o valor “asset_statements” e um atributo android:resource que aponte para um arquivo de recurso com um array de strings que inclua a URL do seu site.
Etapa 4: Prepare seu app para lidar com deep links
No seu app Android, você precisa tratar os deep links recebidos. Você pode fazer isso obtendo o intent que iniciou sua activity e extraindo os dados dele.
Etapa 5: Teste seus deep links
Por fim, você pode testar seus deep links. Envie um link para si mesmo por meio de um app de mensagens ou e-mail e clique nele. Se tudo estiver configurado corretamente, o app deverá ser aberto.
Links universais, App Links e rastreamento de cliques
Os links de rastreamento de cliques geralmente são configurados como parte da sua integração de e-mail. Se isso não foi concluído durante a integração do cliente, entre em contato com o seu gerente de conta para obter ajuda.
Nossos parceiros de envio de e-mail, SendGrid e SparkPost, usam domínios de rastreamento de cliques para encapsular todos os links e incluir parâmetros de URL para rastreamento de cliques nos e-mails da Braze.
Por exemplo, um link como https://www.example.com se torna algo como https://links.email.example.com/uni/wf/click?upn=abcdef123456….
Para permitir que links de e-mail com rastreamento de cliques funcionem como links universais ou App Links, você precisará realizar algumas configurações adicionais. Certifique-se de adicionar o domínio de rastreamento de cliques (links.email.example.com) como um domínio que o app pode abrir. Além disso, o domínio de rastreamento de cliques deve servir os arquivos AASA (iOS) ou Digital Asset Links (Android). Isso ajudará a garantir que os links de e-mail com rastreamento de cliques funcionem perfeitamente.
Se você não quiser que todos os links de rastreamento de cliques sejam links universais ou App Links, pode especificar quais links devem ser links universais com base no parceiro de envio de e-mail. Consulte as seções a seguir para mais detalhes.
SendGrid
Para tratar um link de rastreamento de cliques do SendGrid como um link universal:
- Configure os valores de pathPrefix do AASA ou AndroidManifest para tratar apenas links com
/uni/no caminho da URL como links universais. - Adicione o atributo
universal="true"à tag âncora (<a>) do seu link. Isso altera o caminho da URL do link encapsulado para incluir/uni/.
Para e-mails AMP, esse atributo deve ser data-universal=”true”.
Por exemplo:
1
<a href=”https://www.example.com” universal="true">
- Certifique-se de que seu app está configurado para tratar os links encapsulados corretamente. Consulte o artigo do SendGrid sobre Resolving SendGrid Click Tracking Links e siga as etapas para o seu sistema operacional. Este artigo contém código de exemplo para iOS e Android.
Com essa configuração, links com /uni/ no caminho da URL funcionarão como links universais, enquanto todos os outros links funcionarão como links web.
SparkPost
Para tratar um link de rastreamento de cliques do SparkPost como um link universal, adicione o seguinte atributo à seção de atributos do editor de arrastar e soltar para e-mail, ou edite manualmente o HTML do link para incluir o seguinte atributo na tag âncora do seu link: data-msys-sublink="custom_path".
Esse caminho personalizado permite que você trate seletivamente URLs com esse valor como um link universal.
Por exemplo:
1
<a href=”https://www.example.com” data-msys-sublink="open-in-app">
Em seguida, certifique-se de que seu app está configurado para tratar o caminho personalizado corretamente. Consulte o artigo do SparkPost sobre Using SparkPost click tracking on deep links. Este artigo contém código de exemplo para iOS e Android.
Desativando o rastreamento de cliques link a link
Você pode desativar o rastreamento de cliques para links específicos adicionando código HTML à sua mensagem de e-mail no editor de HTML ou a um bloco HTML no editor de arrastar e soltar.
SendGrid
Se o seu prestador de serviço de e-mail for o SendGrid, use o código HTML clicktracking=off assim:
<a clicktracking=off href="[INSERT https LINK HERE]">click here</a>
SparkPost
Se o seu prestador de serviço de e-mail for o SparkPost, use o código HTML data-msys-clicktrack="0" assim:
<a data-msys-clicktrack="0" href="[INSERT https LINK HERE]">click here</a>
Amazon SES
Se o seu prestador de serviço de e-mail for o Amazon SES, use o código HTML ses:no-track assim:
<a ses:no-track href="[INSERT https LINK HERE]">click here</a>
Editor de arrastar e soltar
Ao usar o editor de arrastar e soltar para e-mail, insira seu código HTML como um atributo personalizado se o link estiver vinculado a um texto, botão ou imagem.
Atributo personalizado para um link de texto
SendGrid
Selecione o seguinte para o atributo personalizado:
- Name:
clicktracking - Value:
off
SparkPost
Selecione o seguinte para o atributo personalizado:
- Name:
data-msys-clicktrack - Value:
0
![]()
Atributo personalizado para um botão ou imagem
SendGrid
Selecione o seguinte para o atributo personalizado:
- Name:
clicktracking - Value:
off - Type: Link
SparkPost
Selecione o seguinte para o atributo personalizado:
- Name:
data-msys-clicktrack - Value:
0 - Type: Link
![]()
Solução de problemas de links universais com rastreamento de cliques
Se seus links universais não estiverem funcionando como esperado nos seus e-mails, como navegar o destinatário do app de e-mail para o navegador web antes de finalmente redirecionar para o app, consulte estas dicas para solucionar problemas na configuração do seu link universal.
Verifique a localização do arquivo de link
Certifique-se de que o arquivo AASA (iOS) ou Digital Asset Links (Android) está localizado no lugar correto:
- iOS:
https://click.tracking.domain/.well-known/apple-app-site-association - Android:
https://click.tracking.domain/.well-known/assetlinks.json
É importante garantir que esses arquivos estejam sempre acessíveis publicamente. Se você não conseguir acessá-los, pode ter pulado uma etapa na configuração dos links universais para e-mail.
Verifique as definições de domínio
Certifique-se de que você tem as definições corretas para os domínios que seu app pode abrir.
- iOS: Revise os Associated Domains configurados no Xcode para o seu app (etapa 1c). Verifique se o domínio de rastreamento de cliques está incluído nessa lista.
- Android: Abra a página de informações do app (pressione e segure o ícone do app e clique em ⓘ). No menu de informações do app, localize Abrir por padrão e toque nessa opção. Isso deve mostrar uma tela com todos os links verificados que o app pode abrir. Verifique se o domínio de rastreamento de cliques está incluído nessa lista.