Firebase Dynamic Links: шта је, како ради и користи се у развоју

Аутор: IT Sectr Објављено: 2026-05-14 Време читања: 8 мин

Firebase Dynamic Links је Гугл сервис за креирање паметних линкова који упућују корисника на право место у апликацији без обзира на то да ли је апликација инсталирана или не. Према Firebase Documentation, Dynamic Links аутоматски преусмеравају корисника у App Store или Google Play кад апликација није инсталирана и враћају контекст преласка након инсталације. Smart-линкови Firebase-а решавају проблем URL Scheme, који не ради са неинсталираним апликацијама.

Главно

  • Firebase Dynamic Links — Гугл сервис за креирање универзалних линкова који раде на iOS-у и Android-у са подршком за deferred deep link.
  • Deferred — главна предност: линк чува контекст преласка чак и када апликација није инсталирана и га враћа након инсталације.
  • Аналитика — Firebase аутоматски прати преласке путем Dynamic Links и пружа податке у Firebase Analytics и Google Analytics.
  • Платформе — Dynamic Links раде на iOS-у (путем Universal Links) и Android-у (путем App Links) са једним универзалним линком за обе платформе.
  • Креирање — линкови се генеришу путем Firebase Console, REST API или SDK-а на клијенту са подешавањем понашања за сваки сценаријо.

Firebase Dynamic Links је облачки сервис од Гугла који креира јединствене универзалне линкове за мобилне апликације на iOS-у и Android-у. Динамички линк садржи дубоки линк ка садржају унутар апликације, али се понаша као обичан HTTPS линк: ако је апликација инсталирана, отвара је директно, ако није — преусмерава у продавницу апликација.

За разлику од обичних URL Scheme, Dynamic Links могу да раде са неинсталираним апликацијама захваљујући технологији deferred deep link. Када корисник инсталира апликацију након преласка путем линка, Firebase чува параметре преласка и проследује их при првом покретању. Ово отвара могућности за рефералне програме, маркетиншке кампање и позивнице.

Разлика од обичних URL Scheme

URL Scheme захтевају инсталирану апликацију и немају стандардни механизам заузувања. Firebase Dynamic Links решавају овај проблем путем посредног Гугл веб сервиса који одређује статус инсталације апликације на уређају и корисника правилно усмерава. Један линк ради исто на обе платформе.

Firebase Dynamic Link користи домен облика yourcode.page.link, који се региструје у Firebase Console. Када корисник пређе путем таквог линка, Firebase одређује тип уређаја и статус инсталације апликације. За iOS се користи механизам Universal Links, за Android — App Links са аутоматском верификацијом путем Digital Asset Links.

Процес обраде укључује неколико узастопних фаза: при преласку путем линка, прегледач шаље GET захтев ка Firebase серверу, сервер одређује платформу и проверава присуство апликације на уређају. Ако је апликација инсталирана — генерише се преусмеравање на Universal Link или Intent са параметрима за отварање циљног екрана. Ако апликација није инсталирана — преусмеравање у App Store или Google Play ради преузимања.

Животни циклус Dynamic Link-а

Апликација прима линк у фази иницијализације Firebase SDK-а. Метода getDynamicLink() враћа PendingResult са подацима о преласку. Након успешног пријема, из линка се извлаче параметри deep link-а, UTM ознаке за аналитику и произвољни подаци прослеђени при креирању линка.

Firebase Console пружа визуелни интерфејс за креирање Dynamic Links. Развојач наводи дубоки линк (deep link URL), назив кампање, подешавања за iOS и Android одвојено, као и параметре аналитике. Након креирања, Firebase генерише кратак линк облика https://yourcode.page.link/abc123, који се може користити у рекламним материјалима, имејл кампањама и друштвеним мрежама.

За програмско креирање Dynamic Links користи се Firebase REST API или клијентски SDK. REST API омогућава масовно генерисање линкова за маркетиншке кампање са прилагођеним параметрима, укључујући линк за друштвене мреже и асинхрону аналитику прелазака. При креирању линкова путем API-ја, важно је правилно навести параметре socialMetaTagInfo — они одређују како се линк приказује при преношењу у месенџерима и друштвеним мрежама са картицом за преглед.

Параметри Dynamic Link-а

ПараметарНаменаОбавезност
Deep Link URLУнутрашњи линк ка садржају апликацијеДа
iOS Bundle IDИдентификатор апликације у App Store-уЗа iOS
Android Package NameНазив пакета у Google Play-уЗа Android
Fallback URLВеб страница кад апликација није присутнаНе
UTM ознакеПараметри за Google AnalyticsНе

За рад са Firebase Dynamic Links на iOS-у потребно је повезати Firebase SDK путем CocoaPods или Swift Package Manager-а, конфигурисати Info.plist са GOOGLE_APP_ID и регистровати домен Dynamic Links у Associated Domains пројекта. Након тога, апликација аутоматски обрађује Universal Links које је генерисао Firebase.

У Xcode-у је потребно додати capability Associated Domains са уносом облика applinks:yourcode.page.link. Firebase SDK користи методу application(_:continue:restorationHandler:) за обраду Universal Links, па није потребна додатна интеграција са AppDelegate-ом — Firebase аутоматски извлачи параметре Dynamic Link-а из User Activity.

Подешавање у Xcode-у

Примјер конфигурације Info.plist-а за правилну иницијализацију Firebase-а и регистрацију handler-а за Dynamic Links. Кључ FIROptions треба да садржи идентификатор пројекта GoogleService-Info.plist.

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

Ако је AppDelegate прокси искључен, потребно је ручно позвати методу handleUniversalLink(_:) и проследити User Activity из continue NSUserActivity. Firebase SDK аутоматски извлачи параметре линка и враћа DynamicLink путем completion handler-а.

На Android-у, интеграција Firebase Dynamic Links почиње додавањем зависности у build.gradle и датотеке google-services.json из Firebase Console-а. Домен Dynamic Links се региструје у Firebase Console-у, након чега сви линкови са овим доменом аутоматски бивају препознати од стране Android апликације путем Intent Filter-а са акцијом VIEW. За правилан рад, потребно је додати и Google Services плагин у коренски и модулни build.gradle и извршити Gradle синхронизацију.

За правилну обраду линкова на Android-у, потребно је додати Intent Filter за домен Dynamic Links у Activity која треба да прима долазеће линкове. Филтер треба да садржи шему https, хост вашег домена Dynamic Links и подразумевану путању.

Intent Filter за Dynamic Links

Примјер Intent Filter-а у AndroidManifest.xml-у за пријем Dynamic Links на домену 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>

Важно је поставити launchMode на singleTask за Activity која прима Dynamic Links. Ово спречава стварање нове инстанце Activity при поновном преласку путем линка и омогућава правилну обраду свих долазећих deep link-ова у једној инстанци.

Firebase SDK за Android пружа методу FirebaseDynamicLinks.getInstance().getDynamicLink(intent), која враћа PendingTask објекат са подацима о линку. Из DynamicLink објекта се извлачи дубоки URI, UTM параметри и временски жиг преласка. Обраду је препоручљиво вршити у методама onCreate() и onNewIntent() Activity-је.

При обради је важно узети у обзир да Dynamic Link може бити примљен како при покретању апликације из хладног стања (cold start), тако и при преласку из друге апликације у већ покренуту апликацију. За други случај, потребно је прегазити onNewIntent() и поново позвати проверу Dynamic Link-а.

Обрада у коду на Kotlin-у

Примјер пријема и обраде Firebase Dynamic Link-а у MainActivity-ји. Код обрађује како cold start, тако и прелазак из друге апликације.

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

Метода addOnSuccessListener враћа DynamicLink из којег се извлачи циљни линк путем link?.link. Ако listener врати null, значи да Intent не садржи Dynamic Link — ово је нормално покретање апликације без долазећег линка. Такође су доступне UTM ознаке за аналитику прелазака, укључујући campaign, medium, source и content, који се могу проследити у Google Analytics ради детаљне процене ефикасности сваког маркетиншког канала.

Често постављана питања

По чему се Firebase Dynamic Links разликује од обичног deep link-а?

Firebase Dynamic Links подржава deferred deep link — линк чува контекст чак и када апликација није инсталирана. Након инсталације, апликација добија све параметре преласка, што је немогуће са обичним URL Scheme или Universal Links-ома.

Да ли је потребно платити за Firebase Dynamic Links?

Firebase Dynamic Links улазе у бесплатни тарифни план Firebase Spark. Нема ограничења на број креираних линкова. Међутим, од 2024. године Гугл је најавио прелазак на нову инфраструктуру, па се услови могу промијенити.

Могу ли да користим Dynamic Links у веб апликацији?

Dynamic Links су намењени за мобилне апликације. При преласку из веб прегледача на десктоп рачунару, линк ће отворити fallback URL. За веб апликације користите обичне линкове или сопствену логику преусмеравања.

Како тестирати Dynamic Links у фази развоја?

Firebase Console пружа дугме Test Dynamic Link за преглед понашања. Такође можете користити Android емулатор или iOS симулатор са инсталираним Firebase SDK-ом за локално тестирање свих сценарија преласка.

Колико знакова може да садржи Dynamic Link?

Кратак линк Firebase Dynamic Link састоји се од домена page.link и случајног суфикса дужине око 7 знакова. Укупна дужина је око 30 знакова. Deep link унутар може бити било које дужине, али се препоручује да се ограничи на 2 КБ ради компатибилности.

Закључак

  • Firebase Dynamic Links — јединствени универзални линкови од Гугла за iOS и Android са подршком за deferred deep link.
  • Принцип рада — линк пролази кроз Firebase сервер, који одређује уређај и статус инсталације апликације за правилно усмеравање.
  • Deferred — кључна предност: параметри преласка се чувају и враћају након инсталације апликације из продавнице.
  • Креирање — линкови се генеришу путем Firebase Console, REST API или клијентског SDK-а са конфигурисањем параметара за сваку платформу.
  • iOS интеграција — захтева Associated Domains у Xcode-у и Firebase SDK; обрада путем Universal Links и методе continue UserActivity.
  • Android интеграција — захтева Intent Filter у манифесту са акцијом VIEW и доменом Dynamic Links, путем Firebase SDK-а у build.gradle-у.
  • Аналитика — Firebase аутоматски прати преласке путем Dynamic Links са подршком за UTM ознаке за Google Analytics.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође