Elido
Tudo o que o Elido faz
Pro & Business

Deep links. Open the app. Fall back gracefully.

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) and App Links (Android) served from your domain
  • Deferred deep links — context survives app install
  • Smart platform detection with graceful fallbacks
  • No SDK required — works with standard OS mechanisms
go.yourcompany.com/product/12345
User taps linkgo.yourcompany.com/product/12345App installed?OS checks AASA / assetlinksYESNOOpen in appproduct/12345deep path preservedOS?UA detectiOSApp Storeapps.apple.comAndroidPlay Storeplay.google.comDesktopMobile webbrowser fallbackUTM passthrough
OS-level interception, no 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 & App Links

Manifest files, auto-served from your domain

iOS Universal Links require an apple-app-site-association file. Android App Links require assetlinks.json. Elido generates and serves both from your custom domain automatically — no separate hosting, no manual file management.

  • iOS Universal Links
    Bundle ID + Team ID → AASA served at /.well-known/ automatically
  • Android App Links
    Package name + SHA-256 fingerprint → assetlinks.json, HTTPS enforced
  • Smart-link fallback
    App not installed → App Store / Play Store via rule-based routing
  • UTM passthrough
    UTM parameters preserved to store URL — attribution doesn't break
  • No SDK in your app
    OS-level interception only; intent-filter and 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:..."
    ]
  }
}]

Served from your custom domain automatically. Configure bundle ID + Team ID (iOS) or package name + SHA-256 fingerprint (Android) in domain settings — Elido generates and hosts both files.

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

Deferred deep links

Context that survives the install

When the app isn’t installed, the user goes to the store, installs, and opens the app. Deferred deep-linking passes the original deep-link context through that journey so the app can land the user on exactly the right screen after first launch.

  1. 01

    Clicks link

    User taps an Elido short link — from email, social, QR.

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

    No app → Store

    App not installed. OS detects from AASA / assetlinks check. Falls back to App Store or Play Store.

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

    Installs app

    User installs from the store. The install referrer carries the click context as a query parameter.

    click_id + UTM preserved in referrer URL
  4. 04

    Opens app

    App opens for the first time. MMP reads install referrer; maps click_id to the install event.

    Appsflyer / Adjust / Branch picks it up
  5. 05

    Lands on exact page

    App routes to the originally linked screen — product/12345 — as if the user had the app already.

    product/12345 — context preserved through install
Context preserved through install

The click_id and UTM parameters from the original short link are passed as query parameters to the store URL. Mobile Measurement Platforms (MMPs) that capture the install referrer — Appsflyer, Adjust, Branch — can match the install to the originating click. Full deferred deep-linking (passing in-app context through install) requires the MMP SDK in your app; Elido covers the link layer.

Platform detection
go.yourcompany.com/p/12345
Live
iPhone 15 Pro
iOS 17.4
iOS Universal Links
Mozilla/5.0 (iPhone; CPU iPhone OS 17_4…)
OS intercepts HTTPS tap → opens app
yourapp://product/12345
Pixel 8 Pro
Android 14
Android App Links
Mozilla/5.0 (Linux; Android 14; Pixel 8…)
Intent matched by assetlinks.json → app opened
yourapp://product/12345
MacBook / Desktop
macOS / Windows / Linux
Web fallback
Mozilla/5.0 (Macintosh; Intel Mac OS X…)
No AASA check → 302 to web URL
yourcompany.com/product/12345
UA parsing runs inside the edge redirect process — p50 under 0.5 ms. In-app browsers (Instagram, TikTok) are detected separately and can be routed to a system-browser redirect prompt.

Smart platform detection

One link. Three redirect paths.

The edge reads User-Agent and platform signals at the redirect layer — before any JS runs. iPhone gets Universal Links, Android gets App Links, desktop gets your web fallback. No JavaScript redirect delay; no client-side platform detection.

  • UA parsing at the edge, sub-millisecond
  • iOS → Universal Link interception by the OS
  • Android → App Link interception via intent-filter
  • Desktop → web URL, no store detour
  • In-app browsers detected and redirected to system browser
  • Composes with smart-link rules — geo + device + deep-link

What you can do

  • 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 linkClickHouse — 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.

Deep links — Abra o aplicativo, redirecione para a loja em caso de falha. · Elido