Firebase Dynamic Links: o que é, criação de links e integração

Autor: IT Sectr Publicado: 2026-04-29 Tempo de leitura: 9 min

Firebase Dynamic Links é um serviço do Google para criar links inteligentes que levam o usuário ao lugar certo dentro de um aplicativo móvel ou a um site, dependendo se o aplicativo está instalado no dispositivo. Dynamic Links preservam o contexto de transição mesmo no primeiro lançamento após a instalação da loja de aplicativos. De acordo com a Documentação do Firebase, 2026, links dinâmicos são processados em uma API única que determina automaticamente o comportamento: abrir o aplicativo, ir para o site ou instalar o aplicativo. O serviço é indispensável para programas de indicação, cenários de integração e campanhas de marketing.

Pontos principais

  • Dynamic Links — links inteligentes que determinam automaticamente se devem instalar o aplicativo ou abrir um já instalado na tela desejada.
  • Deferred Deep Linking — preservação do contexto de transição no primeiro lançamento após a instalação: o usuário vê a tela de destino, não a principal.
  • Domínio do link — um domínio personalizado como your-app.page.link que pode ser personalizado no Firebase Console.
  • Processamento do lado do cliente — os links são processados através do Firebase Dynamic Links SDK para Android e iOS com argumentos passados para intent ou scene.
  • Analítica — o Firebase coleta automaticamente estatísticas de cliques, instalações e transições através de Dynamic Links.

Firebase Dynamic Links é uma tecnologia do Google que cria um único link que leva ao conteúdo desejado em um aplicativo móvel ou site, adaptando o comportamento conforme a plataforma e o estado de instalação. O link verifica se o aplicativo está instalado no dispositivo: se sim — abre-o com os parâmetros passados, se não — redireciona para Google Play ou App Store para instalação, e após a instalação redireciona para a tela de destino.

Característica principal: Deferred Deep Linking

A principal vantagem do Dynamic Links sobre os links profundos comuns é o suporte a links profundos adiados. Deferred Deep Linking significa que o contexto de transição (parâmetros do link) é preservado mesmo se o aplicativo ainda não estiver instalado. Quando o usuário instala o aplicativo da loja, o Dynamic Links SDK lê o contexto salvo e o passa para a tela desejada. Sem esta tecnologia, o usuário simplesmente cairia na tela principal após a instalação, perdendo o código promocional, convite ou link para um pedido específico.

Casos de uso

Dynamic Links são usados em programas de indicação para atrair novos usuários com atribuição à conta do convidador. Campanhas de marketing com transições de newsletters por email e redes sociais usam Dynamic Links para medição precisa de conversão. Em cenários de integração, o link leva um novo usuário a uma tela de boas-vindas com conteúdo personalizado. No e-commerce, links de produtos preservam o contexto e levam ao cartão do produto mesmo no primeiro lançamento após a instalação.

O mecanismo de funcionamento do Dynamic Links consiste em várias etapas, cada uma podendo variar conforme o estado do aplicativo. Quando um usuário clica em um link dinâmico, o navegador envia uma solicitação ao servidor Firebase. O Firebase verifica se o aplicativo está instalado através da verificação de intent-filter ou universal link. Se o aplicativo estiver instalado, o Firebase abre-o com o link profundo passado. Se não — redireciona para a página da loja ou versão web.

Anatomia de um link dinâmico

Um Dynamic Link padrão consiste em uma URL base, parâmetros de link e tags de marketing opcionais. A URL base é um domínio como your-app.page.link registrado no Firebase Console. Parâmetros de link profundo são definidos através de parâmetros de consulta: link (URL de destino dentro do aplicativo), apn (Android Package Name), ibi (iOS Bundle ID), st e sd (título e descrição para pré-visualização social). Tags de marketing utm_source, utm_medium, utm_campaign são passadas para o Google Analytics para rastreamento.

ParâmetroDescriçãoExemplo
linkLink profundo de destinohttps://yourapp.page.link/product/123
apnAndroid Package Namecom.example.myapp
ibiiOS Bundle IDcom.example.myapp.ios
stTítulo socialOferta especial
sdDescrição social30% de desconto no primeiro pedido

Firebase Console fornece uma interface visual para criar Dynamic Links na seção Engage > Dynamic Links. No console, você pode definir todos os parâmetros do link, incluindo o link profundo, comportamento web, metadados sociais e tags UTM. Após criar o link, o console fornece uma URL pronta para uso, bem como estatísticas de cliques e transições. Para criação em massa de links, é usada a REST API do Firebase Dynamic Links com autenticação OAuth 2.0.

