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
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.
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.
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.
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í.
| Parametr | Popis | Příklad |
|---|---|---|
| link | Cílový hluboký odkaz | https://yourapp.page.link/product/123 |
| apn | Android Package Name | com.example.myapp |
| ibi | iOS Bundle ID | com.example.myapp.ios |
| st | Sociální název | Speciální nabídka |
| sd | Sociální popis | Sleva 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.
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í.
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))
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í.
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.
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.
<!-- 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>
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).
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.
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.
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.
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)
}
}
}
}
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.
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)
}
}
}
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
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.
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í.
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.
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ě.
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í
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í.
Přečtěte si také