Firebase Dynamic Links: co to je, vytváření odkazů a integrace

Autor: IT Sectr Publikováno: 2026-04-29 Doba čtení: 9 min

Firebase Dynamic Links je služba Google pro vytváření chytrých odkazů, které vedou uživatele na správné místo v mobilní aplikaci nebo na webu, v závislosti na tom, zda je aplikace v zařízení nainstalována. Dynamic Links uchovávají kontext přechodu i při prvním spuštění po instalaci z obchodu s aplikacemi. Podle Firebase Documentation, 2026 jsou dynamické odkazy zpracovávány jednotným API, které automaticky určuje chování: otevření aplikace, přechod na web nebo instalaci aplikace. Služba je nepostradatelná pro doporučovací programy, scénáře onboardingu a marketingové kampaně.

Hlavní body

  • Dynamic Links — chytré odkazy, které automaticky určují, zda je třeba nainstalovat aplikaci nebo otevřít již nainstalovanou na správné obrazovce.
  • Deferred Deep Linking — uchování kontextu přechodu při prvním spuštění po instalaci: uživatel vidí cílovou obrazovku, nikoli hlavní.
  • Doména odkazů — vlastní doména ve tvaru your-app.page.link, kterou lze označit značkou ve Firebase Console.
  • Zpracování na straně klienta — odkazy jsou zpracovávány přes Firebase Dynamic Links SDK pro Android a iOS s předáváním argumentů do intent nebo scene.
  • Analytika — Firebase automaticky shromažďuje statistiky kliknutí, instalací a přechodů prostřednictvím Dynamic Links.

Firebase Dynamic Links je technologie Google, která vytváří jediný odkaz vedoucí k požadovanému obsahu v mobilní aplikaci nebo na webu, přičemž přizpůsobuje chování v závislosti na platformě a stavu instalace. Odkaz kontroluje, zda je aplikace v zařízení nainstalována: pokud ano — otevře ji s předáním parametrů, pokud ne — nasměruje do Google Play nebo App Store k instalaci a po instalaci přesměruje na cílovou obrazovku.

Klíčová vlastnost: Deferred Deep Linking

Hlavní výhoda Dynamic Links oproti běžným deep linkům je podpora odložených hlubokých odkazů. Deferred Deep Linking znamená, že kontext přechodu (parametry odkazu) je uchován, i když aplikace ještě není nainstalována. Když uživatel nainstaluje aplikaci z obchodu, Dynamic Links SDK přečte uložený kontext a předá jej na příslušnou obrazovku. Bez této technologie by uživatel po instalaci jednoduše skončil na hlavní obrazovce a ztratil by promo kód, pozvánku nebo odkaz na konkrétní objednávku.

Oblasti použití

Dynamic Links se používají v doporučovacích programech k získávání nových uživatelů s vazbou na účet zvoucího. Marketingové kampaně s přechody z e-mailových newsletterů a sociálních sítí využívají Dynamic Links k přesnému měření konverze. Ve scénářích onboardingu odkaz vede nového uživatele na uvítací obrazovku s personalizovaným obsahem. V e-commerce odkazy na produkty uchovávají kontext a vedou na kartu produktu i při prvním spuštění po instalaci.

Mechanismus fungování Dynamic Links se skládá z několika fází, z nichž každá se může lišit v závislosti na stavu aplikace. Když uživatel klikne na dynamický odkaz, prohlížeč odešle požadavek na server Firebase. Firebase zkontroluje, zda je aplikace nainstalována, pomocí ověření intent-filter nebo universal link. Pokud je aplikace nainstalována, Firebase ji otevře s předáním hlubokého odkazu. Pokud ne — přesměruje na stránku obchodu nebo webovou verzi.

Anatomie dynamického odkazu

Standardní Dynamic Link se skládá ze základní URL, parametrů odkazu a volitelných marketingových tagů. Základní URL je doména ve tvaru your-app.page.link registrovaná ve Firebase Console. Parametry hlubokého odkazu se nastavují pomocí query parametrů: link (cílová URL v aplikaci), apn (Android Package Name), ibi (iOS Bundle ID), st a sd (název a popis pro náhled na sociálních sítích). Marketingové tagy utm_source, utm_medium, utm_campaign se předávají do Google Analytics pro sledování.

ParametrPopisPříklad
linkCílový hluboký odkazhttps://yourapp.page.link/product/123
apnAndroid Package Namecom.example.myapp
ibiiOS Bundle IDcom.example.myapp.ios
stSociální názevSpeciální nabídka
sdSociální popisSleva 30 % na první objednávku

Firebase Console poskytuje vizuální rozhraní pro vytváření Dynamic Links v sekci Engage > Dynamic Links. V konzoli lze nastavit všechny parametry odkazu včetně hlubokého odkazu, chování na webu, sociálních metadat a UTM tagů. Po vytvoření odkazu konzole poskytne hotovou URL a také statistiky kliknutí a přechodů. Pro hromadné vytváření odkazů se používá REST API Firebase Dynamic Links s ověřováním OAuth 2.0.

Vytvoření odkazu přes REST API

Pro programové vytváření Dynamic Links se používá požadavek POST na Firebase Dynamic Links API. Tělo požadavku obsahuje dynamicLinkInfo s parametry hlubokého odkazu, nastavením platformy a sociálními metadaty. API vrací hotovou URL ve tvaru https://your-app.page.link/abc123. Pro dlouhodobé odkazy se používá suffix.option = UNIQUE — krátké odkazy s jedinečnou příponou. Pro dočasné odkazy — SHORT, s možností kolizí.

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: "Letní akce",
            socialDescription: "Slevy až 50 % do konce měsíce"
        }
    },
    suffix: { option: "UNIQUE" }
}

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

Krátké odkazy a UTM tagy

Dynamic Links automaticky generují krátké URL o délce 6–8 znaků za doménou, což je činí vhodnými pro použití v SMS a sociálních sítích. Parametry UTM se přidávají pomocí pole utmParameters nebo přímo do parametru odkazu. Firebase automaticky propojuje kliknutí na Dynamic Links s Google Analytics pro Firebase, což umožňuje sledování doporučujícího provozu a atribuci kampaní.

Integrace Dynamic Links v Androidu

Konfigurace Dynamic Links v Androidu zahrnuje přidání Firebase SDK, konfiguraci intent-filter pro aktivitu, která přijímá hluboké odkazy, a zpracování odkazů přes Firebase Dynamic Links SDK. Po instalaci SDK a přidání google-services.json je třeba zaregistrovat aktivitu v AndroidManifest.xml s intent-filter pro zpracování odkazů z domény aplikace.

Konfigurace intent-filter v AndroidManifest

Aktivita, která zpracovává Dynamic Links, musí mít intent-filter pro akci VIEW a kategorie DEFAULT a BROWSABLE. AndroidManifest.xml obsahuje tag data s android:scheme, android:host a android:pathPrefix odpovídajícími vašemu hlubokému odkazu. Pro zpracování odkazů z domény page.link se také přidává intent-filter se schématem https a hostem vaší domény 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>

Zpracování odkazu v kódu

Po konfiguraci intent-filter je třeba zpracovat příchozí Dynamic Link v kódu aktivity. FirebaseDynamicLinks API získá odkaz z intentu a vrátí objekt PendingDynamicLinkData s extrahovanými parametry. Metoda getLink vrací cílový hluboký odkaz, který lze analyzovat a použít pro navigaci. Je důležité zpracovat odkaz jak při studeném startu (přes getIntent v onCreate), tak při teplém startu (přes onNewIntent).

Integrace Dynamic Links v iOS

Konfigurace Dynamic Links v iOS vyžaduje konfiguraci jak na straně Firebase, tak v projektu Xcode. Je třeba nahrát APNs klíč do Firebase Console, přidat Firebase SDK přes Swift Package Manager nebo CocoaPods a nakonfigurovat App Delegate pro zpracování Universal Links. Dynamic Links v iOS používají Universal Links pro plynulý přechod mezi prohlížečem a aplikací bez mezistránky.

Konfigurace Universal Links

Universal Links jsou technologie Apple, která propojuje vaši doménu s mobilní aplikací. Soubor apple-app-site-association (AASA) se nahrává na server na adresu https://your-app.page.link/apple-app-site-association. Firebase automaticky vytváří a udržuje tento soubor pro vaši doménu Dynamic Links. V Xcode je třeba povolit Associated Domains a uvést applinks:your-app.page.link v Capabilities projektu.

Zpracování odkazu přes Firebase SDK

Pro iOS se zpracování Dynamic Links provádí přes Firebase SDK v App Delegate nebo Scene Delegate. Metoda application:continueUserActivity: zachytí příchozí Universal Link a předá jej Firebase Dynamic Links API, které extrahuje cílový odkaz a parametry. Firebase SDK automaticky zpracovává Deferred Deep Links, přičemž vyžaduje data o instalaci prostřednictvím krátkodobého úložiště 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)
                }
            }
    }
}

Příklad implementace v Kotlinu

Podívejme se na úplný příklad zpracování Dynamic Link v Android aplikaci v Kotlinu. MainActivity čte příchozí Dynamic Link jak při studeném, tak při teplém startu aplikace. Odkaz je rozložen na parametry, které se používají pro navigaci na příslušnou obrazovku s předáním argumentů. Příklad ukazuje zpracování odkazu na promo stránku s identifikátorem promoce.

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", "Chyba zpracování odkazu", e)
            }
    }
}

Testování Dynamic Links

Pro testování Dynamic Links se používá Firebase Console, kde lze vytvořit testovací odkaz a odeslat jej na zařízení přes messenger nebo e-mail. Firebase Dynamics Links Debugger je k dispozici na URL https://your-app.page.link/?d=1 a zobrazuje podrobné informace o chování odkazu. Při testování Deferred Deep Links je třeba se ujistit, že aplikace je odstraněna, a po instalaci odkaz vede na správnou obrazovku s předanými parametry.

Často kladené otázky

Jaký je rozdíl mezi Dynamic Links a běžnými deep links?

Běžné deep links fungují pouze při nainstalované aplikaci a neuchovávají kontext po instalaci. Dynamic Links podporují Deferred Deep Linking — uživatel nainstaluje aplikaci a okamžitě se dostane na cílovou obrazovku s uloženými parametry odkazu.

Je potřeba server pro fungování Dynamic Links?

Server není vyžadován pro vytváření a zpracování odkazů — všechny operace se provádějí přes Firebase Console, REST API nebo Firebase SDK na klientovi. Pro hromadné generování odkazů se doporučuje REST API, ale konzole je vhodná pro ruční vytváření.

Jak dlouho žije Dynamic Link?

Dynamic Links nemají datum vypršení — jsou uloženy ve Firebase navždy, pokud nejsou ručně smazány. Krátké odkazy s příponou UNIQUE existují neomezeně. Doporučuje se vytvářet jedinečné odkazy pro každou kampaň pro přesnou atribuci.

Fungují Dynamic Links bez internetu?

Pro zpracování Dynamic Link je vyžadováno internetové připojení ve fázi kliknutí, protože server Firebase kontroluje stav instalace aplikace. Po zpracování odkazu jsou data předána do aplikace přes intent nebo Universal Link a jsou dostupná i bez sítě.

Kolik stojí Firebase Dynamic Links?

Firebase Dynamic Links jsou zdarma v rámci plánu Spark. V plánu Blaze platí limit 50 tisíc kliknutí denně na projekt bez dalších poplatků. Překročení limitu blokuje vytváření nových odkazů do následujícího dne.

Shrnutí

  • Firebase Dynamic Links — chytré odkazy, které vedou uživatele do aplikace nebo na web, a při neexistenci aplikace do obchodu s uchováním kontextu po instalaci.
  • Deferred Deep Linking — klíčová výhoda umožňující předání kontextu (promo kód, pozvánka, odkaz na produkt) při prvním spuštění po instalaci.
  • Struktura odkazu zahrnuje základní doménu (your-app.page.link), parametry hlubokého odkazu, nastavení platformy a sociální metadata pro náhled.
  • Vytváření odkazů se provádí přes Firebase Console, REST API nebo Firebase SDK s podporou UTM tagů pro integraci s Google Analytics.
  • Integrace v Androidu vyžaduje konfiguraci intent-filter v AndroidManifest a zpracování přes FirebaseDynamicLinks API s podporou studeného a teplého startu.
  • Integrace v iOS používá Universal Links se souborem AASA, Associated Domains a zpracováním přes DynamicLinks SDK v AppDelegate nebo SceneDelegate.
  • Zdarma až 50 tisíc kliknutí denně, bez vypršení platnosti odkazů, s možností vytvoření vlastní domény pro značkové odkazy.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také