Criação de um link através da REST API

Para criação programática de Dynamic Links, é feita uma solicitação POST à API do Firebase Dynamic Links. O corpo da solicitação contém dynamicLinkInfo com parâmetros de link profundo, configurações de plataforma e metadados sociais. A API retorna uma URL pronta para uso como https://your-app.page.link/abc123. Para links de longa duração, é usado suffix.option = UNIQUE — links curtos com um sufixo único. Para links temporários — SHORT, com possíveis colisões.

js
const axios = require("axios")

const apiUrl = "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY"

const data = {
    dynamicLinkInfo: {
        domainUriPrefix: "https://yourapp.page.link",
        link: "https://yourapp.com/promo/summer",
        androidInfo: { androidPackageName: "com.example.myapp" },
        iosInfo: { iosBundleId: "com.example.myapp.ios" },
        socialMetaTagInfo: {
            socialTitle: "Promoção de verão",
            socialDescription: "Até 50% de desconto até o final do mês"
        }
    },
    suffix: { option: "UNIQUE" }
}

axios.post(apiUrl, data)
    .then(res => console.log(res.data.shortLink))
    .catch(err => console.error(err))

Links curtos e tags UTM

Dynamic Links geram automaticamente URLs curtas com 6–8 caracteres após o domínio, tornando-as adequadas para uso em SMS e redes sociais. Parâmetros UTM são adicionados através do campo utmParameters ou diretamente no parâmetro link. O Firebase vincula automaticamente cliques em Dynamic Links com o Google Analytics para Firebase, permitindo rastrear tráfego de referência e atribuição de campanhas.

Integração de Dynamic Links no Android

Configurar Dynamic Links no Android inclui adicionar o Firebase SDK, configurar o intent-filter para a activity que recebe links profundos e processar links através do Firebase Dynamic Links SDK. Após instalar o SDK e adicionar google-services.json, você precisa registrar a activity no AndroidManifest.xml com um intent-filter para processar links do domínio do seu aplicativo.

Configurar intent-filter no AndroidManifest

A activity que processa Dynamic Links deve ter um intent-filter para a ação VIEW e as categorias DEFAULT e BROWSABLE. AndroidManifest.xml inclui uma tag data com android:scheme, android:host e android:pathPrefix correspondentes ao seu link profundo. Para processar links do domínio page.link, também é adicionado um intent-filter com o esquema https e o host do seu domínio Dynamic Links.

xml
<!-- AndroidManifest.xml -->
<activity android:name=".MainActivity">
    <intent-filter>
        <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="yourapp.com"
            android:pathPrefix="/promo" />
    </intent-filter>
</activity>

Processamento do link no código

Após configurar o intent-filter, você precisa processar o Dynamic Link recebido no código da Activity. A API FirebaseDynamicLinks recebe o link do intent e retorna um objeto PendingDynamicLinkData com os parâmetros extraídos. O método getLink retorna o link profundo de destino, que pode ser analisado e usado para navegação. É importante processar o link tanto na inicialização a frio (via getIntent em onCreate) quanto na inicialização a quente (via onNewIntent).

Integração de Dynamic Links no iOS

Configurar Dynamic Links no iOS requer configuração tanto no lado do Firebase quanto no projeto Xcode. Você precisa carregar uma chave APNs no Firebase Console, adicionar o Firebase SDK via Swift Package Manager ou CocoaPods e configurar o App Delegate para processar Universal Links. Dynamic Links no iOS usam Universal Links para transição perfeita entre o navegador e o aplicativo sem uma página intermediária.

Configurar Universal Links

Universal Links é uma tecnologia da Apple que conecta seu domínio a um aplicativo móvel. O arquivo apple-app-site-association (AASA) é carregado no servidor em https://your-app.page.link/apple-app-site-association. O Firebase cria e mantém automaticamente este arquivo para seu domínio Dynamic Links. No Xcode, você precisa habilitar Associated Domains e especificar applinks:your-app.page.link nas Capacidades do projeto.

Processamento do link através do Firebase SDK

Para iOS, o processamento de Dynamic Links é feito através do Firebase SDK no App Delegate ou Scene Delegate. O método application:continueUserActivity: intercepta o Universal Link recebido e o passa para a API do Firebase Dynamic Links, que extrai o link de destino e os parâmetros. O Firebase SDK lida automaticamente com Deferred Deep Links solicitando dados de instalação através do armazenamento de curto prazo da Firebase Installation API.

swift
import FirebaseDynamicLinks

class AppDelegate: UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        continue userActivity: NSUserActivity,
        restorationHandler: @escaping
            ([UIUserActivityRestoring]?) -> Void
    ) -> Bool {
        return DynamicLinks.dynamicLinks()
            .handleUniversalLink(userActivity.webpageURL!) {
                dynamicLink, error in
                if let link = dynamicLink?.url {
                    self.handleDeepLink(link)
                }
            }
    }
}

Exemplo de implementação em Kotlin

Vamos ver um exemplo completo de processamento de um Dynamic Link em um aplicativo Android usando Kotlin. MainActivity lê o Dynamic Link recebido tanto na inicialização a frio quanto a quente do aplicativo. O link é analisado em parâmetros que são usados para navegação até a tela desejada com os argumentos passados. O exemplo mostra o processamento de um link para uma página de promoção com um identificador de campanha promocional.

kotlin
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        handleDynamicLink(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleDynamicLink(intent)
    }

    private fun handleDynamicLink(intent: Intent) {
        FirebaseDynamicLinks.getInstance()
            .getDynamicLink(intent)
            .addOnSuccessListener { data ->
                val deepLink = data?.link ?: return@addOnSuccessListener
                val promoId = deepLink
                    .getQueryParameter("promoId") ?: ""
                if (promoId.isNotEmpty()) {
                    navigateToPromoScreen(promoId)
                }
            }
            .addOnFailureListener { e ->
                Log.e("DL", "Erro ao processar o link", e)
            }
    }
}

Testar Dynamic Links

Para testar Dynamic Links, o Firebase Console é usado, onde você pode criar um link de teste e enviá-lo para um dispositivo via messenger ou email. O depurador do Firebase Dynamic Links está disponível em https://your-app.page.link/?d=1 e exibe informações detalhadas sobre o comportamento do link. Ao testar Deferred Deep Links, você precisa garantir que o aplicativo esteja desinstalado e, após a instalação, o link leve à tela correta com os parâmetros passados.

Perguntas frequentes

Qual é a diferença entre Dynamic Links e links profundos comuns?

Links profundos comuns funcionam apenas quando o aplicativo está instalado e não preservam o contexto após a instalação. Dynamic Links suportam Deferred Deep Linking — o usuário instala o aplicativo e imediatamente chega à tela de destino com os parâmetros do link preservados.

Preciso de um servidor para Dynamic Links funcionarem?

Nenhum servidor é necessário para criar e processar links — todas as operações são realizadas através do Firebase Console, REST API ou Firebase SDK no lado do cliente. Para geração em massa de links, a REST API é recomendada, mas o console é adequado para criação manual.

Quanto tempo vive um Dynamic Link?

Dynamic Links não têm data de expiração — são armazenados no Firebase para sempre, a menos que sejam excluídos manualmente. Links curtos com o sufixo UNIQUE existem indefinidamente. Recomenda-se criar links únicos para cada campanha para atribuição precisa.

Dynamic Links funcionam sem internet?

Processar um Dynamic Link requer uma conexão com a internet na etapa do clique porque o servidor Firebase verifica o estado de instalação do aplicativo. Após o processamento do link, os dados são passados para o aplicativo via intent ou Universal Link e ficam disponíveis mesmo offline.

Quanto custam os Firebase Dynamic Links?

Firebase Dynamic Links são gratuitos no plano Spark. No plano Blaze, há um limite de 50K cliques por dia por projeto sem custo adicional. Exceder o limite bloqueia a criação de novos links até o dia seguinte.

Resumo

  • Firebase Dynamic Links — links inteligentes que levam o usuário ao aplicativo ou site, e quando o aplicativo está ausente — à loja com contexto preservado após a instalação.
  • Deferred Deep Linking — a principal vantagem que permite passar contexto (código promocional, convite, link de produto) no primeiro lançamento após a instalação.
  • Estrutura do link inclui um domínio base (your-app.page.link), parâmetros de link profundo, configurações de plataforma e metadados sociais para pré-visualização.
  • Criação de links é feita através do Firebase Console, REST API ou Firebase SDK com suporte para tags UTM para integração com Google Analytics.
  • Integração no Android requer configurar um intent-filter no AndroidManifest e processamento através da API FirebaseDynamicLinks com suporte para inicialização a frio e a quente.
  • Integração no iOS usa Universal Links com arquivo AASA, Associated Domains e processamento através do DynamicLinks SDK no AppDelegate ou SceneDelegate.
  • Grátis até 50K cliques por dia, sem expiração de links, com a capacidade de criar um domínio personalizado para personalização de links.

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