Firebase Dynamic Links: nedir, bağlantı oluşturma ve entegrasyon

Yazar: IT Sectr Yayınlanma: 2026-04-29 Okuma süresi: 9 dk

Firebase Dynamic Links, kullanıcıyı mobil uygulama içinde doğru yere veya bir web sitesine yönlendiren akıllı bağlantılar oluşturmak için Google hizmetidir. Uygulamanın cihazda yüklü olup olmamasına göre çalışır. Dynamic Links, uygulama mağazasından yükleme sonrası ilk başlatmada bile geçiş bağlamını korur. Firebase Dokümantasyonu, 2026'ya göre, dinamik bağlantılar tek bir API'de işlenir ve davranışı otomatik olarak belirler: uygulamayı açma, web sitesine gitme veya uygulamayı yükleme. Hizmet, referans programları, onboarding senaryoları ve pazarlama kampanyaları için vazgeçilmezdir.

Önemli Noktalar

  • Dynamic Links — uygulamayı yüklemeyi veya zaten yüklü olan uygulamayı istenen ekranda açmayı otomatik olarak belirleyen akıllı bağlantılar.
  • Deferred Deep Linking — yükleme sonrası ilk başlatmada geçiş bağlamını koruma: kullanıcı ana ekran yerine hedef ekranı görür.
  • Bağlantı Alan Adı — Firebase Console'da markalanabilen your-app.page.link gibi özel bir alan adı.
  • İstemci Tarafı İşleme — bağlantılar Android ve iOS için Firebase Dynamic Links SDK aracılığıyla işlenir ve argümanlar intent veya scene'e iletilir.
  • Analitik — Firebase, Dynamic Links aracılığıyla tıklamalar, yüklemeler ve geçişler hakkında otomatik olarak istatistik toplar.

Firebase Dynamic Links, mobil uygulama veya web sitesinde istenen içeriğe götüren tek bir bağlantı oluşturan Google teknolojisidir. Platform ve yükleme durumuna göre davranışı uyarlar. Bağlantı, uygulamanın cihazda yüklü olup olmadığını kontrol eder: yüklüyse — parametrelerle uygulamayı açar, yüklü değilse — yükleme için Google Play veya App Store'a yönlendirir ve yükleme sonrası hedef ekrana yönlendirir.

Temel Özellik: Deferred Deep Linking

Dynamic Links'in normal derin bağlantılara göre ana avantajı, ertelenmiş derin bağlantı desteğidir. Deferred Deep Linking, uygulama henüz yüklenmemiş olsa bile geçiş bağlamının (bağlantı parametreleri) korunması anlamına gelir. Kullanıcı uygulamayı mağazadan yüklediğinde, Dynamic Links SDK kaydedilen bağlamı okur ve istenen ekrana iletir. Bu teknoloji olmadan, kullanıcı yükleme sonrası ana ekrana gelir ve promosyon kodunu, daveti veya belirli bir sipariş bağlantısını kaybeder.

Kullanım Alanları

Dynamic Links, davet edenin hesabına atıfla yeni kullanıcılar çekmek için referans programlarında kullanılır. Pazarlama kampanyaları, e-posta bültenlerinden ve sosyal ağlardan geçişlerle Dynamic Links'i hassas dönüşüm ölçümü için kullanır. Onboarding senaryolarında bağlantı, yeni kullanıcıyı kişiselleştirilmiş içerikle bir karşılama ekranına götürür. E-ticarette ürün bağlantıları bağlamı korur ve yükleme sonrası ilk başlatmada bile ürün kartına götürür.

Dinamik Bağlantıların çalışma mekanizması, her biri uygulama durumuna göre değişebilen birkaç aşamadan oluşur. Kullanıcı dinamik bir bağlantıya tıkladığında, tarayıcı Firebase sunucusuna bir istek gönderir. Firebase, intent-filter veya universal link kontrolü yoluyla uygulamanın yüklü olup olmadığını kontrol eder. Uygulama yüklüyse, Firebase derin bağlantıyı ileterek açar. Yüklü değilse — mağaza sayfasına veya web sürümüne yönlendirir.

Dinamik Bağlantının Yapısı

Standart bir Dynamic Link, temel URL, bağlantı parametreleri ve isteğe bağlı pazarlama etiketlerinden oluşur. Temel URL, Firebase Console'da kayıtlı your-app.page.link gibi bir alan adıdır. Derin bağlantı parametreleri sorgu parametreleriyle ayarlanır: link (uygulama içindeki hedef URL), apn (Android Paket Adı), ibi (iOS Bundle ID), st ve sd (sosyal önizleme için başlık ve açıklama). Pazarlama etiketleri utm_source, utm_medium, utm_campaign izleme için Google Analytics'e iletilir.

ParametreAçıklamaÖrnek
linkHedef derin bağlantıhttps://yourapp.page.link/product/123
apnAndroid Paket Adıcom.example.myapp
ibiiOS Bundle IDcom.example.myapp.ios
stSosyal başlıkÖzel teklif
sdSosyal açıklamaİlk siparişte %30 indirim

Firebase Console, Engage > Dynamic Links bölümünde Dynamic Links oluşturmak için görsel bir arayüz sağlar. Konsolda, derin bağlantı, web davranışı, sosyal meta veriler ve UTM etiketleri dahil tüm bağlantı parametrelerini ayarlayabilirsiniz. Bağlantı oluşturulduktan sonra konsol, kullanıma hazır bir URL ve tıklamalar ile geçişler hakkında istatistikler sağlar. Toplu bağlantı oluşturma için OAuth 2.0 kimlik doğrulamasıyla Firebase Dynamic Links REST API kullanılır.

REST API ile Bağlantı Oluşturma

Programlı Dynamic Links oluşturma için Firebase Dynamic Links API'sine bir POST isteği gönderilir. İstek gövdesi, derin bağlantı parametreleri, platform ayarları ve sosyal meta veriler içeren dynamicLinkInfo'yu içerir. API, https://your-app.page.link/abc123 gibi kullanıma hazır bir URL döndürür. Uzun ömürlü bağlantılar için suffix.option = UNIQUE kullanılır — benzersiz sonekli kısa bağlantılar. Geçici bağlantılar için — SHORT, olası çakışmalarla birlikte.

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: "Yaz kampanyası",
            socialDescription: "Ay sonuna kadar %50'ye varan indirim"
        }
    },
    suffix: { option: "UNIQUE" }
}

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

Kısa Bağlantılar ve UTM Etiketleri

Dynamic Links, alan adından sonra 6–8 karakterli kısa URL'leri otomatik olarak oluşturur ve bunları SMS ve sosyal ağlarda kullanıma uygun hale getirir. UTM parametreleri utmParameters alanı veya doğrudan link parametresi aracılığıyla eklenir. Firebase, Dynamic Links'teki tıklamaları Firebase için Google Analytics ile otomatik olarak ilişkilendirerek referans trafiğini ve kampanya atıflarını izlemenizi sağlar.

Android'de Dynamic Links Entegrasyonu

Android'de Dynamic Links ayarlama, Firebase SDK eklemeyi, derin bağlantıları alan activity için intent-filter yapılandırmayı ve bağlantıları Firebase Dynamic Links SDK aracılığıyla işlemeyi içerir. SDK'yı kurduktan ve google-services.json'ı ekledikten sonra, uygulama alan adınızdan bağlantıları işlemek için AndroidManifest.xml'de intent-filter ile activity kaydetmeniz gerekir.

AndroidManifest'te intent-filter Ayarlama

Dynamic Links'i işleyen activity, VIEW eylemi ve DEFAULT ile BROWSABLE kategorileri için intent-filter'e sahip olmalıdır. AndroidManifest.xml, derin bağlantınıza karşılık gelen android:scheme, android:host ve android:pathPrefix ile data etiketi içerir. page.link alan adından bağlantıları işlemek için https şeması ve Dynamic Links alan adı sunucunuzla bir intent-filter de eklenir.

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>

Kodda Bağlantıyı İşleme

intent-filter ayarlandıktan sonra, Activity kodunda gelen Dynamic Link'i işlemeniz gerekir. FirebaseDynamicLinks API, intent'ten bağlantıyı alır ve çıkarılan parametrelerle birlikte bir PendingDynamicLinkData nesnesi döndürür. getLink yöntemi, ayrıştırılıp gezinme için kullanılabilen hedef derin bağlantıyı döndürür. Bağlantıyı hem soğuk başlatma (onCreate'te getIntent ile) hem de sıcak başlatma (onNewIntent ile) sırasında işlemek önemlidir.

iOS'ta Dynamic Links Entegrasyonu

iOS'ta Dynamic Links ayarlama, hem Firebase tarafında hem de Xcode projesinde yapılandırma gerektirir. Firebase Console'a bir APNs anahtarı yüklemeniz, Swift Package Manager veya CocoaPods aracılığıyla Firebase SDK eklemeniz ve Universal Links'i işlemek için App Delegate'i yapılandırmanız gerekir. iOS'ta Dynamic Links, tarayıcı ve uygulama arasında ara sayfa olmadan sorunsuz geçiş için Universal Links kullanır.

Universal Links Ayarlama

Universal Links, alan adınızı mobil uygulamaya bağlayan bir Apple teknolojisidir. apple-app-site-association (AASA) dosyası https://your-app.page.link/apple-app-site-association adresindeki sunucuya yüklenir. Firebase, Dynamic Links alan adınız için bu dosyayı otomatik olarak oluşturur ve bakımını yapar. Xcode'da Associated Domains'i etkinleştirmeniz ve proje Yeteneklerinde applinks:your-app.page.link belirtmeniz gerekir.

Firebase SDK ile Bağlantıyı İşleme

iOS için Dynamic Links işleme, App Delegate veya Scene Delegate'te Firebase SDK aracılığıyla yapılır. application:continueUserActivity: yöntemi, gelen Universal Link'i yakalar ve hedef bağlantıyı ve parametreleri çıkaran Firebase Dynamic Links API'sine iletir. Firebase SDK, Firebase Installation API kısa süreli depolaması aracılığıyla yükleme verilerini isteyerek Deferred Deep Links'i otomatik olarak işler.

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'de Uygulama Örneği

Kotlin kullanarak bir Android uygulamasında Dynamic Link işlemenin tam bir örneğine bakalım. MainActivity, uygulamanın hem soğuk hem de sıcak başlatılmasında gelen Dynamic Link'i okur. Bağlantı, argümanlarla istenen ekrana gezinmek için kullanılan parametrelere ayrıştırılır. Örnek, bir promosyon kampanyası tanımlayıcısıyla promosyon sayfasına giden bir bağlantının işlenmesini gösterir.

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", "Bağlantı işleme hatası", e)
            }
    }
}

Dynamic Links Test Etme

Dynamic Links'i test etmek için Firebase Console kullanılır; burada bir test bağlantısı oluşturup messenger veya e-posta yoluyla bir cihaza gönderebilirsiniz. Firebase Dynamic Links Hata Ayıklayıcı https://your-app.page.link/?d=1 adresinde bulunur ve bağlantı davranışı hakkında ayrıntılı bilgi görüntüler. Deferred Deep Links'i test ederken, uygulamanın kaldırıldığından ve yükleme sonrası bağlantının iletilen parametrelerle doğru ekrana yönlendirdiğinden emin olmanız gerekir.

Sıkça Sorulan Sorular

Dynamic Links normal derin bağlantılardan nasıl farklıdır?

Normal derin bağlantılar yalnızca uygulama yüklüyken çalışır ve yükleme sonrası bağlamı korumaz. Dynamic Links, Deferred Deep Linking'i destekler — kullanıcı uygulamayı yükler ve korunan bağlantı parametreleriyle hemen hedef ekrana gelir.

Dynamic Links'in çalışması için sunucu gerekli mi?

Bağlantı oluşturmak ve işlemek için sunucu gerekli değildir — tüm işlemler Firebase Console, REST API veya istemci tarafında Firebase SDK aracılığıyla gerçekleştirilir. Toplu bağlantı oluşturma için REST API önerilir, ancak konsol manuel oluşturma için uygundur.

Bir Dynamic Link ne kadar yaşar?

Dynamic Links'in süresi dolmaz — manuel olarak silinmedikçe Firebase'de sonsuza kadar saklanırlar. UNIQUE sonekli kısa bağlantılar süresiz olarak var olur. Doğru atıf için her kampanya için benzersiz bağlantılar oluşturulması önerilir.

Dynamic Links internet olmadan çalışır mı?

Dynamic Link işleme, tıklama aşamasında internet bağlantısı gerektirir çünkü Firebase sunucusu uygulama yükleme durumunu kontrol eder. Bağlantı işlendikten sonra, veriler intent veya Universal Link aracılığıyla uygulamaya iletilir ve çevrimdışıyken de kullanılabilir hale gelir.

Firebase Dynamic Links ne kadar ücretlidir?

Firebase Dynamic Links, Spark planında ücretsizdir. Blaze planında, ek ücret olmaksızın proje başına günde 50 bin tıklama sınırı vardır. Sınırın aşılması, ertesi güne kadar yeni bağlantı oluşturulmasını engeller.

Özet

  • Firebase Dynamic Links — kullanıcıyı uygulamaya veya web sitesine götüren ve uygulama yoksa yükleme sonrası bağlamı koruyarak mağazaya yönlendiren akıllı bağlantılar.
  • Deferred Deep Linking — yükleme sonrası ilk başlatmada bağlamı (promosyon kodu, davet, ürün bağlantısı) iletmeyi sağlayan temel avantaj.
  • Bağlantı yapısı temel alan adı (your-app.page.link), derin bağlantı parametreleri, platform ayarları ve önizleme için sosyal meta verileri içerir.
  • Bağlantı oluşturma, Google Analytics ile entegrasyon için UTM etiketleri desteğiyle Firebase Console, REST API veya Firebase SDK aracılığıyla yapılır.
  • Android'de entegrasyon, AndroidManifest'te intent-filter ayarlamayı ve soğuk ile sıcak başlatma desteğiyle FirebaseDynamicLinks API aracılığıyla işlemeyi gerektirir.
  • iOS'ta entegrasyon, AASA dosyası, Associated Domains ve AppDelegate veya SceneDelegate'te DynamicLinks SDK aracılığıyla işleme ile Universal Links kullanır.
  • Ücretsiz — günde 50 bin tıklamaya kadar, bağlantı süresi dolmaz, bağlantı markalaması için özel alan adı oluşturma imkanı.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun