Firebase Dynamic Links: co to jest, jak działa i jest używane w rozwoju aplikacji

Autor: IT Sectr Opublikowano: 2026-05-14 Czas czytania: 8 min

Firebase Dynamic Links to usługa Google do tworzenia inteligentnych linków, które kierują użytkownika we właściwe miejsce w aplikacji niezależnie od tego, czy aplikacja jest zainstalowana, czy nie. Według Firebase Documentation, Dynamic Links automatycznie przekierowują użytkownika do App Store lub Google Play, gdy aplikacja nie jest zainstalowana, i przywracają kontekst przejścia po instalacji. Smart-linki Firebase rozwiązują problem URL Scheme, który nie działa z niezainstalowanymi aplikacjami.

Najważniejsze

  • Firebase Dynamic Links — usługa Google do tworzenia uniwersalnych linków działających na iOS i Androidzie z obsługą deferred deep link.
  • Deferred — główna zaleta: link zachowuje kontekst przejścia, nawet jeśli aplikacja nie jest zainstalowana, i przywraca go po instalacji.
  • Analityka — Firebase automatycznie śledzi przejścia przez Dynamic Links i dostarcza dane w Firebase Analytics i Google Analytics.
  • Platformy — Dynamic Links działają na iOS (przez Universal Links) i Androidzie (przez App Links) z jednym uniwersalnym linkiem dla obu platform.
  • Tworzenie — linki są generowane przez Firebase Console, REST API lub SDK po stronie klienta z konfiguracją zachowania dla każdego scenariusza.

Firebase Dynamic Links to chmurowa usługa od Google, która tworzy jednolite uniwersalne linki dla aplikacji mobilnych na iOS i Androida. Dynamiczny link zawiera głęboki link do treści wewnątrz aplikacji, ale zachowuje się jak zwykły link HTTPS: jeśli aplikacja jest zainstalowana, otwiera ją bezpośrednio, a jeśli nie — przekierowuje do sklepu z aplikacjami.

W przeciwieństwie do zwykłych URL Scheme, Dynamic Links mogą działać z niezainstalowanymi aplikacjami dzięki technologii deferred deep link. Gdy użytkownik instaluje aplikację po przejściu przez link, Firebase zapisuje parametry przejścia i przekazuje je przy pierwszym uruchomieniu. Otwiera to możliwości dla programów referencyjnych, kampanii marketingowych i zaproszeń.

Różnica od zwykłych URL Scheme

URL Scheme wymagają zainstalowanej aplikacji i nie mają standardowego mechanizmu fallback. Firebase Dynamic Links rozwiązują ten problem poprzez pośredniczącą usługę internetową Firebase, która określa status instalacji aplikacji na urządzeniu i prawidłowo kieruje użytkownika. Jeden link działa tak samo na obu platformach.

Firebase Dynamic Link używa domeny w formie yourcode.page.link, która jest rejestrowana w Firebase Console. Gdy użytkownik przechodzi przez taki link, Firebase określa typ urządzenia i status instalacji aplikacji. Dla iOS używany jest mechanizm Universal Links, dla Androida — App Links z automatyczną weryfikacją przez Digital Asset Links.

Proces przetwarzania obejmuje kilka następujących po sobie etapów: po przejściu przez link przeglądarka wysyła zapytanie GET do serwera Firebase, serwer określa platformę i sprawdza obecność aplikacji na urządzeniu. Jeśli aplikacja jest zainstalowana — generowane jest przekierowanie na Universal Link lub Intent z parametrami do otwarcia docelowego ekranu. Jeśli aplikacja nie jest zainstalowana — przekierowanie do App Store lub Google Play w celu pobrania.

Cykl życia Dynamic Link

Aplikacja otrzymuje link na etapie inicjalizacji Firebase SDK. Metoda getDynamicLink() zwraca PendingResult z danymi o przejściu. Po pomyślnym otrzymaniu z linku wyodrębniane są parametry deep link, znaczniki UTM dla analityki oraz dowolne dane przekazane przy tworzeniu linku.

