Firebase Dynamic Links: шта је то, креирање линкова и интеграција

Аутор: IT Sectr Објављено: 2026-04-29 Време читања: 9 мин

Firebase Dynamic Links је Google-ова услуга за креирање паметних линкова који воде корисника на право место унутар мобилне апликације или на сајт, у зависности од тога да ли је апликација инсталирана на уређају. Dynamic Links чувају контекст прелаза чак и при првом покретању након инсталације из продавнице апликација. Према Firebase Documentation, 2026, динамички линкови се обрађују у јединственом API-ју који аутоматски одређује понашање: отварање апликације, прелазак на сајт или инсталацију апликације. Услуга је незаменљива за рефералне програме, onboarding сценарије и маркетиншке кампање.

Главне тачке

  • Dynamic Links — паметни линкови који аутоматски одређују да ли је потребно инсталирати апликацију или отворити већ инсталирану на одговарајућем екрану.
  • Deferred Deep Linking — чување контекста прелаза при првом покретању након инсталације: корисник види циљни екран, а не главни.
  • Домен линкова — прилагођени домен облика your-app.page.link који се може брендирати у Firebase Console.
  • Обрада на страни клијента — линкови се обрађују путем Firebase Dynamic Links SDK за Android и iOS са преношењем аргумената у intent или scene.
  • Аналитика — Firebase аутоматски прикупља статистику о кликовима, инсталацијама и прелазима путем Dynamic Links.

Firebase Dynamic Links је Google-ова технологија која креира јединствени линк који води до жељеног садржаја у мобилној апликацији или на веб-сајту, прилагођавајући понашање у зависности од платформе и статуса инсталације. Линк проверава да ли је апликација инсталирана на уређају: ако јесте — отвара је са преношењем параметара, ако није — усмерава на Google Play или App Store ради инсталације, а након инсталације преусмерава на циљни екран.

Кључна карактеристика: Deferred Deep Linking

Главна предност Dynamic Links у односу на обичне deep линкове је подршка за одложене дубоке линкове. Deferred Deep Linking значи да се контекст прелаза (параметри линка) чува чак и ако апликација још није инсталирана. Када корисник инсталира апликацију из продавнице, Dynamic Links SDK чита сачувани контекст и преноси га на одговарајући екран. Без ове технологије, корисник би након инсталације једноставно доспео на главни екран, изгубивши промотивни код, позивницу или линк ка конкретној поруџбини.

Области примене

Dynamic Links се користе у рефералним програмима за привлачење нових корисника са повезивањем на налог позиваоца. Маркетиншке кампање са прелазима из имејл билтена и друштвених мрежа користе Dynamic Links за прецизно мерење конверзије. У onboarding сценаријима, линк води новог корисника на добродошлицу са персонализованим садржајем. У e-commerce, линкови ка производима чувају контекст и воде ка картици производа чак и при првом покретању након инсталације.

Механизам рада Dynamic Links се састоји од неколико фаза, од којих свака може варирати у зависности од стања апликације. Када корисник кликне на динамички линк, прегледач шаље захтев Firebase серверу. Firebase проверава да ли је апликација инсталирана путем провере intent-filter или universal link. Ако је апликација инсталирана, Firebase је отвара са преношењем дубоког линка. Ако није — преусмерава на страницу продавнице или веб верзију.

Анатомија динамичког линка

Стандардни Dynamic Link се састоји од основног URL-а, параметара линка и опционих маркетиншких ознака. Основни URL је домен облика your-app.page.link, регистрован у Firebase Console. Параметри дубоког линка се задају кроз query параметре: link (циљни URL унутар апликације), apn (Android Package Name), ibi (iOS Bundle ID), st и sd (наслов и опис за друштвени преглед). Маркетиншке ознаке utm_source, utm_medium, utm_campaign се преносе у Google Analytics ради праћења.

