Elido
Tudo o que o Elido faz
Pro & Business

Deep links. Abra o app. Volte com elegância.

Manifestos de Universal Links e App Links servidos a partir do seu domínio personalizado. O iOS abre seu aplicativo ao tocar; o Android faz o mesmo. Redirecionamento para o navegador no desktop.

  • Universal Links (iOS) e App Links (Android) servidos do seu domínio
  • Deep links diferidos - o contexto sobrevive à instalação do app
  • Detecção inteligente de plataforma com fallbacks elegantes
  • Sem SDK - funciona com os mecanismos padrão do SO
go.yourcompany.com/product/12345
Usuário toca o linkgo.yourcompany.com/product/12345App instalado?SO verifica AASA / assetlinksSIMNÃOAbrir no appproduct/12345deep path preservadoSO?Detecção UAiOSApp Storeapps.apple.comAndroidPlay Storeplay.google.comDesktopWeb móvelfallback de navegadorPassthrough UTM
Interceptação a nível de SO, sem SDKAASA + assetlinks.json
Auto-servido
AASA + assetlinks.json
0
Instalações de SDK no app
iOS + Android
Cobertura de plataforma
UTM
Passagem no redirecionamento

Universal Links e App Links

Arquivos manifest, servidos automaticamente do seu domínio

iOS Universal Links exigem um arquivo apple-app-site-association . Android App Links exigem assetlinks.json. O Elido gera e serve ambos do seu domínio personalizado automaticamente - sem hospedagem separada, sem gerenciamento manual de arquivos.

  • iOS Universal Links
    Bundle ID + Team ID → AASA servido em /.well-known/ automaticamente
  • Android App Links
    Nome do pacote + impressão digital SHA-256 → assetlinks.json, HTTPS obrigatório
  • Fallback smart-link
    App não instalado → App Store / Play Store via roteamento baseado em regras
  • Passthrough UTM
    Parâmetros UTM preservados na URL da loja - a atribuição não quebra
  • Sem SDK no seu app
    Apenas interceptação a nível de SO; intent-filter e continueUserActivity
Apple Universal Links
/.well-known/apple-app-site-association
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.yours.app",
        "paths": [
          "/product/*",
          "/referral/*",
          "/invite/*"
        ]
      }
    ]
  }
}
Android App Links
/.well-known/assetlinks.json
[{
  "relation": [
    "delegate_permission/
  common.handle_all_urls"
  ],
  "target": {
    "namespace": "android_app",
    "package_name":
      "com.yourcompany.app",
    "sha256_cert_fingerprints": [
      "AB:12:CD:34:EF:56:..."
    ]
  }
}]

Servido do seu domínio personalizado automaticamente. Configure bundle ID + Team ID (iOS) ou nome do pacote + impressão digital SHA-256 (Android) nas configurações do domínio - o Elido gera e hospeda ambos os arquivos.

xcrun simctl openurl booted '…'
adb shell pm get-app-links

Deep links diferidos

Contexto que sobrevive à instalação

Quando o app não está instalado, o usuário vai à loja, instala e abre o app. O deep-linking diferido passa o contexto deep-link original por essa jornada para que o app possa levar o usuário exatamente para a tela certa após o primeiro lançamento.

  1. 01

    Clica no link

    Usuário toca em um link curto do Elido - de e-mail, redes sociais, QR.

    go.yourcompany.com/p/12345
  2. 02

    Sem app → Loja

    App não instalado. O SO detecta pela verificação AASA / assetlinks. Cai na App Store ou Play Store.

    iOS → App Store · Android → Play Store
  3. 03

    Instala o app

    Usuário instala da loja. O install referrer carrega o contexto do clique como parâmetro de query.

    click_id + UTM preservados na URL referrer
  4. 04

    Abre o app

    O app abre pela primeira vez. O MMP lê o install referrer; mapeia click_id ao evento de instalação.

    Appsflyer / Adjust / Branch captura
  5. 05

    Aterrissa na página exata

    O app roteia para a tela originalmente linkada - product/12345 - como se o usuário já tivesse o app.

    product/12345 - contexto preservado através da instalação
Contexto preservado através da instalação

O parâmetro click_id e os parâmetros UTM do link curto original são passados como parâmetros de query para a URL da loja. As Mobile Measurement Platforms (MMPs) que capturam o install referrer - Appsflyer, Adjust, Branch - podem combinar a instalação com o clique de origem. Deep-linking diferido completo (passar contexto in-app pela instalação) requer o SDK MMP no seu app; o Elido cobre a camada de link.

Detecção de plataforma
go.yourcompany.com/p/12345
Live
iPhone 15 Pro
iOS 17.4
iOS Universal Links
Mozilla/5.0 (iPhone; CPU iPhone OS 17_4…)
SO intercepta o tap HTTPS → abre o app
yourapp://product/12345
Pixel 8 Pro
Android 14
Android App Links
Mozilla/5.0 (Linux; Android 14; Pixel 8…)
Intent combinado por assetlinks.json → app aberto
yourapp://product/12345
MacBook / Desktop
macOS / Windows / Linux
Fallback web
Mozilla/5.0 (Macintosh; Intel Mac OS X…)
Sem verificação AASA → 302 para URL web
yourcompany.com/product/12345
O parsing UA roda dentro do processo de redirecionamento da edge - p50 abaixo de 0,5 ms. Navegadores in-app (Instagram, TikTok) são detectados separadamente e podem ser roteados para um prompt de redirecionamento ao navegador do sistema.

Detecção inteligente de plataforma

Um link. Três caminhos de redirecionamento.

A edge lê o User-Agent e os sinais de plataforma na camada de redirecionamento - antes de qualquer JS rodar. iPhone recebe Universal Links, Android recebe App Links, desktop recebe seu fallback web. Sem atraso de redirecionamento JavaScript; sem detecção de plataforma no cliente.

  • Parsing UA na edge, sub-milissegundo
  • iOS → interceptação Universal Link pelo SO
  • Android → interceptação App Link via intent-filter
  • Desktop → URL web, sem desvio pela loja
  • Navegadores in-app detectados e redirecionados ao navegador do sistema
  • Combina com regras smart-link - geo + dispositivo + deep-link

O que você pode fazer

  • Apple App Site Association
  • Android Asset Links
  • Regras de smart-link para fallback na loja
  • Testado com adb e xcrun

Como os deep links realmente funcionam - e onde eles falham

Universal Links e App Links são mecanismos de nível de sistema operacional. A configuração é simples; os casos específicos não são. Isso cobre o cenário completo.

iOS Universal Links
01

apple-app-site-association servido automaticamente do seu domínio personalizado

Os Universal Links exigem um arquivo apple-app-site-association (AASA) servido em /.well-known/apple-app-site-association no seu domínio personalizado. O iOS baixa este arquivo quando seu app é instalado; ele mapeia seu domínio para o bundle ID e team ID do seu app. Se o mapeamento estiver correto, tocar em um link HTTPS no seu domínio em qualquer app iOS (Safari, Mail, Twitter, Instagram) abre seu app diretamente em vez de ir para um navegador. O Elido gera e serve o arquivo AASA do caminho well-known do seu domínio personalizado automaticamente, com base no bundle ID e team ID que você configura nas configurações de domínio. Você não precisa hospedar o arquivo separadamente. O iOS armazena o arquivo AASA em cache e o baixa novamente periodicamente; se você alterar sua configuração de bundle ID nas configurações de domínio do Elido, o novo AASA entra no ar em segundos, mas os dispositivos iOS o buscarão na próxima atualização de cache (geralmente de 24 a 48 horas, ou na reinstalação do app). Testado com o validador Apple AASA em cada lançamento do Elido.

Android App Links
02

assetlinks.json servido automaticamente - impressão digital SHA-256 da sua chave de assinatura

Os Android App Links exigem um arquivo Digital Asset Links em /.well-known/assetlinks.json no seu domínio. O arquivo mapeia seu domínio para o nome do pacote do seu app e a impressão digital SHA-256 do seu certificado de assinatura. O Android verifica este arquivo durante a instalação do app e também periodicamente. O Elido o serve do seu domínio personalizado automaticamente, com base no nome do pacote e na impressão digital SHA-256 que você configurar. A verificação do Android exige HTTPS (imposto pelo TLS do Elido no domínio personalizado) e o arquivo deve responder em poucos segundos (também gerenciado). Um modo de falha comum: chaves de assinatura diferentes para compilações de debug vs release têm impressões digitais SHA-256 diferentes. Configure ambas as impressões digitais nas configurações de domínio do Elido se estiver testando com uma compilação de debug; as compilações de produção precisam apenas da impressão digital de release. Testado com adb shell pm get-app-links em cada lançamento.

Cadeia de redirecionamento
03

App instalado → deep link. App não instalado → loja. Desktop → web. UTM preservado em tudo.

A cadeia de redirecionamento (fallback) é definida por link ou por domínio nas configurações do Elido. Para um link curto com configuração de deep link: se o SO interceptar o toque (app instalado, domínio verificado), o app abre. Caso contrário (app não instalado), o link abre no navegador; o destino do navegador deve ser o link da sua App Store / Play Store ou um fallback web. As regras de smart-link lidam com isso de forma limpa: configure uma regra para iOS → URL da App Store, uma regra para Android → URL da Play Store e fallback para o destino web. Os parâmetros UTM do link curto original são preservados nas URLs de redirecionamento para que a atribuição não quebre quando o usuário chegar à loja. O deep linking diferido (passar um caminho de deep link específico através de uma instalação, para que o app abra na tela correta após a instalação) requer um SDK no app - o Elido não fornece isso. Para deep linking diferido, você ainda precisará do Appsflyer, Adjust ou Firebase App Distribution.

Retargeting após instalação
04

Retargeting pós-instalação: click ID passado para o destino para atribuição

Em um redirecionamento de deep link, o Elido passa o click_id como um parâmetro de consulta para a URL de fallback. Se o usuário cair na App Store e instalar o app, o click_id está na URL de referência, mas não é propagado automaticamente para o app após a instalação - isso requer SKAdNetwork no iOS ou um SDK de deep link diferido no Android. O que o Elido faz: passa o click_id e os parâmetros UTM para a URL da loja para que uma plataforma de atribuição móvel (MMP) que está capturando o referenciador de instalação possa coletá-los. Isso funciona com Appsflyer e Adjust se você passar o click_id no parâmetro de campanha da URL da loja. Se você não estiver usando um MMP, o click_id na URL da loja é efetivamente perdido após a instalação.

Migração do Firebase Dynamic Links
05

Migrando do Firebase Dynamic Links (descontinuado em 2025)

O Firebase Dynamic Links foi descontinuado pelo Google em 2025. O Elido pode lidar com o padrão principal: um único link curto HTTPS que abre a tela correta em um app instalado, redireciona para a loja e para a web no desktop. Configure o AASA e o assetlinks.json nas configurações de domínio do Elido (substitui a hospedagem desses arquivos no Firebase), atualize seus links de compartilhamento para apontar para links curtos do Elido em vez de URLs page.link e configure a cadeia de fallback via regras de smart-link. O que o Elido não replica: o deep linking diferido do Firebase (contexto de deep link pós-instalação via SDK do Firebase) e os links de deep link do Firebase App Distribution. Se o seu app depende muito de deep linking diferido, você precisará do Appsflyer, Adjust ou Branch junto com o Elido para a camada de atribuição. Para apps que só precisam de 'abrir a tela certa se instalado, senão ir para a loja', o Elido substitui totalmente o Firebase Dynamic Links.

Equipes mobile usando deep links do Elido

Nomes são marcadores por enquanto - nomes reais de clientes aparecerão aqui conforme os estudos de caso forem publicados.

Migramos do Firebase Dynamic Links na semana em que anunciaram a descontinuação. A configuração do AASA e assetlinks.json no Elido levou meio dia. A cadeia de fallback smart-link substituiu a lógica do SDK do Firebase que tínhamos no app para roteamento da loja.

E
Equipe mobile, aplicativo de consumo, 200 mil usuários, Riga
Engenheiro Mobile

A análise de cliques por link em deep links nos mostrou que 35% dos nossos links de compartilhamento estavam sendo clicados no desktop - não tínhamos fallback web configurado. Adicionar o redirecionamento levou 10 minutos; a taxa de conversão dos links de compartilhamento subiu porque os usuários que clicavam do desktop agora podiam concluir a ação.

E
Equipe de produto, marketplace B2C, Bruxelas
Gerente de Produto

Usamos links curtos do Elido com configuração de deep link para programas de indicação. A passagem de UTM para a URL da App Store significa que nosso MMP coleta o referenciador de instalação corretamente - a atribuição funciona sem trabalho de SDK personalizado do nosso lado.

E
Equipe de Growth, app de fitness, 80 mil usuários, Amsterdã
Head de Growth

Deep links do Elido vs Branch.io vs Adjust vs Firebase Dynamic Links (descontinuado)

Branch e Adjust são plataformas completas de atribuição móvel - mais poderosas para deep linking diferido e atribuição MMP. O Elido é a ferramenta certa quando os deep links fazem parte de uma configuração mais ampla de encurtador, não o produto principal.

FeatureElidoBranch.ioAdjust
Universal Links (iOS)AASA auto-servido do seu domínioTotalmente gerenciado em escalaNão - apenas MMP, não hospeda deep link
App Links (Android)assetlinks.json auto-servido do seu domínioTotalmente gerenciadoNão
SDK necessário no appNão - interceptação em nível de SOSim - SDK da BranchSim - SDK da Adjust
Deep linking diferidoNão - requer SDK no appSim - recurso principalSim - com SDK da Adjust
Atribuição móvel (MMP)Passagem de click ID; fiação MMP manualMMP nativo - integrações Appsflyer, KochavaPlataforma MMP completa
Passagem de UTM para a lojaSim - via parâmetro na URL de fallbackSim, com contexto de atribuiçãoSim
Análise de cliques no linkArmazenamento de análise - geo, dispositivo, por linkAnálises profundas de atribuição móvelDados de atribuição de instalação + evento
Substituição do Firebase Dynamic LinksSim para padrão básico; sem deep link diferidoSubstituição total incluindo diferidoParcial - apenas lado MMP

Perguntas sobre deep links

Preciso de um SDK da Branch ou qualquer SDK no meu app para usar os deep links do Elido?

Não. Os deep links do Elido usam iOS Universal Links e Android App Links - mecanismos de nível de SO. Seu app só precisa lidar com a URL de entrada da maneira padrão do iOS (scene:openURLContexts ou application:continueUserActivity) ou Android (intent-filter no manifesto). Nenhum SDK de terceiros é instalado; o SO lida com a interceptação com base nos arquivos AASA e assetlinks.json que o Elido serve do seu domínio.

Como é o fluxo de configuração do AASA?

Nas configurações de domínio do Elido → Deep links: insira o bundle ID do seu app iOS (ex: com.suaempresa.app) e o Apple Team ID (string de 10 caracteres da sua conta Apple Developer). O Elido gera o JSON do AASA e o serve em /.well-known/apple-app-site-association no seu domínio personalizado. Verifique se está acessível com curl antes de enviar seu app para o TestFlight ou App Store. O iOS baixa o arquivo AASA durante a instalação do app em dispositivos com iOS 9+.

Posso ter vários aplicativos em um domínio?

Sim - o arquivo AASA suporta várias entradas de aplicativos. Configure o bundle ID e o Team ID de cada aplicativo nas configurações de domínio; o Elido gera um AASA combinado com todos os aplicativos listados. O assetlinks.json do Android também suporta várias combinações de nome de pacote + impressão digital. Caso de uso comum: aplicativo principal e um App Clip, ou aplicativo principal e uma extensão de widget.

Descontinuação do Firebase Dynamic Links - qual o caminho de migração?

Substitua as URLs curtas page.link por links curtos do Elido (seu domínio personalizado ou domínio compartilhado do Elido). Configure o AASA e o assetlinks.json nas configurações de domínio do Elido. Configure a cadeia de fallback via regras de smart-link (regra iOS → App Store, regra Android → Play Store, fallback → web). Atualize a geração de links de compartilhamento no seu app para chamar a API create_link do Elido em vez do Firebase. O que não migra: se o seu app depende do deep linking diferido do Firebase (passagem de intenção pós-instalação), você precisará do Branch ou Adjust para essa parte.

Como faço para testar Universal Links antes de publicar na App Store?

Use xcrun simctl openurl booted 'https://go.suaempresa.com/test-slug' com seu app instalado em um simulador. Em um dispositivo físico com uma compilação de debug, pressione longamente um link no Safari e veja se 'Abrir no Seu App' aparece. A Apple também fornece o App Association File Validator em developer.apple.com - cole a URL do seu AASA e ele verificará a acessibilidade, Content-Type e validade do JSON. O AASA do Elido passa em todos os três testes.

O que é deep linking diferido e por que o Elido não o faz?

O deep linking diferido passa o contexto (ex: 'o usuário estava visualizando o produto ID 123') do clique no link através de uma instalação de app e para o primeiro lançamento do app. Requer um SDK de impressão digital ou atribuição no app (Branch, Appsflyer, Adjust) que corresponda à instalação ao clique durante o processo de instalação. O Elido não instala código de SDK no seu app; apenas servimos o AASA e o assetlinks.json. Sem o SDK, não há mecanismo para passar o contexto através de uma instalação. Para o caso de uso básico de 'abrir a tela certa se estiver instalado', o Elido é suficiente. Para passar a intenção através da instalação, você precisa de um MMP.

Posso usar deep links no domínio compartilhado do Elido (s.elido.me)?

Não. Universal Links e App Links exigem o seu domínio - você não pode reivindicar *.elido.me como um domínio de Universal Link para o seu app. Os deep links exigem um domínio personalizado no Pro ou Business. O domínio personalizado é o que você configura no seu AASA e assetlinks.json, e o Elido serve esses arquivos a partir dele.

Como lidar com o caso em que o navegador do usuário bloqueia a interceptação do app?

Alguns navegadores (notadamente o Chrome no Android anterior ao 6.0 e alguns navegadores integrados como o do Instagram) bloqueiam a interceptação de App Links ou Universal Links. A URL de fallback é o que eles veem. Para navegadores integrados: redirecione primeiro para o navegador do sistema usando uma URL de intenção (Android) ou um aviso ao usuário. Para navegadores integrados do Instagram / TikTok: a abordagem padrão é mostrar um aviso de 'toque para abrir no seu navegador'. O Elido não injeta esse aviso automaticamente - a URL de fallback é o seu destino, e você controla o que acontece lá.

Pronto para experimentar?

Comece no plano gratuito, faça o upgrade quando precisar de um domínio personalizado.