Firebase Dynamic Links: o que é, como funciona e é usado no desenvolvimento

Autor: IT Sectr Publicado: 2026-05-14 Tempo de leitura: 8 min

Firebase Dynamic Links é um serviço do Google para criar links inteligentes que direcionam o usuário ao lugar certo no aplicativo, independentemente de o aplicativo estar instalado ou não. De acordo com a Documentação do Firebase, os Dynamic Links redirecionam automaticamente o usuário para a App Store ou Google Play se o aplicativo não estiver instalado e restauram o contexto de transição após a instalação. Os Smart Links do Firebase resolvem o problema do URL Scheme, que não funciona com aplicativos não instalados.

Principais pontos

  • Firebase Dynamic Links — um serviço do Google para criar links universais que funcionam no iOS e Android com suporte a deferred deep link.
  • Deferred — a principal vantagem: o link preserva o contexto de transição mesmo que o aplicativo não esteja instalado e o restaura após a instalação.
  • Analytics — o Firebase rastreia automaticamente os cliques nos Dynamic Links e fornece dados no Firebase Analytics e Google Analytics.
  • Plataformas — os Dynamic Links funcionam no iOS (via Universal Links) e Android (via App Links) com um único link universal para ambas as plataformas.
  • Criação — os links são gerados através do Firebase Console, REST API ou SDK do cliente com configuração de comportamento para cada cenário.

Firebase Dynamic Links é um serviço em nuvem do Google que cria links universais unificados para aplicativos móveis no iOS e Android. Um link dinâmico contém um deep link para o conteúdo dentro do aplicativo, mas se comporta como um link HTTPS comum: se o aplicativo estiver instalado, ele o abre diretamente; se não estiver, redireciona para a loja de aplicativos.

Ao contrário dos URL Schemes comuns, os Dynamic Links podem funcionar com aplicativos não instalados graças à tecnologia de deferred deep link. Quando um usuário instala o aplicativo após clicar no link, o Firebase salva os parâmetros de transição e os transmite na primeira inicialização. Isso abre oportunidades para programas de referência, campanhas de marketing e convites.

Diferença dos URL Schemes comuns

Os URL Schemes exigem que o aplicativo esteja instalado e não possuem um mecanismo de fallback padrão. Firebase Dynamic Links resolvem este problema através de um serviço web intermediário do Firebase que determina o status de instalação do aplicativo no dispositivo e roteia o usuário corretamente. Ao mesmo tempo, um único link funciona de forma idêntica em ambas as plataformas.

Firebase Dynamic Link usa um domínio como yourcode.page.link, que é registrado no Firebase Console. Quando um usuário clica nesse link, o Firebase determina o tipo de dispositivo e o status de instalação do aplicativo. Para iOS, utiliza-se o mecanismo Universal Links; para Android, App Links com verificação automática via Digital Asset Links.

O processo de tratamento inclui várias etapas sequenciais: ao clicar no link, o navegador envia uma requisição GET ao servidor do Firebase; o servidor determina a plataforma e verifica a presença do aplicativo no dispositivo. Se o aplicativo estiver instalado, é gerado um redirecionamento para um Universal Link ou Intent com parâmetros para abrir a tela de destino. Se o aplicativo não estiver instalado, redireciona para a App Store ou Google Play para download.

Ciclo de vida do Dynamic Link

O aplicativo recebe o link durante a inicialização do Firebase SDK. O método getDynamicLink() retorna um PendingResult com dados da transição. Após a obtenção bem-sucedida, os parâmetros do deep link, as tags UTM para análise e os dados arbitrários passados ao criar o link são extraídos.

O Firebase Console fornece uma interface visual para criar Dynamic Links. O desenvolvedor especifica o URL do deep link, o nome da campanha, as configurações para iOS e Android separadamente, bem como os parâmetros de análise. Após a criação, o Firebase gera um link curto como https://yourcode.page.link/abc123, que pode ser usado em materiais publicitários, campanhas de email e redes sociais.

