Firebase Dynamic Links: co to je, jak funguje a používá se ve vývoji

Autor: IT Sectr Publikováno: 2026-05-14 Doba čtení: 8 min

Firebase Dynamic Links je služba Google pro vytváření chytrých odkazů, které nasměrují uživatele na správné místo v aplikaci bez ohledu na to, zda je aplikace nainstalovaná či nikoliv. Podle Firebase Documentation Dynamic Links automaticky přesměrují uživatele do App Store nebo Google Play, pokud aplikace chybí, a obnoví kontext přechodu po instalaci. Smart-odkazy Firebase řeší problém URL Scheme, který nefunguje s neinstalovanými aplikacemi.

Hlavní body

  • Firebase Dynamic Links — služba Google pro vytváření univerzálních odkazů fungujících na iOS a Androidu s podporou deferred deep link.
  • Deferred — hlavní výhoda: odkaz uchovává kontext přechodu, i když aplikace není nainstalovaná, a obnoví jej po instalaci.
  • Analytika — Firebase automaticky sleduje přechody přes Dynamic Links a poskytuje data v Firebase Analytics a Google Analytics.
  • Platformy — Dynamic Links fungují na iOS (přes Universal Links) a Androidu (přes App Links) s jediným univerzálním odkazem pro obě platformy.
  • Vytváření — odkazy jsou generovány přes Firebase Console, REST API nebo SDK na klientovi s nastavením chování pro každý scénář.

Firebase Dynamic Links je cloudová služba od Google, která vytváří jednotné univerzální odkazy pro mobilní aplikace na iOS a Androidu. Dynamický odkaz obsahuje hluboký odkaz na obsah uvnitř aplikace, ale chová se jako běžný HTTPS odkaz: pokud je aplikace nainstalovaná, otevře ji přímo, pokud ne — přesměruje do obchodu s aplikacemi.

Na rozdíl od běžných URL Scheme mohou Dynamic Links pracovat s neinstalovanými aplikacemi díky technologii deferred deep link. Když uživatel nainstaluje aplikaci po kliknutí na odkaz, Firebase uloží parametry přechodu a předá je při prvním spuštění. To otevírá možnosti pro doporučovací programy, marketingové kampaně a pozvánky.

Rozdíl oproti běžným URL Scheme

URL Scheme vyžadují nainstalovanou aplikaci a nemají standardní mechanismus fallback. Firebase Dynamic Links řeší tento problém prostřednictvím zprostředkující webové služby Firebase, která určí stav instalace aplikace na zařízení a správně uživatele nasměruje. Jeden odkaz funguje stejně na obou platformách.

Firebase Dynamic Link používá doménu ve tvaru yourcode.page.link, která je zaregistrována ve Firebase Console. Když uživatel přejde přes takový odkaz, Firebase určí typ zařízení a stav instalace aplikace. Pro iOS se používá mechanismus Universal Links, pro Android — App Links s automatickým ověřením prostřednictvím Digital Asset Links.

Proces zpracování zahrnuje několik po sobě jdoucích fází: při kliknutí na odkaz prohlížeč odešle požadavek GET na server Firebase, server určí platformu a zkontroluje přítomnost aplikace na zařízení. Pokud je aplikace nainstalovaná — vygeneruje se přesměrování na Universal Link nebo Intent s parametry pro otevření cílové obrazovky. Pokud aplikace není nainstalovaná — přesměrování do App Store nebo Google Play pro stažení.

Životní cyklus Dynamic Link

Aplikace obdrží odkaz ve fázi inicializace Firebase SDK. Metoda getDynamicLink() vrací PendingResult s daty o přechodu. Po úspěšném přijetí jsou z odkazu extrahovány parametry deep link, UTM značky pro analytiku a libovolná data předaná při vytváření odkazu.

Firebase Console poskytuje vizuální rozhraní pro vytváření Dynamic Links. Vývojář zadá hluboký odkaz (deep link URL), název kampaně, nastavení pro iOS a Android samostatně a parametry analytiky. Po vytvoření Firebase vygeneruje krátký odkaz ve tvaru https://yourcode.page.link/abc123, který lze použít v reklamních materiálech, e-mailových kampaních a sociálních sítích.

Pro programové vytváření Dynamic Links se používá Firebase REST API nebo klientský SDK. REST API umožňuje hromadné generování odkazů pro marketingové kampaně s vlastními parametry, včetně odkazu pro sociální sítě a asynchronní analytiky přechodů. Při vytváření odkazů přes API je důležité správně uvést parametry socialMetaTagInfo — ty určují, jak se odkaz zobrazuje při sdílení v messengerech a sociálních sítích s kartou náhledu.

Parametry Dynamic Link

ParametrÚčelPovinnost
Deep Link URLInterní odkaz na obsah aplikaceAno
iOS Bundle IDIdentifikátor aplikace v App StorePro iOS
Android Package NameNázev balíčku v Google PlayPro Android
Fallback URLWebová stránka při absenci aplikaceNe
UTM značkyParametry pro Google AnalyticsNe

Pro práci s Firebase Dynamic Links na iOS je třeba připojit Firebase SDK přes CocoaPods nebo Swift Package Manager, nakonfigurovat Info.plist s GOOGLE_APP_ID a zaregistrovat doménu Dynamic Links v Associated Domains projektu. Poté aplikace automaticky zpracovává Universal Links vygenerované Firebase.

V Xcode je třeba přidat capability Associated Domains se zápisem ve tvaru applinks:yourcode.page.link. Firebase SDK používá metodu application(_:continue:restorationHandler:) pro zpracování Universal Links, takže další integrace s AppDelegate není nutná — Firebase automaticky extrahuje parametry Dynamic Link z User Activity.

Nastavení v Xcode

Příklad konfigurace Info.plist pro správnou inicializaci Firebase a registraci handleru Dynamic Links. Klíč FIROptions musí obsahovat identifikátor projektu GoogleService-Info.plist.

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

Pokud je AppDelegate proxy vypnutý, je třeba ručně zavolat metodu handleUniversalLink(_:) a předat User Activity z continue NSUserActivity. Firebase SDK automaticky extrahuje parametry odkazu a vrátí DynamicLink přes completion handler.

Na Androidu začíná integrace Firebase Dynamic Links přidáním závislostí v build.gradle a souboru google-services.json z Firebase Console. Doména Dynamic Links se zaregistruje ve Firebase Console, poté jsou všechny odkazy s touto doménou automaticky rozpoznávány aplikací pro Android přes Intent Filter s akcí VIEW. Pro správnou funkci je třeba také přidat plugin Google Services do kořenového a modulového build.gradle a provést synchronizaci Gradle.

Pro správné zpracování odkazů na Androidu je třeba přidat Intent Filter pro doménu Dynamic Links do Activity, která má přijímat příchozí odkazy. Filtr musí obsahovat schéma https, host vaší domény Dynamic Links a výchozí cestu.

Intent Filter pro Dynamic Links

Příklad Intent Filter v AndroidManifest.xml pro příjem Dynamic Links na doméně 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>

Je důležité nastavit launchMode na singleTask pro Activity, která přijímá Dynamic Links. To zabraňuje vytváření nové instance Activity při opakovaném přechodu přes odkaz a umožňuje správné zpracování všech příchozích deep linků v jedné instanci.

Firebase SDK pro Android poskytuje metodu FirebaseDynamicLinks.getInstance().getDynamicLink(intent), která vrací objekt PendingTask s daty o odkazu. Z objektu DynamicLink se extrahuje hluboké URI, parametry UTM a časové razítko přechodu. Zpracování se doporučuje provádět v metodách onCreate() a onNewIntent() Activity.

Při zpracování je důležité vzít v úvahu, že Dynamic Link může být přijat jak při spuštění aplikace ze studeného stavu (cold start), tak při přechodu z jiné aplikace do již spuštěné aplikace. Pro druhý případ je třeba přepsat onNewIntent() a znovu zavolat kontrolu Dynamic Link.

Zpracování v kódu Kotlin

Příklad příjmu a zpracování Firebase Dynamic Link v MainActivity. Kód zpracovává jak cold start, tak přechod z jiné aplikace.

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)
            }
    }
}

Metoda addOnSuccessListener vrací DynamicLink, ze kterého se extrahuje cílový odkaz přes link?.link. Pokud listener vrátí null, znamená to, že Intent neobsahuje Dynamic Link — jedná se o normální spuštění aplikace bez příchozího odkazu. Také jsou k dispozici UTM značky pro analytiku přechodů, včetně campaign, medium, source a content, které lze předat do Google Analytics pro detailní vyhodnocení účinnosti každého marketingového kanálu.

Často kladené otázky

Čím se Firebase Dynamic Links liší od běžného deep linku?

Firebase Dynamic Links podporuje deferred deep link — odkaz uchovává kontext, i když aplikace není nainstalovaná. Po instalaci aplikace obdrží všechny parametry přechodu, což u běžných URL Scheme nebo Universal Links není možné.

Je třeba platit za Firebase Dynamic Links?

Firebase Dynamic Links jsou součástí bezplatného tarifního plánu Firebase Spark. Neexistuje omezení na počet vytvořených odkazů. Od roku 2024 však Google oznámil přechod na novou infrastrukturu, takže se podmínky mohou změnit.

Lze použít Dynamic Links ve webové aplikaci?

Dynamic Links jsou určeny pro mobilní aplikace. Při přístupu z webového prohlížeče na desktopu odkaz otevře fallback URL. Pro webové aplikace používejte běžné odkazy nebo vlastní logiku přesměrování.

Jak testovat Dynamic Links ve fázi vývoje?

Firebase Console poskytuje tlačítko Test Dynamic Link pro náhled chování. Můžete také použít emulátor Androidu nebo simulátor iOS s nainstalovaným Firebase SDK pro lokální testování všech scénářů přechodu.

Kolik znaků může obsahovat Dynamic Link?

Krátký odkaz Firebase Dynamic Link se skládá z domény page.link a náhodné přípony o délce přibližně 7 znaků. Celková délka je přibližně 30 znaků. Deep link uvnitř může být libovolně dlouhý, ale pro kompatibilitu se doporučuje omezit jej na 2 KB.

Shrnutí

  • Firebase Dynamic Links — jednotné univerzální odkazy od Google pro iOS a Android s podporou deferred deep link.
  • Princip fungování — odkaz prochází serverem Firebase, který určí zařízení a stav instalace aplikace pro správné směrování.
  • Deferred — klíčová výhoda: parametry přechodu jsou uloženy a obnoveny po instalaci aplikace z obchodu.
  • Vytváření — odkazy jsou generovány přes Firebase Console, REST API nebo klientský SDK s konfigurací parametrů pro každou platformu.
  • iOS integrace — vyžaduje Associated Domains v Xcode a Firebase SDK; zpracování přes Universal Links a metodu continue UserActivity.
  • Android integrace — vyžaduje Intent Filter v manifestu s akcí VIEW a doménou Dynamic Links, plus Firebase SDK v build.gradle.
  • Analytika — Firebase automaticky sleduje přechody přes Dynamic Links s podporou UTM značek pro Google Analytics.

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é