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 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.
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í.
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.
| Parametr | Účel | Povinnost |
|---|---|---|
| Deep Link URL | Interní odkaz na obsah aplikace | Ano |
| iOS Bundle ID | Identifikátor aplikace v App Store | Pro iOS |
| Android Package Name | Název balíčku v Google Play | Pro Android |
| Fallback URL | Webová stránka při absenci aplikace | Ne |
| UTM značky | Parametry pro Google Analytics | Ne |
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.
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.
<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.
Příklad Intent Filter v AndroidManifest.xml pro příjem Dynamic Links na doméně yourcode.page.link.
<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.
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.
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
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é.
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.
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í.
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.
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í
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é