Firebase Dynamic Links: ce este, crearea linkurilor și integrarea

Autor: IT Sectr Publicat: 2026-04-29 Timp de citire: 9 min

Firebase Dynamic Links este serviciul Google pentru crearea de linkuri inteligente care conduc utilizatorul în locul potrivit din aplicația mobilă sau pe site, în funcție de faptul dacă aplicația este instalată pe dispozitiv. Dynamic Links păstrează contextul tranziției chiar și la prima lansare după instalarea din magazinul de aplicații. Conform Firebase Documentation, 2026, linkurile dinamice sunt procesate într-un API unic care determină automat comportamentul: deschiderea aplicației, navigarea pe site sau instalarea aplicației. Serviciul este indispensabil pentru programe de recomandare, scenarii de onboarding și campanii de marketing.

Principalele puncte

  • Dynamic Links — linkuri inteligente care determină automat dacă trebuie instalată aplicația sau deschisă cea deja instalată pe ecranul potrivit.
  • Deferred Deep Linking — păstrarea contextului tranziției la prima lansare după instalare: utilizatorul vede ecranul țintă, nu pe cel principal.
  • Domeniul linkurilor — un domeniu personalizat de tip your-app.page.link care poate fi brandingat în Firebase Console.
  • Procesare pe partea clientului — linkurile sunt procesate prin Firebase Dynamic Links SDK pentru Android și iOS cu transmiterea argumentelor în intent sau scene.
  • Analitică — Firebase colectează automat statistici privind clicurile, instalările și tranzițiile prin Dynamic Links.

Firebase Dynamic Links este tehnologia Google care creează un singur link ce duce la conținutul dorit în aplicația mobilă sau pe site, adaptând comportamentul în funcție de platformă și starea instalării. Linkul verifică dacă aplicația este instalată pe dispozitiv: dacă da — o deschide cu transmiterea parametrilor, dacă nu — direcționează către Google Play sau App Store pentru instalare, iar după instalare redirecționează către ecranul țintă.

Caracteristica cheie: Deferred Deep Linking

Principalul avantaj al Dynamic Links față de linkurile profunde obișnuite este suportul pentru linkurile profunde amânate. Deferred Deep Linking înseamnă că contextul tranziției (parametrii linkului) se păstrează chiar dacă aplicația nu este încă instalată. Când utilizatorul instalează aplicația din magazin, Dynamic Links SDK citește contextul salvat și îl transmite către ecranul potrivit. Fără această tehnologie, utilizatorul după instalare ar ajunge pur și simplu pe ecranul principal, pierzând codul promoțional, invitația sau linkul către o comandă specifică.

Domenii de aplicare

Dynamic Links sunt utilizate în programele de recomandare pentru atragerea de noi utilizatori cu legare la contul celui care invită. Campaniile de marketing cu tranziții din newslettere și rețele sociale folosesc Dynamic Links pentru măsurarea precisă a conversiei. În scenariile de onboarding, linkul duce noul utilizator către un ecran de bun venit cu conținut personalizat. În e-commerce, linkurile către produse păstrează contextul și duc la fișa produsului chiar și la prima lansare după instalare.

Mecanismul de funcționare al Dynamic Links constă din mai multe etape, fiecare putând varia în funcție de starea aplicației. Când utilizatorul face clic pe un link dinamic, browserul trimite o cerere către serverul Firebase. Firebase verifică dacă aplicația este instalată prin intermediul verificării intent-filter sau universal link. Dacă aplicația este instalată, Firebase o deschide cu transmiterea linkului profund. Dacă nu — redirecționează către pagina magazinului sau versiunea web.

Anatomia unui link dinamic

Un Dynamic Link standard constă dintr-un URL de bază, parametrii linkului și taguri de marketing opționale. URL-ul de bază este un domeniu de tip your-app.page.link, înregistrat în Firebase Console. Parametrii linkului profund sunt specificați prin parametrii de query: link (URL-ul țintă din aplicație), apn (Android Package Name), ibi (iOS Bundle ID), st și sd (titlul și descrierea pentru previzualizarea socială). Tagurile de marketing utm_source, utm_medium, utm_campaign sunt transmise către Google Analytics pentru urmărire.

ParametruDescriereExemplu
linkLinkul profund țintăhttps://yourapp.page.link/product/123
apnAndroid Package Namecom.example.myapp
ibiiOS Bundle IDcom.example.myapp.ios
stTitlu socialOfertă specială
sdDescriere socialăReducere 30% la prima comandă

Firebase Console oferă o interfață vizuală pentru crearea Dynamic Links în secțiunea Engage > Dynamic Links. În consolă se pot seta toți parametrii linkului, inclusiv linkul profund, comportamentul web, metadatele sociale și tagurile UTM. După crearea linkului, consola oferă URL-ul gata pregătit, precum și statistici privind clicurile și tranzițiile. Pentru crearea în masă a linkurilor se utilizează REST API Firebase Dynamic Links cu autentificare OAuth 2.0.

Crearea linkului prin REST API

Pentru crearea programatică a Dynamic Links se utilizează o cerere POST către Firebase Dynamic Links API. Corpul cererii conține dynamicLinkInfo cu parametrii linkului profund, setările platformei și metadatele sociale. API returnează un URL gata pregătit de tipul https://your-app.page.link/abc123. Pentru linkurile de lungă durată se utilizează suffix.option = UNIQUE — linkuri scurte cu sufix unic. Pentru linkurile temporare — SHORT, cu posibilitatea de coliziuni.

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ție de vară",
            socialDescription: "Reduceri de până la 50% până la sfârșitul lunii"
        }
    },
    suffix: { option: "UNIQUE" }
}

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

Linkuri scurte și taguri UTM

Dynamic Links generează automat URL-uri scurte cu lungimea de 6–8 caractere după domeniu, făcându-le potrivite pentru utilizare în SMS și rețele sociale. Parametrii UTM se adaugă prin câmpul utmParameters sau direct în parametrul link. Firebase leagă automat clicurile Dynamic Links de Google Analytics pentru Firebase, permițând urmărirea traficului de recomandare și atribuirea campaniilor.

Integrarea Dynamic Links în Android

Configurarea Dynamic Links în Android include adăugarea Firebase SDK, configurarea intent-filter pentru activitatea care primește linkuri profunde și procesarea linkurilor prin Firebase Dynamic Links SDK. După instalarea SDK și adăugarea google-services.json, trebuie înregistrată activitatea în AndroidManifest.xml cu intent-filter pentru procesarea linkurilor de pe domeniul aplicației.

Configurarea intent-filter în AndroidManifest

Activitatea care procesează Dynamic Links trebuie să aibă intent-filter pentru acțiunea VIEW și categoriile DEFAULT și BROWSABLE. AndroidManifest.xml include tagul data cu android:scheme, android:host și android:pathPrefix corespunzătoare linkului profund. Pentru procesarea linkurilor de pe domeniul page.link se adaugă și un intent-filter cu schema https și hostul domeniului 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>

Procesarea linkului în cod

După configurarea intent-filter, trebuie procesat Dynamic Link-ul primit în codul activității. FirebaseDynamicLinks API preia linkul din intent și returnează un obiect PendingDynamicLinkData cu parametrii extrași. Metoda getLink returnează linkul profund țintă care poate fi analizat și utilizat pentru navigare. Este important să se proceseze linkul atât la pornirea rece (prin getIntent în onCreate), cât și la pornirea caldă (prin onNewIntent).

Integrarea Dynamic Links în iOS

Configurarea Dynamic Links în iOS necesită configurare atât pe partea Firebase, cât și în proiectul Xcode. Trebuie încărcată cheia APNs în Firebase Console, adăugat Firebase SDK prin Swift Package Manager sau CocoaPods și configurat App Delegate pentru procesarea Universal Links. Dynamic Links în iOS utilizează Universal Links pentru tranziția transparentă între browser și aplicație fără pagină intermediară.

Configurarea Universal Links

Universal Links sunt tehnologia Apple care leagă domeniul de aplicația mobilă. Fișierul apple-app-site-association (AASA) este încărcat pe server la adresa https://your-app.page.link/apple-app-site-association. Firebase creează și menține automat acest fișier pentru domeniul Dynamic Links. În Xcode trebuie activate Associated Domains și specificat applinks:your-app.page.link în Capabilities ale proiectului.

Procesarea linkului prin Firebase SDK

Pentru iOS, procesarea Dynamic Links se efectuează prin Firebase SDK în App Delegate sau Scene Delegate. Metoda application:continueUserActivity: interceptează Universal Link-ul primit și îl transmite Firebase Dynamic Links API, care extrage linkul țintă și parametrii. Firebase SDK procesează automat Deferred Deep Links, solicitând datele de instalare prin stocarea pe termen scurt 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)
                }
            }
    }
}

Exemplu de implementare în Kotlin

Să analizăm un exemplu complet de procesare a Dynamic Link într-o aplicație Android în Kotlin. MainActivity citește Dynamic Link-ul primit atât la pornirea rece, cât și la pornirea caldă a aplicației. Linkul este descompus în parametri care sunt utilizați pentru navigarea către ecranul potrivit cu transmiterea argumentelor. Exemplul arată procesarea linkului către pagina de promoție cu identificatorul promoției.

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", "Eroare la procesarea linkului", e)
            }
    }
}

Testarea Dynamic Links

Pentru testarea Dynamic Links se utilizează Firebase Console, unde se poate crea un link de test și trimite pe dispozitiv prin mesager sau email. Firebase Dynamics Links Debugger este disponibil la URL-ul https://your-app.page.link/?d=1 și afișează informații detaliate despre comportamentul linkului. La testarea Deferred Deep Links trebuie să vă asigurați că aplicația este ștearsă, iar după instalare linkul duce la ecranul corect cu parametrii transmiși.

Întrebări frecvente

Care este diferența dintre Dynamic Links și linkurile profunde obișnuite?

Linkurile profunde obișnuite funcționează doar când aplicația este instalată și nu păstrează contextul după instalare. Dynamic Links suportă Deferred Deep Linking — utilizatorul instalează aplicația și ajunge imediat pe ecranul țintă cu parametrii linkului salvați.

Este necesar un server pentru funcționarea Dynamic Links?

Serverul nu este necesar pentru crearea și procesarea linkurilor — toate operațiunile se efectuează prin Firebase Console, REST API sau Firebase SDK pe client. Pentru generarea în masă a linkurilor se recomandă REST API, dar consola este potrivită pentru crearea manuală.

Cât timp trăiește un Dynamic Link?

Dynamic Links nu au dată de expirare — sunt stocate în Firebase pe termen nelimitat dacă nu sunt șterse manual. Linkurile scurte cu sufix UNIQUE există pe termen nelimitat. Se recomandă crearea de linkuri unice pentru fiecare campanie pentru o atribuire precisă.

Funcționează Dynamic Links fără internet?

Pentru procesarea Dynamic Link este necesară conexiunea la internet în etapa de clic, deoarece serverul Firebase verifică starea instalării aplicației. După procesarea linkului, datele sunt transmise în aplicație prin intent sau Universal Link și devin disponibile și fără rețea.

Cât costă Firebase Dynamic Links?

Firebase Dynamic Links sunt gratuite în cadrul planului Spark. În planul Blaze există un plafon de 50K clicuri pe zi per proiect fără taxă suplimentară. Depășirea plafonului blochează crearea de noi linkuri până în ziua următoare.

Rezumat

  • Firebase Dynamic Links — linkuri inteligente care conduc utilizatorul către aplicație sau site, iar în lipsa aplicației — către magazin cu păstrarea contextului după instalare.
  • Deferred Deep Linking — avantajul cheie care permite transmiterea contextului (cod promoțional, invitație, link către produs) la prima lansare după instalare.
  • Structura linkului include domeniul de bază (your-app.page.link), parametrii linkului profund, setările platformei și metadatele sociale pentru previzualizare.
  • Crearea linkurilor se efectuează prin Firebase Console, REST API sau Firebase SDK cu suport pentru taguri UTM pentru integrarea cu Google Analytics.
  • Integrarea în Android necesită configurarea intent-filter în AndroidManifest și procesarea prin FirebaseDynamicLinks API cu suport pentru pornire rece și caldă.
  • Integrarea în iOS utilizează Universal Links cu fișierul AASA, Associated Domains și procesarea prin DynamicLinks SDK în AppDelegate sau SceneDelegate.
  • Gratuit până la 50K clicuri pe zi, fără dată de expirare a linkurilor, cu posibilitatea creării unui domeniu personalizat pentru brandingul linkurilor.

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și