Firebase Console udostępnia wizualny interfejs do tworzenia Dynamic Links. Deweloper wskazuje głęboki link (deep link URL), nazwę kampanii, ustawienia dla iOS i Androida osobno oraz parametry analityki. Po utworzeniu Firebase generuje krótki link w formie https://yourcode.page.link/abc123, który można użyć w materiałach reklamowych, mailingach i mediach społecznościowych.

Do programowego tworzenia Dynamic Links używany jest Firebase REST API lub SDK po stronie klienta. REST API umożliwia masowe generowanie linków dla kampanii marketingowych z niestandardowymi parametrami, w tym link dla mediów społecznościowych i asynchroniczną analitykę przejść. Podczas tworzenia linków przez API ważne jest prawidłowe określenie parametrów socialMetaTagInfo — określają one, jak link jest wyświetlany przy udostępnianiu w komunikatorach i sieciach społecznościowych z kartą podglądu.

Parametry Dynamic Link

ParametrPrzeznaczenieObowiązkowość
Deep Link URLWewnętrzny link do treści aplikacjiTak
iOS Bundle IDIdentyfikator aplikacji w App StoreDla iOS
Android Package NameNazwa pakietu w Google PlayDla Androida
Fallback URLStrona internetowa przy braku aplikacjiNie
Znaczniki UTMParametry dla Google AnalyticsNie

Do pracy z Firebase Dynamic Links na iOS wymagane jest podłączenie Firebase SDK przez CocoaPods lub Swift Package Manager, skonfigurowanie Info.plist z GOOGLE_APP_ID i zarejestrowanie domeny Dynamic Links w Associated Domains projektu. Następnie aplikacja automatycznie przetwarza Universal Links wygenerowane przez Firebase.

W Xcode należy dodać capability Associated Domains z wpisem w formie applinks:yourcode.page.link. Firebase SDK używa metody application(_:continue:restorationHandler:) do obsługi Universal Links, więc dodatkowa integracja z AppDelegate nie jest wymagana — Firebase automatycznie wyodrębnia parametry Dynamic Link z User Activity.

Konfiguracja w Xcode

Przykład konfiguracji Info.plist dla prawidłowej inicjalizacji Firebase i rejestracji handlera Dynamic Links. Klucz FIROptions powinien zawierać identyfikator projektu GoogleService-Info.plist.

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

Jeśli proxy AppDelegate jest wyłączone, należy ręcznie wywołać metodę handleUniversalLink(_:) i przekazać User Activity z continue NSUserActivity. Firebase SDK automatycznie wyodrębnia parametry linku i zwraca DynamicLink przez completion handler.

Na Androidzie integracja Firebase Dynamic Links rozpoczyna się od dodania zależności w build.gradle i pliku google-services.json z Firebase Console. Domena Dynamic Links jest rejestrowana w Firebase Console, po czym wszystkie linki z tą domeną są automatycznie rozpoznawane przez aplikację Androida przez Intent Filter z akcją VIEW. Do prawidłowego działania należy również dodać wtyczkę Google Services w głównym i modułowym build.gradle oraz wykonać synchronizację Gradle.

Do prawidłowej obsługi linków na Androidzie należy dodać Intent Filter dla domeny Dynamic Links w Activity, która ma przyjmować przychodzące linki. Filtr powinien zawierać schemat https, host Twojej domeny Dynamic Links i domyślną ścieżkę.

Intent Filter dla Dynamic Links

Przykład Intent Filter w AndroidManifest.xml do odbioru Dynamic Links na domenie 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>

Ważne jest ustawienie launchMode singleTask dla Activity przyjmującej Dynamic Links. Zapobiega to tworzeniu nowej instancji Activity przy ponownym przejściu przez link i umożliwia prawidłową obsługę wszystkich przychodzących deep linków w jednej instancji.

Firebase SDK dla Androida udostępnia metodę FirebaseDynamicLinks.getInstance().getDynamicLink(intent), która zwraca obiekt PendingTask z danymi o linku. Z obiektu DynamicLink wyodrębniany jest głęboki URI, parametry UTM i znacznik czasu przejścia. Obsługę zaleca się wykonywać w metodzie onCreate() i onNewIntent() Activity.

Podczas obsługi ważne jest uwzględnienie, że Dynamic Link może być otrzymany zarówno przy uruchomieniu aplikacji z zimnego stanu (cold start), jak i przy przejściu z innej aplikacji do już uruchomionej aplikacji. W drugim przypadku należy nadpisać onNewIntent() i ponownie wywołać sprawdzenie Dynamic Link.

Obsługa w kodzie w Kotlinie

Przykład pobrania i obsługi Firebase Dynamic Link w MainActivity. Kod obsługuje zarówno cold start, jak i przejście z innej aplikacji.

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 zwraca DynamicLink, z którego wyodrębniany jest docelowy link przez link?.link. Jeśli listener zwraca null, oznacza to, że Intent nie zawiera Dynamic Link — to normalne uruchomienie aplikacji bez przychodzącego linku. Dostępne są również znaczniki UTM dla analityki przejść, w tym campaign, medium, source i content, które można przekazać do Google Analytics w celu szczegółowej oceny skuteczności każdego kanału marketingowego.

Często zadawane pytania

Czym Firebase Dynamic Links różni się od zwykłego deep link?

Firebase Dynamic Links obsługuje deferred deep link — link zachowuje kontekst, nawet jeśli aplikacja nie jest zainstalowana. Po instalacji aplikacja otrzymuje wszystkie parametry przejścia, co jest niemożliwe w przypadku zwykłych URL Scheme lub Universal Links.

Czy trzeba płacić za Firebase Dynamic Links?

Firebase Dynamic Links wchodzą w skład darmowego planu taryfowego Firebase Spark. Nie ma ograniczeń co do liczby tworzonych linków. Jednak od 2024 roku Google ogłosił przejście na nową infrastrukturę, więc warunki mogą się zmienić.

Czy można używać Dynamic Links w aplikacji internetowej?

Dynamic Links są przeznaczone dla aplikacji mobilnych. Przy przejściu z przeglądarki na komputerze link otworzy fallback URL. Dla aplikacji internetowych używaj zwykłych linków lub własnej logiki przekierowań.

Jak testować Dynamic Links na etapie rozwoju?

Firebase Console udostępnia przycisk Test Dynamic Link do podglądu zachowania. Można również użyć emulatora Androida lub symulatora iOS z zainstalowanym Firebase SDK do lokalnego testowania wszystkich scenariuszy przejścia.

Ile znaków może zawierać Dynamic Link?

Krótki link Firebase Dynamic Link składa się z domeny page.link i losowego sufiksu o długości około 7 znaków. Całkowita długość to około 30 znaków. Deep link wewnątrz może być dowolnej długości, ale zaleca się ograniczenie go do 2 KB dla zgodności.

Podsumowanie

  • Firebase Dynamic Links — jednolite uniwersalne linki od Google dla iOS i Androida z obsługą deferred deep link.
  • Zasada działania — link przechodzi przez serwer Firebase, który określa urządzenie i status instalacji aplikacji w celu prawidłowego kierowania.
  • Deferred — kluczowa zaleta: parametry przejścia są zapisywane i przywracane po instalacji aplikacji ze sklepu.
  • Tworzenie — linki są generowane przez Firebase Console, REST API lub SDK po stronie klienta z konfiguracją parametrów dla każdej platformy.
  • Integracja z iOS — wymaga Associated Domains w Xcode i Firebase SDK; obsługa przez Universal Links i metodę continue UserActivity.
  • Integracja z Androidem — wymaga Intent Filter w manifeście z akcją VIEW i domeną Dynamic Links oraz Firebase SDK w build.gradle.
  • Analityka — Firebase automatycznie śledzi przejścia przez Dynamic Links z obsługą znaczników UTM dla Google Analytics.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również