Para a criação programática de Dynamic Links, utiliza-se a API REST do Firebase ou o SDK do cliente. A API REST permite gerar links em massa para campanhas de marketing com parâmetros personalizados, incluindo links para redes sociais e análise assíncrona de cliques. Ao criar links através da API, é importante especificar corretamente os parâmetros socialMetaTagInfo — eles determinam como o link aparece ao ser compartilhado em mensageiros e redes sociais com um cartão de visualização.

Parâmetros do Dynamic Link

ParâmetroFinalidadeObrigatório
Deep Link URLLink interno para o conteúdo do aplicativoSim
iOS Bundle IDIdentificador do aplicativo na App StorePara iOS
Android Package NameNome do pacote no Google PlayPara Android
Fallback URLPágina web se o aplicativo não estiver instaladoNão
Tags UTMParâmetros para Google AnalyticsNão

Para trabalhar com Firebase Dynamic Links no iOS, é necessário integrar o Firebase SDK via CocoaPods ou Swift Package Manager, configurar o Info.plist com GOOGLE_APP_ID e registrar o domínio de Dynamic Links nos Associated Domains do projeto. Após isso, o aplicativo manipula automaticamente os Universal Links gerados pelo Firebase.

No Xcode, é necessário adicionar a capacidade Associated Domains com uma entrada como applinks:yourcode.page.link. O Firebase SDK utiliza o método application(_:continue:restorationHandler:) para manipular Universal Links, portanto, nenhuma integração adicional com AppDelegate é necessária — o Firebase extrai automaticamente os parâmetros do Dynamic Link da User Activity.

Configuração no Xcode

Exemplo de configuração do Info.plist para a inicialização correta do Firebase e registro do manipulador de Dynamic Links. A chave FIROptions deve conter o identificador do projeto do GoogleService-Info.plist.

xml
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

Se o proxy do AppDelegate estiver desativado, é necessário chamar manualmente o método handleUniversalLink(_:) e passar a User Activity do continue NSUserActivity. O Firebase SDK extrai automaticamente os parâmetros do link e retorna um DynamicLink através do completion handler.

No Android, a integração do Firebase Dynamic Links começa adicionando dependências no build.gradle e o arquivo google-services.json do Firebase Console. O domínio de Dynamic Links é registrado no Firebase Console, após o que todos os links com este domínio são automaticamente reconhecidos pelo aplicativo Android através de um Intent Filter com action VIEW. Para o correto funcionamento, também é necessário adicionar o plugin Google Services no build.gradle raiz e do módulo, e realizar a sincronização do Gradle.

Para manipular corretamente os links no Android, é necessário adicionar um Intent Filter para o domínio de Dynamic Links na Activity que deve receber os links de entrada. O filtro deve incluir o esquema https, o host do seu domínio de Dynamic Links e o caminho padrão.

Intent Filter para Dynamic Links

Exemplo de Intent Filter no AndroidManifest.xml para receber Dynamic Links no domínio yourcode.page.link.

xml
<activity android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter
        android:autoVerify="true">
        <action
            android:name="android.intent.action.VIEW" />
        <category
            android:name="android.intent.category.DEFAULT" />
        <category
            android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="https"
            android:host="yourcode.page.link" />
    </intent-filter>
</activity>

É importante definir launchMode como singleTask para a Activity que recebe Dynamic Links. Isso impede a criação de uma nova instância da Activity ao clicar repetidamente no link e permite manipular todos os deep links de entrada em uma única instância.

O Firebase SDK para Android fornece o método FirebaseDynamicLinks.getInstance().getDynamicLink(intent), que retorna um objeto PendingTask com dados do link. Do objeto DynamicLink são extraídos o URI profundo, os parâmetros UTM e o timestamp da transição. Recomenda-se realizar o tratamento nos métodos onCreate() e onNewIntent() da Activity.

Ao manusear, é importante considerar que um Dynamic Link pode ser recebido tanto ao iniciar o aplicativo a partir de um estado frio (cold start) quanto ao fazer a transição de outro aplicativo para um aplicativo já em execução. Para o segundo caso, é necessário sobrescrever onNewIntent() e chamar novamente a verificação do Dynamic Link.

Tratamento em código Kotlin

Exemplo de recebimento e tratamento de Firebase Dynamic Link na MainActivity. O código trata tanto cold start quanto a transição de outro aplicativo.

kotlin
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        checkDynamicLink(intent)
    }
    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        checkDynamicLink(intent)
    }
    private fun checkDynamicLink(intent: Intent) {
        FirebaseDynamicLinks.getInstance()
            .getDynamicLink(intent)
            .addOnSuccessListener link ->
                val deepLink = link?.link.toString()
                handleDeepLink(deepLink)
            }
    }
}

O método addOnSuccessListener retorna um DynamicLink, do qual o link de destino é extraído através de link?.link. Se o listener retornar null, significa que o Intent não contém um Dynamic Link — é uma inicialização normal do aplicativo sem um link de entrada. Também estão disponíveis as tags UTM para análise de cliques, incluindo campaign, medium, source e content, que podem ser passadas para o Google Analytics para avaliação detalhada da eficácia de cada canal de marketing.

Perguntas frequentes

Como o Firebase Dynamic Links difere de um deep link comum?

Firebase Dynamic Links suporta deferred deep link — o link preserva o contexto mesmo que o aplicativo não esteja instalado. Após a instalação, o aplicativo recebe todos os parâmetros de transição, o que é impossível com URL Schemes ou Universal Links comuns.

É necessário pagar pelo Firebase Dynamic Links?

Firebase Dynamic Links estão incluídos no plano gratuito Firebase Spark. Não há limites na quantidade de links que podem ser criados. No entanto, desde 2024, o Google anunciou a transição para uma nova infraestrutura, portanto, os termos podem mudar.

Pode-se usar Dynamic Links em um aplicativo web?

Dynamic Links são projetados para aplicativos móveis. Ao clicar no link a partir de um navegador web de desktop, ele abrirá o URL de fallback. Para aplicativos web, use links comuns ou sua própria lógica de redirecionamento.

Como testar Dynamic Links durante o desenvolvimento?

Firebase Console fornece um botão Test Dynamic Link para pré-visualizar o comportamento. Você também pode usar o emulador Android ou simulador iOS com o Firebase SDK instalado para testar localmente todos os cenários de transição.

Quantos caracteres um Dynamic Link pode conter?

Um link curto do Firebase Dynamic Link consiste no domínio page.link e um sufixo aleatório de cerca de 7 caracteres. O comprimento total é de aproximadamente 30 caracteres. O deep link interno pode ter qualquer comprimento, mas recomenda-se limitá-lo a 2 KB para compatibilidade.

Resumo

  • Firebase Dynamic Links — links universais unificados do Google para iOS e Android com suporte a deferred deep link.
  • Como funciona — o link passa pelo servidor Firebase, que determina o dispositivo e o status de instalação do aplicativo para roteamento correto.
  • Deferred — vantagem principal: os parâmetros de transição são salvos e restaurados após a instalação do aplicativo a partir da loja.
  • Criação — os links são gerados através do Firebase Console, REST API ou SDK do cliente com configuração de parâmetros para cada plataforma.
  • Integração iOS — requer Associated Domains no Xcode e Firebase SDK; manipulação via Universal Links e método continue UserActivity.
  • Integração Android — requer Intent Filter no manifesto com action VIEW e domínio de Dynamic Links, além do Firebase SDK no build.gradle.
  • Analytics — o Firebase rastreia automaticamente os cliques nos Dynamic Links com suporte a tags UTM para Google Analytics.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também