Deferred Deep Link, uygulama kullanıcının cihazında henüz yüklenmemiş olsa bile hedef geçiş bağlamını koruyan bir mekanizmadır. Branch Resources'a göre, uygulama yüklemesinden sonra sistem otomatik olarak kaydedilmiş bağlamı işler ve kullanıcıyı hedef ekrana yönlendirir. Deferred Deep Link, normal bir deep link'in ana sorununu — yüklenmemiş uygulamalarla çalışamama — çözer.
Anahtar Noktalar
Deferred Deep Link, iki aşamada çalışan bir derin bağlantı türüdür: önce kullanıcı uygulama yüklenmeden önce bağlantıya tıklar, ardından yükleme tamamlandıktan sonra sistem bağlamı geri yükler. Normal bir deep link, uygulama zaten yüklüyse açar, deferred ise tüm geçiş parametrelerini kaydeder ve ilk çalıştırmada iletir.
Bu teknoloji, mobil pazarlamanın büyümesiyle özellikle talep görmeye başladı; reklam kampanyaları genellikle henüz uygulamayı yüklememiş kullanıcıları hedefler. Deferred deep link olmadan, bu tür her geçiş, herhangi bir bağlam olmadan yalnızca uygulamanın indirilmesiyle sonuçlanırdı — kullanıcı hedef ekran yerine ana ekrana ulaşırdı.
Normal bir deep link, zaten yüklü bir uygulamada hedef içeriği açar. Uygulama yüklü değilse, tarayıcı bir hata gösterir. Deferred Deep Link, kullanıcıyı mağazaya yönlendiren ve yüklemeden sonra uygulamayı kaydedilen parametreler hakkında bilgilendiren bir ara sunucu üzerinden çalışır. Böylece, deferred bağlantı, uygulamanın önceden yüklenmesini gerektirmez ve reklamdan içeriğe kadar uçtan uca bir kullanıcı yolculuğu sağlar.
Deferred deep link işleme üç aşamadan oluşur. İlk aşamada, kullanıcı bağlantıya tıklar — sunucu, uygulamanın yüklü olup olmadığını belirler. Yüklü değilse, benzersiz bir oturum tanımlayıcısı oluşturur, geçiş parametrelerini kaydeder ve kullanıcıyı bu tanımlayıcıyla App Store veya Google Play'e yönlendirir.
İkinci aşamada, kullanıcı mağazadan uygulamayı yükler. Yükleme ve ilk çalıştırmadan sonra, platform SDK'sı sunucuyla iletişime geçer, cihaz tanımlayıcısını iletir ve kaydedilmiş geçiş parametrelerini alır. Üçüncü aşamada, uygulama alınan verileri işler ve kullanıcıyı otomatik olarak hedef ekrana yönlendirir.
Bağlantı tıklaması ve yükleme arasında parametreleri kaydetmek için çeşitli mekanizmalar kullanılır. iOS'ta bu, iCloud Keychain veya pano; Android'te ise Install Referrer API'dir. Firebase Dynamic Links, oturum tanımlayıcısını iletmek için tarayıcı localStorage'ı ve mağaza yönlendirme bağlantısının bir kombinasyonunu kullanır. Branch.io, birden çok depoda veri yedeklemesiyle kendi protokolünü kullanır.
iOS'ta deferred deep link, Universal Links ve Shared Web Credentials kombinasyonuyla uygulanır. Kullanıcı, uygulamanın web sitesindeki bir Universal Link'e tıkladığında Safari, geçiş parametrelerini uygulamanın alan adıyla ilişkili iCloud Keychain'de kaydeder. Uygulama App Store'dan yüklendikten sonra iOS, kaydedilmiş verilerin varlığını kontrol eder ve ilk çalıştırmada uygulamaya iletir.
Apple, deferred deep link için yerleşik bir API sağlamaz — uygulama tamamen üçüncü taraf SDK'lara bırakılmıştır. Firebase Dynamic Links, verilerin tarayıcı çerezlerinde kaydedildiği ve uygulamanın ilk çalıştırmasında özel bir URL'ye yönlendirme yoluyla geri yüklendiği bir passive deferred mekanizması kullanır.
iOS 14'ten itibaren Apple, gizlilik kurallarını sıkılaştırarak deferred deep link mekanizmalarını etkiledi. Pano, kullanıcının açık izni olmadan veri okumak için artık kullanılamaz. iCloud Keychain'in ayrıca veri hacmi sınırları vardır — her yazma işlemi için en fazla 4 KB. Bu, benzersiz oturum tanımlayıcısına sahip sunucu tarafı çözümlerini bağlam iletmek için tercih edilen yöntem haline getirir.
Android, Install Referrer API aracılığıyla deferred deep link için daha esnek seçenekler sunar. Kullanıcı Google Play'e bir bağlantıya tıkladığında, mağaza referrer'ı (geçiş parametrelerini içeren bir dize) yakalar. Yüklemeden sonra, uygulama bu diziyi Install Referrer API aracılığıyla alır ve hedef bağlamı çıkarır. Bu, Android'teki en güvenilir deferred deep link mekanizmasıdır.
Google Play dışında dağıtılan uygulamalar için Android, bir yönlendirme BroadcastReceiver'ı destekler. Geliştirici, yüklemeden sonra parametrelerle özel bir Intent gönderebilir ve uygulama, manifest dosyasında kayıtlı bir BroadcastReceiver aracılığıyla alır. Ancak bu mekanizma, yükleyici uygulamasına bağlı olduğu için daha az güvenilirdir.
Install Referrer API, referrer URL'si, tıklama süresi ve yükleme süresi dahil olmak üzere yükleme kaynağı hakkında bilgi sağlar. Maksimum referrer dize uzunluğu 8 KB'dır ve bu, gerekli tüm derin bağlantı parametrelerini iletmek için yeterlidir. API, Google Play Store sürümü 8.3.73 ve üzeri cihazlarda kullanılabilir ve Android 5.0 (API 21) tarafından desteklenir.
Firebase Dynamic Links, her iki platformda deferred deep link uygulamak için en popüler ücretsiz araçtır. Firebase, deferred geçişin tüm aşamalarını otomatik olarak yönetir: uygulama olmadığında mağazaya yönlendirme, Firebase sunucusunda parametreleri depolama ve uygulamanın ilk çalıştırmasında SDK'ya iletme.
Uygulamak için, projeye Firebase SDK'sını entegre edin, derin bağlantıyı ve kampanya parametrelerini belirterek Firebase Console üzerinden bir Dynamic Link oluşturun. Firebase SDK'sı, uygulama başlatıldığında otomatik olarak çağrılır ve getDynamicLink() yöntemiyle gelen Dynamic Link'i kontrol eder.
Kotlin'de bir Activity'de ertelenmiş Firebase Dynamic Link işleme örneği. Kod, uygulama başlatıldığında hem cold start hem de warm start için aynı şekilde çalışır.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
checkDeferredLink()
}
private fun checkDeferredLink() {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener link ->
val deferredLink = link?.link.toString()
if (deferredLink.isNotEmpty()) {
navigateToContent(deferredLink)
}
}
}
}
getDynamicLink() yöntemi, bir DynamicLink nesnesiyle PendingTask döndürür. Bağlantıya tıkladıktan sonra uygulama yüklenmişse, dinleyici parametrelerle veri alır. Geçişten önce uygulama zaten yüklüyse, yöntem normal bir deep link ile aynı verileri döndürür. Bağlantı parametrelerindeki minimumAppVersion bayrağı, işleme için minimum uygulama sürümünü ayarlamaya olanak tanır.
Deferred Deep Link, pazarlama kampanyaları için önemli avantajlar sağlar: kullanıcı, ek işlem yapmadan yüklemeden sonra hedef içeriği alır, bu da dönüşümü ve elde tutmayı artırır. Yönlendirme programları için deferred bağlantılar, daveti yükleme ve yeni kullanıcı eylemleriyle açık bir şekilde ilişkilendirmeye olanak tanır.
Ancak teknolojinin sınırlamaları da vardır. Deferred deep link, üçüncü taraf çerezleri engelleyen tarayıcılarda çalışmaz ve iOS sürüm 14'ten itibaren iCloud Keychain için ek yapılandırma gerektirir. Ayrıca, bağlantı tıklaması ve yükleme arasında birkaç gün geçebilir ve tüm SDK'lar bu süre boyunca veri korumayı garanti etmez.
Deferred deep link, yeni kullanıcıları hedefleyen reklam kampanyaları, davetiyeli e-posta bültenleri ve yönlendirme programları için zorunludur. Zaten yüklü kullanıcılar için normal bir deep link yeterlidir. Uygulama pazarlama kampanyaları veya yönlendirme mekanizmaları kullanmıyorsa, deferred deep link gerekli değildir — Universal Links ve App Links yeterlidir.
Bir uygulama seçerken maliyeti göz önünde bulundurun: Firebase Dynamic Links ücretsizdir ancak sınırlı analitiğe sahiptir. Branch.io ve AppsFlyer gelişmiş atıf sağlar ancak abonelik gerektirir. Küçük projeler için Firebase en uygun çözümdür; düzinelerce reklam kanalı olan kurumsal şirketler için ticari MMP'ler seçimdir.
Sıkça Sorulan Sorular
Normal deep link, uygulamanın yüklü olmasını gerektirir ve doğrudan açar. Deferred Deep Link, uygulama yüklü olmasa bile çalışır — mağazaya yönlendirir ve yüklemeden sonra geçiş bağlamını geri yükleyerek hedef ekranı açar.
Saklama süresi platforma bağlıdır. Firebase Dynamic Links parametreleri 30 güne kadar saklar. Branch.io verileri 90 güne kadar korur. Android'te, Install Referrer API, referrer dizesini uygulama tarafından ilk okumaya kadar saklar, ancak 90 günü geçmez.
Masaüstünde, deferred deep link anlamlı değildir çünkü uygulama bir bilgisayarda mağaza üzerinden yüklenemez. Masaüstünden bir bağlantıya tıklandığında, kullanıcı bir yedek URL görecektir — içeriğin web sürümü veya mobil cihazda yükleme için QR kodlu bir sayfa.
Chrome, Safari ve Samsung Internet, çerez ve localStorage mekanizmaları aracılığıyla deferred deep link'i destekler. Firefox, katı üçüncü taraf çerez engelleme politikası nedeniyle sınırlı desteğe sahiptir. Maksimum kapsama için Firebase veya Branch.io SDK kullanılması önerilir.
Teknik olarak, bir ara sunucu ve yönlendirme mekanizmaları aracılığıyla özel bir çözüm uygulanabilir. Ancak bu, sunucu altyapısının geliştirilmesi ve bakımı, çerezlerin yönetimi, her mağazayla entegrasyon ve farklı platformlardaki sorunların çözülmesini gerektirir. Hazır Firebase ve Branch.io SDK'ları, geliştirmeyi onlarca kat hızlandırır.
Özet
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.
Ayrıca okuyun