Firebase Dynamic Links: nedir, nasıl çalışır ve geliştirmede kullanılır

Yazar: IT Sectr Yayınlanma: 2026-05-14 Okuma süresi: 8 dk

Firebase Dynamic Links, uygulamanın yüklü olup olmadığına bakılmaksızın kullanıcıyı uygulamadaki doğru yere yönlendiren akıllı bağlantılar oluşturmak için Google'ın bir hizmetidir. Firebase Dokümantasyonu'na göre Dynamic Links, uygulama yüklü değilse kullanıcıyı otomatik olarak App Store veya Google Play'e yönlendirir ve yüklemeden sonra geçiş bağlamını geri yükler. Firebase'in Akıllı Bağlantıları, yüklü olmayan uygulamalarla çalışmayan URL Scheme sorununu çözer.

Önemli Noktalar

  • Firebase Dynamic Links — iOS ve Android'de ertelenmiş derin bağlantı desteğiyle çalışan evrensel bağlantılar oluşturmak için Google'ın hizmeti.
  • Ertelenmiş — ana avantaj: bağlantı, uygulama yüklü olmasa bile geçiş bağlamını korur ve yüklemeden sonra geri yükler.
  • Analitik — Firebase, Dynamic Links tıklamalarını otomatik olarak izler ve Firebase Analytics ile Google Analytics'te veri sağlar.
  • Platformlar — Dynamic Links, iOS'ta (Universal Links aracılığıyla) ve Android'de (App Links aracılığıyla) her iki platform için tek bir evrensel bağlantıyla çalışır.
  • Oluşturma — bağlantılar, her senaryo için davranış yapılandırmasıyla Firebase Console, REST API veya istemci SDK aracılığıyla oluşturulur.

Firebase Dynamic Links, iOS ve Android'deki mobil uygulamalar için birleşik evrensel bağlantılar oluşturan Google'ın bulut hizmetidir. Dinamik bir bağlantı, uygulama içindeki içeriğe yönelik bir derin bağlantı içerir ancak normal bir HTTPS bağlantısı gibi davranır: uygulama yüklüyse doğrudan açar; yüklü değilse uygulama mağazasına yönlendirir.

Normal URL Scheme'lerin aksine Dynamic Links, ertelenmiş derin bağlantı teknolojisi sayesinde yüklü olmayan uygulamalarla çalışabilir. Bir kullanıcı bağlantıyı tıkladıktan sonra uygulamayı yüklediğinde, Firebase geçiş parametrelerini kaydeder ve ilk başlatmada iletir. Bu, referans programları, pazarlama kampanyaları ve davetiyeler için fırsatlar sunar.

Normal URL Scheme'lerden Farkı

URL Scheme'ler, uygulamanın yüklü olmasını gerektirir ve standart bir geri dönüş mekanizmasına sahip değildir. Firebase Dynamic Links, cihazdaki uygulama yükleme durumunu belirleyen ve kullanıcıyı doğru şekilde yönlendiren bir ara Firebase web hizmeti aracılığıyla bu sorunu çözer. Aynı zamanda, tek bir bağlantı her iki platformda da aynı şekilde çalışır.

Firebase Dynamic Link, Firebase Console'da kaydedilen yourcode.page.link gibi bir alan adı kullanır. Bir kullanıcı böyle bir bağlantıyı tıkladığında, Firebase cihaz türünü ve uygulama yükleme durumunu belirler. iOS için Universal Links mekanizması kullanılır, Android için Digital Asset Links aracılığıyla otomatik doğrulama ile App Links kullanılır.

İşleme süreci birkaç ardışık aşama içerir: bağlantı tıklandığında, tarayıcı Firebase sunucusuna bir GET isteği gönderir; sunucu platformu belirler ve cihazda uygulamanın varlığını kontrol eder. Uygulama yüklüyse, hedef ekranı açmak için parametrelerle birlikte bir Universal Link veya Intent'e yönlendirme oluşturulur. Uygulama yüklü değilse, indirme için App Store veya Google Play'e yönlendirir.

Dynamic Link Yaşam Döngüsü

Uygulama, Firebase SDK başlatma sırasında bağlantıyı alır. getDynamicLink() yöntemi, geçiş verileriyle birlikte bir PendingResult döndürür. Başarılı bir şekilde alındıktan sonra, derin bağlantı parametreleri, analitik için UTM etiketleri ve bağlantı oluşturulurken iletilen rastgele veriler çıkarılır.

Firebase Console, Dynamic Links oluşturmak için görsel bir arayüz sağlar. Geliştirici, derin bağlantı URL'sini, kampanya adını, iOS ve Android için ayrı ayrı ayarları ve analitik parametrelerini belirtir. Oluşturmanın ardından Firebase, https://yourcode.page.link/abc123 gibi reklam materyallerinde, e-posta kampanyalarında ve sosyal ağlarda kullanılabilecek kısa bir bağlantı oluşturur.

Dynamic Links'in programlı olarak oluşturulması için Firebase REST API veya istemci SDK kullanılır. REST API, sosyal ağ bağlantıları ve asenkron tıklama analitiği dahil olmak üzere özel parametrelerle pazarlama kampanyaları için toplu bağlantı oluşturmaya olanak tanır. API aracılığıyla bağlantı oluştururken socialMetaTagInfo parametrelerini doğru şekilde belirtmek önemlidir — bunlar, bağlantının mesajlaşma uygulamalarında ve sosyal ağlarda önizleme kartıyla paylaşıldığında nasıl görüneceğini belirler.

Dynamic Link Parametreleri

ParametreAmaçZorunlu
Deep Link URLUygulama içeriğine iç bağlantıEvet
iOS Bundle IDApp Store'daki uygulama tanımlayıcısıiOS için
Android Package NameGoogle Play'deki paket adıAndroid için
Fallback URLUygulama yoksa web sayfasıHayır
UTM EtiketleriGoogle Analytics için parametrelerHayır

iOS'ta Firebase Dynamic Links ile çalışmak için Firebase SDK'yı CocoaPods veya Swift Package Manager aracılığıyla entegre etmek, Info.plist'i GOOGLE_APP_ID ile yapılandırmak ve Dynamic Links alan adını projenin Associated Domains'ine kaydetmek gerekir. Bundan sonra uygulama, Firebase tarafından oluşturulan Universal Links'i otomatik olarak işler.

Xcode'da, applinks:yourcode.page.link gibi bir girişle Associated Domains yeteneği eklenmelidir. Firebase SDK, Universal Links'i işlemek için application(_:continue:restorationHandler:) yöntemini kullanır, bu nedenle AppDelegate ile ek entegrasyon gerekmez — Firebase, User Activity'den Dynamic Link parametrelerini otomatik olarak çıkarır.

Xcode'da Yapılandırma

Doğru Firebase başlatma ve Dynamic Link işleyici kaydı için Info.plist yapılandırma örneği. FIROptions anahtarı, GoogleService-Info.plist'ten proje tanımlayıcısını içermelidir.

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

AppDelegate proxy'si devre dışı bırakılırsa, handleUniversalLink(_:) yönteminin manuel olarak çağrılması ve continue NSUserActivity'den User Activity'nin iletilmesi gerekir. Firebase SDK, bağlantı parametrelerini otomatik olarak çıkarır ve completion handler aracılığıyla bir DynamicLink döndürür.

Android'te Firebase Dynamic Links entegrasyonu, build.gradle'a bağımlılıkların ve Firebase Console'dan google-services.json dosyasının eklenmesiyle başlar. Dynamic Links alan adı Firebase Console'da kaydedilir, ardından bu alan adına sahip tüm bağlantılar, action VIEW ile Intent Filter aracılığıyla Android uygulaması tarafından otomatik olarak tanınır. Doğru çalışma için ayrıca kök ve modül build.gradle'a Google Services eklentisinin eklenmesi ve Gradle senkronizasyonunun yapılması gerekir.

Android'te bağlantıları doğru şekilde işlemek için, gelen bağlantıları alması gereken Activity'ye Dynamic Links alan adı için bir Intent Filter eklenmesi gerekir. Filtre, https şemasını, Dynamic Links alan adı sunucunuzu ve varsayılan yolu içermelidir.

Dynamic Links için Intent Filter

yourcode.page.link alan adında Dynamic Links almak için AndroidManifest.xml'de Intent Filter örneği.

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>

Dynamic Links alan Activity için launchMode'un singleTask olarak ayarlanması önemlidir. Bu, tekrarlanan bağlantı tıklamalarında yeni bir Activity örneği oluşturulmasını önler ve tüm gelen derin bağlantıların tek bir örnekte işlenmesine olanak tanır.

Android için Firebase SDK, bağlantı verileriyle birlikte bir PendingTask nesnesi döndüren FirebaseDynamicLinks.getInstance().getDynamicLink(intent) yöntemini sağlar. DynamicLink nesnesinden derin URI, UTM parametreleri ve geçiş zaman damgası çıkarılır. İşlemenin Activity'nin onCreate() ve onNewIntent() yöntemlerinde yapılması önerilir.

İşleme sırasında, Dynamic Link'in hem soğuk başlatmadan (cold start) uygulama başlatılırken hem de başka bir uygulamadan zaten çalışan bir uygulamaya geçiş yapılırken alınabileceğini dikkate almak önemlidir. İkinci durum için onNewIntent() geçersiz kılınmalı ve Dynamic Link kontrolü yeniden çağrılmalıdır.

Kotlin Kodunda İşleme

MainActivity'de Firebase Dynamic Link alma ve işleme örneği. Kod, hem soğuk başlatmayı hem de başka bir uygulamadan geçişi işler.

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 yöntemi, link?.link aracılığıyla hedef bağlantının çıkarıldığı bir DynamicLink döndürür. Dinleyici null döndürürse, Intent'in bir Dynamic Link içermediği anlamına gelir — bu, gelen bağlantı olmadan normal bir uygulama başlatmasıdır. Campaign, medium, source ve content dahil olmak üzere tıklama analitiği için UTM etiketleri de mevcuttur ve her pazarlama kanalının etkinliğinin ayrıntılı değerlendirmesi için Google Analytics'e iletilebilir.

Sıkça Sorulan Sorular

Firebase Dynamic Links normal bir derin bağlantıdan nasıl farklıdır?

Firebase Dynamic Links, ertelenmiş derin bağlantıyı destekler — bağlantı, uygulama yüklü olmasa bile bağlamı korur. Yüklemeden sonra uygulama tüm geçiş parametrelerini alır; bu, normal URL Scheme'ler veya Universal Links ile mümkün değildir.

Firebase Dynamic Links için ödeme yapmak gerekiyor mu?

Firebase Dynamic Links, ücretsiz Firebase Spark fiyat planına dahildir. Oluşturulabilecek bağlantı sayısında herhangi bir sınır yoktur. Ancak 2024'ten itibaren Google yeni bir altyapıya geçişi duyurduğundan koşullar değişebilir.

Dynamic Links bir web uygulamasında kullanılabilir mi?

Dynamic Links mobil uygulamalar için tasarlanmıştır. Bir masaüstü web tarayıcısından bağlantı tıklandığında, geri dönüş URL'si açılacaktır. Web uygulamaları için normal bağlantıları veya kendi yönlendirme mantığınızı kullanın.

Geliştirme sırasında Dynamic Links nasıl test edilir?

Firebase Console, davranışı önizlemek için Test Dynamic Link düğmesi sağlar. Ayrıca, tüm geçiş senaryolarını yerel olarak test etmek için Firebase SDK yüklü Android öykünücüsü veya iOS simülatörünü kullanabilirsiniz.

Bir Dynamic Link kaç karakter içerebilir?

Kısa bir Firebase Dynamic Link, page.link alan adından ve yaklaşık 7 karakterlik rastgele bir sonekten oluşur. Toplam uzunluk yaklaşık 30 karakterdir. İçerideki derin bağlantı herhangi bir uzunlukta olabilir, ancak uyumluluk için 2 KB ile sınırlandırılması önerilir.

Özet

  • Firebase Dynamic Links — ertelenmiş derin bağlantı desteğiyle iOS ve Android için Google'dan birleşik evrensel bağlantılar.
  • Çalışma prensibi — bağlantı, doğru yönlendirme için cihazı ve uygulama yükleme durumunu belirleyen Firebase sunucusundan geçer.
  • Ertelenmiş — ana avantaj: mağazadan uygulama yüklemesinden sonra geçiş parametreleri kaydedilir ve geri yüklenir.
  • Oluşturma — bağlantılar, her platform için parametre yapılandırmasıyla Firebase Console, REST API veya istemci SDK aracılığıyla oluşturulur.
  • iOS Entegrasyonu — Xcode'da Associated Domains ve Firebase SDK gerektirir; Universal Links ve continue UserActivity yöntemi aracılığıyla işleme.
  • Android Entegrasyonu — bildirimde action VIEW ve Dynamic Links alan adı ile Intent Filter gerektirir, ayrıca build.gradle'da Firebase SDK.
  • Analitik — Firebase, Google Analytics için UTM etiketi desteğiyle Dynamic Links tıklamalarını otomatik olarak izler.

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