ПараметарОписПример
linkЦиљни дубоки линкhttps://yourapp.page.link/product/123
apnAndroid Package Namecom.example.myapp
ibiiOS Bundle IDcom.example.myapp.ios
stДруштвени насловПосебна понуда
sdДруштвени описПопуст 30% на прву поруџбину

Firebase Console пружа визуелни интерфејс за креирање Dynamic Links у секцији Engage > Dynamic Links. У конзоли се могу подесити сви параметри линка, укључујући дубоки линк, понашање на вебу, друштвене метаподатке и UTM ознаке. Након креирања линка, конзола пружа готов URL, као и статистику о кликовима и прелазима. За масовно креирање линкова користи се REST API Firebase Dynamic Links са OAuth 2.0 аутентификацијом.

Креирање линка путем REST API

За програмско креирање Dynamic Links користи се POST захтев ка Firebase Dynamic Links API-ју. Тело захтева садржи dynamicLinkInfo са параметрима дубоког линка, подешавањима платформе и друштвеним метаподацима. API враћа готов URL облика https://your-app.page.link/abc123. За дуготрајне линкове користи се suffix.option = UNIQUE — кратки линкови са јединственим суфиксом. За привремене линкове — SHORT, са могућношћу колизија.

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: "Летња промоција",
            socialDescription: "Попусти до 50% до краја месеца"
        }
    },
    suffix: { option: "UNIQUE" }
}

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

Кратки линкови и UTM ознаке

Dynamic Links аутоматски генеришу кратке URL-ове дужине 6–8 карактера након домена, што их чини погодним за употребу у SMS-у и друштвеним мрежама. UTM параметри се додају кроз поље utmParameters или директно у параметар линка. Firebase аутоматски повезује кликове на Dynamic Links са Google Analytics за Firebase, што омогућава праћење рефералног саобраћаја и атрибуцију кампања.

Интеграција Dynamic Links у Android

Подешавање Dynamic Links у Android укључује додавање Firebase SDK, подешавање intent-filter за активност која прима дубоке линкове и обраду линкова путем Firebase Dynamic Links SDK. Након инсталације SDK-а и додавања google-services.json, потребно је регистровати активност у AndroidManifest.xml са intent-filter за обраду линкова са домена ваше апликације.

Подешавање intent-filter у AndroidManifest

Активност која обрађује Dynamic Links мора имати intent-filter за радњу VIEW и категорије DEFAULT и BROWSABLE. AndroidManifest.xml садржи tag data са android:scheme, android:host и android:pathPrefix који одговарају вашем дубоком линку. За обраду линкова са домена page.link такође се додаје intent-filter са схемом https и хостом вашег 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>

Обрада линка у коду

Након подешавања intent-filter-а, потребно је обрадити долазни Dynamic Link у коду активности. FirebaseDynamicLinks API преузима линк из intent-а и враћа објекат PendingDynamicLinkData са издвојеним параметрима. Метод getLink враћа циљни дубоки линк који се може анализирати и користити за навигацију. Важно је обрадити линк како при хладном покретању (путем getIntent у onCreate), тако и при топлом покретању (путем onNewIntent).

Интеграција Dynamic Links у iOS

Подешавање Dynamic Links у iOS захтева конфигурацију како на страни Firebase, тако и у Xcode пројекту. Потребно је учитати APNs кључ у Firebase Console, додати Firebase SDK путем Swift Package Manager-а или CocoaPods-а и подесити App Delegate за обраду универзалних линкова (Universal Links). Dynamic Links у iOS користе Universal Links за беспрекоран прелаз између прегледача и апликације без посредне странице.

Подешавање Universal Links

Universal Links су Apple-ова технологија која повезује ваш домен са мобилном апликацијом. Датотека apple-app-site-association (AASA) се учитава на сервер на адреси https://your-app.page.link/apple-app-site-association. Firebase аутоматски креира и одржава ову датотеку за ваш Dynamic Links домен. У Xcode-у је потребно укључити Associated Domains и навести applinks:your-app.page.link у Capabilities пројекта.

Обрада линка путем Firebase SDK

За iOS, обрада Dynamic Links се врши путем Firebase SDK у App Delegate или Scene Delegate. Метод application:continueUserActivity: пресреће долазни Universal Link и прослеђује га Firebase Dynamic Links API-ју, који издваја циљни линк и параметре. Firebase SDK аутоматски обрађује Deferred Deep Links, захтевајући податке о инсталацији путем краткорочног складиштења 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)
                }
            }
    }
}

Пример имплементације у Kotlin

Размотримо комплетан пример обраде Dynamic Link-а у Android апликацији у Kotlin-у. MainActivity чита долазни Dynamic Link како при хладном, тако и при топлом покретању апликације. Линк се раставља на параметре који се користе за навигацију на одговарајући екран са преношењем аргумената. У примеру је приказана обрада линка ка страници промоције са идентификатором промоције.

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", "Грешка при обради линка", e)
            }
    }
}

Тестирање Dynamic Links

За тестирање Dynamic Links користи се Firebase Console, где се може креирати тестни линк и послати на уређај путем месинџера или имејла. Firebase Dynamics Links Debugger је доступан на URL-у https://your-app.page.link/?d=1 и приказује детаљне информације о понашању линка. При тестирању Deferred Deep Links потребно је осигурати да је апликација уклоњена, а након инсталације линк води на исправан екран са пренетим параметрима.

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

Која је разлика између Dynamic Links и обичних deep линкова?

Обични deep линкови раде само када је апликација инсталирана и не чувају контекст након инсталације. Dynamic Links подржавају Deferred Deep Linking — корисник инсталира апликацију и одмах доспева на циљни екран са сачуваним параметрима линка.

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

Сервер није потребан за креирање и обраду линкова — све операције се обављају путем Firebase Console, REST API-ја или Firebase SDK-а на клијенту. За масовно генерисање линкова препоручује се REST API, али конзола је погодна за ручно креирање.

Колико дуго живи Dynamic Link?

Dynamic Links немају датум истека — чувају се у Firebase-у заувек ако нису ручно обрисани. Кратки линкови са UNIQUE суфиксом постоје неограничено. Препоручује се креирање јединствених линкова за сваку кампању ради прецизне атрибуције.

Да ли Dynamic Links раде без интернета?

За обраду Dynamic Link-а потребна је интернет веза у фази клика, јер Firebase сервер проверава статус инсталације апликације. Након обраде линка, подаци се преносе у апликацију путем intent-а или Universal Link-а и постају доступни и без мреже.

Колико коштају Firebase Dynamic Links?

Firebase Dynamic Links су бесплатни у оквиру Spark плана. У Blaze плану постоји лимит од 50К кликова дневно по пројекту без додатне наплате. Прекорачење лимита блокира креирање нових линкова до следећег дана.

Резиме

  • Firebase Dynamic Links — паметни линкови који воде корисника у апликацију или на сајт, а у одсуству апликације — у продавницу са чувањем контекста након инсталације.
  • Deferred Deep Linking — кључна предност која омогућава преношење контекста (промотивни код, позивница, линк ка производу) при првом покретању након инсталације.
  • Структура линка укључује основни домен (your-app.page.link), параметре дубоког линка, подешавања платформе и друштвене метаподатке за преглед.
  • Креирање линкова се врши путем Firebase Console, REST API-ја или Firebase SDK-а са подршком за UTM ознаке за интеграцију са Google Analytics.
  • Интеграција у Android захтева подешавање intent-filter у AndroidManifest-у и обраду путем FirebaseDynamicLinks API-ја са подршком за хладно и топло покретање.
  • Интеграција у iOS користи Universal Links са AASA датотеком, Associated Domains и обрадом путем DynamicLinks SDK-а у AppDelegate или SceneDelegate.
  • Бесплатно до 50К кликова дневно, без датума истека линкова, са могућношћу креирања прилагођеног домена за брендирање линкова.

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

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

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

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