Deep Linking Nedir?
Deep linking, bir URL aracılığıyla uygulamanın belirli bir ekranına veya içeriğine doğrudan yönlendirme yapma tekniğidir. Web'deki URL yapısına benzer şekilde, kullanıcıyı uygulamanın ana sayfası yerine ilgili sayfaya götürür. Örneğin bir e-ticaret uygulamasında doğrudan ürün sayfasına, bir sosyal medya uygulamasında belirli bir profile yönlendirme yapılabilir.
Deep Link Türleri
URI Scheme (Custom Scheme)
- Format: - En basit deep link türü
- Uygulama yüklü değilse hiçbir şey olmaz (hata veya boş sayfa)
- iOS ve Android'de ve ile tanımlanır
- Aynı scheme'i birden fazla uygulama kullanabilir (güvenlik riski)
Universal Links (iOS)
- Format: - HTTPS URL'leri doğrudan uygulamayı açar
- Uygulama yüklü değilse web sayfası açılır (fallback)
- (AASA) dosyası gerekir
- Domain doğrulaması ile güvenli (sadece domain sahibi kullanabilir)
- iOS 9+ destekli, iOS 14+ ile geliştirilmiş doğrulama
App Links (Android)
- Format: - Universal Links'in Android karşılığı
- dosyası domain'de host edilir
- ile otomatik doğrulama
- Android 6+ destekli
- Intent filter ile tanımlanır
Deferred Deep Linking
- Uygulama yüklü olmadığında bile çalışır
- Kullanıcı store'a yönlendirilir → uygulama indirilir → ilk açılışta ilgili sayfaya gider
- Branch.io, AppsFlyer, Adjust gibi araçlarla yapılır
- Attribution (kaynak takibi) için de kullanılır
Kurulum
iOS Universal Links
- Apple Developer Portal'da Associated Domains ekle
- Xcode'da Associated Domains capability'si aç
- domain'ini ekle
- Web sunucusunda AASA dosyasını yayınla:
\
Android App Links
- 'e intent filter ekle:
2. Web sunucusunda assetlinks.json dosyasını yayınla:
\
React Native / Expo ile Deep Linking
expo-router (Önerilen)
- Dosya tabanlı routing ile otomatik deep link eşleştirme
- içinde scheme tanımla
- Universal links için associated domains ayarla
React Navigation
- config ile URL → ekran eşleştirmesi
- ile desteklenen URL şemalarını belirle
- Nested navigator'larda path yapılandırması
Kullanım Alanları
- Pazarlama kampanyaları: E-posta, SMS, reklam → uygulamadaki belirli sayfa
- Sosyal paylaşım: Paylaşılan içeriğe doğrudan erişim
- QR kod: Fiziksel materyallerden uygulamaya yönlendirme
- Push bildirim: Bildirime tıklandığında ilgili sayfayı açma
- Web-to-app: Web sitesinden uygulama deneyimine geçiş
- Referral sistemi: Davet linkleri ile kullanıcı kazanımı
Test ve Debug
- iOS: - Android: - Branch.io Dashboard: Link performans takibi
- Apple AASA Validator: AASA dosyasını doğrulama
- Android App Links Assistant: Android Studio'da link doğrulama
Yaygın Sorunlar
| Sorun | Çözüm |
|---|---|
| Universal link çalışmıyor | AASA dosyası HTTPS ile erişilebilir olmalı, CDN cache temizle |
| Android App Link onaylanmıyor | assetlinks.json SHA256 fingerprint'i kontrol et |
| Deferred deep link çalışmıyor | Branch/AppsFlyer SDK doğru entegre edilmiş mi kontrol et |
| Link web'de açılıyor | iOS'ta long press → uygulamada aç seçeneği kaybolmuş olabilir |
2026 İtibariyle Güncel Durum
- Apple, AASA dosyası için CDN dağıtımını zorunlu hale getirdi (apple-cloudkit.com üzerinden doğrulama)
- Android 15 ile App Links doğrulaması daha katı hale geldi
- Branch.io ve AppsFlyer sektör standardı olmaya devam ediyor
- expo-router v4 ile deep linking kurulumu çok daha kolay
Deep linking, kullanıcı deneyiminin en kritik parçalarından biridir. Doğru yapılandırılmış universal/app links ile kullanıcıyı doğrudan istediğiniz içeriğe yönlendirebilirsiniz.