Deferred Deep Link — bu foydalanuvchi qurilmasida ilova hali o‘rnatilmagan bo‘lsa ham, o‘tishning maqsadli kontekstini saqlaydigan mexanizmdir. Branch Resources ma’lumotlariga ko‘ra, ilova o‘rnatilgandan so‘ng tizim avtomatik ravishda saqlangan kontekstni qayta ishlaydi va foydalanuvchini maqsadli ekranga yo‘naltiradi. Kechiktirilgan chuqur havola oddiy deep linkning asosiy muammosini — o‘rnatilmagan ilovalar bilan ishlay olmaslikni hal qiladi.
Asosiy
Deferred Deep Link — bu ikki bosqichda ishlaydigan chuqur havola turi: avval foydalanuvchi ilovani o‘rnatishdan oldin havolaga o‘tadi, keyin tizim o‘rnatish tugagandan so‘ng kontekstni tiklaydi. Oddiy deep link ilovani faqat allaqachon o‘rnatilgan bo‘lsa ochadi, deferred esa barcha o‘tish parametrlarini saqlaydi va ularni birinchi ishga tushirishda uzatadi.
Texnologiya, ayniqsa, mobil marketingning rivojlanishi bilan talabga aylandi, bu erda reklama kampaniyalari ko‘pincha ilovani hali o‘rnatmagan foydalanuvchilarga qaratilgan. Deferred deep linksiz har bir bunday o‘tish hech qanday kontekstsiz ilovani yuklash bilan tugaydi — foydalanuvchi maqsadli ekran o‘rniga asosiy ekranga tushadi.
Oddiy deep link allaqachon o‘rnatilgan ilovada maqsadli tarkibni ochadi. Agar ilova o‘rnatilmagan bo‘lsa, brauzer xatolikni ko‘rsatadi. Deferred Deep Link oraliq server orqali ishlaydi, u foydalanuvchini do‘konga yo‘naltiradi va o‘rnatishdan so‘ng ilovaga saqlangan parametrlar haqida xabar beradi. Shunday qilib, deferred havola ilovani oldindan o‘rnatishni talab qilmaydi va reklamadan tarkibgacha uzluksiz foydalanuvchi yo‘lini ta’minlaydi.
Deferred deep linkni qayta ishlash jarayoni uch bosqichdan iborat. Birinchi bosqichda foydalanuvchi havolaga o‘tadi — server ilova o‘rnatilgan yoki yo‘qligini aniqlaydi. Agar o‘rnatilmagan bo‘lsa, noyob sessiya identifikatorini yaratadi, o‘tish parametrlarini saqlaydi va foydalanuvchini shu identifikator bilan App Store yoki Google Play ga yo‘naltiradi.
Ikkinchi bosqichda foydalanuvchi ilovani do‘kondan o‘rnatadi. O‘rnatish va birinchi ishga tushirishdan so‘ng platforma SDK si server bilan bog‘lanadi, qurilma identifikatorini uzatadi va saqlangan o‘tish parametrlarini oladi. Uchinchi bosqichda ilova olingan ma’lumotlarni qayta ishlaydi va avtomatik ravishda foydalanuvchini maqsadli ekranga yo‘naltiradi.
Havolaga o‘tish va o‘rnatish o‘rtasida parametrlarni saqlash uchun turli mexanizmlar qo‘llaniladi. iOS da bu kalitlar to‘plami (iCloud Keychain) yoki bufer, Android da — Install Referrer API. Firebase Dynamic Links brauzerning localStorage va do‘konning referal havolasi kombinatsiyasidan foydalanadi. Branch.io bir nechta omborlarda ma’lumotlar zaxirasi bilan o‘z protokolini qo‘llaydi.
iOS da deferred deep link Universal Links va Shared Web Credentials kombinatsiyasi orqali amalga oshiriladi. Foydalanuvchi ilova saytida Universal Link orqali o‘tganda, Safari brauzeri o‘tish parametrlarini ilova domeni bilan bog‘liq iCloud Keychain da saqlaydi. Ilova App Store dan o‘rnatilgandan so‘ng iOS saqlangan ma’lumotlar mavjudligini tekshiradi va ularni birinchi ishga tushirishda ilovaga uzatadi.
Apple deferred deep link uchun o‘rnatilgan API ni ta’minlamaydi — amalga oshirish to‘liq uchinchi tomon SDK lariga tushadi. Firebase Dynamic Links passive deferred mexanizmidan foydalanadi, bunda ma’lumotlar brauzer cookie sidagi fonda saqlanadi va ilovaning birinchi ishga tushirilishida maxsus URL ga yo‘naltirish orqali tiklanadi.
iOS 14 dan boshlab, Apple maxfiylik qoidalarini kuchaytirdi, bu deferred deep link mexanizmlariga ta’sir qildi. Bufer endi foydalanuvchining aniq ruxsatisiz ma’lumotlarni o‘qish uchun ishlatilmaydi. ICloud Keychain ham ma’lumotlar hajmiga nisbatan cheklovlarga ega — har bir yozuv uchun 4 KB dan oshmasligi kerak. Bu noyob sessiya identifikatori bilan server yechimlarini kontekstni uzatish uchun afzal usulga aylantiradi.
Android Install Referrer API orqali deferred deep link uchun yanada moslashuvchan imkoniyatlarni ta’minlaydi. Foydalanuvchi Google Play ga havola orqali o‘tganda, do‘kon referrer — o‘tish parametrlari bilan qatorni qayd etadi. O‘rnatishdan so‘ng ilova bu qatorni Install Referrer API orqali oladi va undan maqsadli kontekstni chiqaradi. Bu Android da deferred deep linkning eng ishonchli mexanizmidir.
Google Play orqali tarqatilmaydigan ilovalar uchun Android referal BroadcastReceiver ni qo‘llab-quvvatlaydi. Dasturchi o‘rnatishdan so‘ng parametrlar bilan maxsus Intent yuborishi mumkin va ilova uni manifestda ro‘yxatdan o‘tgan BroadcastReceiver orqali oladi. Biroq, bu mexanizm kamroq ishonchli, chunki o‘rnatuvchining amalga oshirilishiga bog‘liq.
Install Referrer API o‘rnatish manbasi haqida ma’lumot beradi, jumladan referrer URL, o‘tish vaqti va o‘rnatish vaqti. Referrer qatorining maksimal uzunligi 8 KB ni tashkil qiladi, bu barcha kerakli deep link parametrlarini uzatish uchun yetarli. API Google Play Store versiyasi 8.3.73 va undan yuqori bo‘lgan qurilmalarda mavjud va Android 5.0 (API 21) da qo‘llab-quvvatlanadi.
Firebase Dynamic Links har ikkala platformada deferred deep linkni amalga oshirish uchun eng mashhur bepul vosita. Firebase avtomatik ravishda deferred o‘tishning barcha bosqichlarini boshqaradi: ilova mavjud bo‘lmaganda do‘konga yo‘naltirish, parametrlarni Firebase serverida saqlash va ularni ilovaning birinchi ishga tushirilishida SDK ga uzatish.
Amalga oshirish uchun Firebase SDK ni loyihaga integratsiya qilish, Firebase Console orqali chuqur havola va kampaniya parametrlari bilan Dynamic Link yaratish kifoya. Firebase SDK ilova ishga tushirilganda avtomatik ravishda chaqiriladi va getDynamicLink() metodi orqali kiruvchi Dynamic Link mavjudligini tekshiradi.
Kotlin tilida Activity da deferred Firebase Dynamic Link ni qayta ishlash namunasi. Kod ilovani ishga tushirishda cold start va warm start uchun bir xil ishlaydi.
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() metodi DynamicLink obyekti bilan PendingTask qaytaradi. Agar ilova havolaga o‘tishdan so‘ng o‘rnatilgan bo‘lsa, listener parametrlar bilan ma’lumotlarni oladi. Agar ilova o‘tishdan oldin o‘rnatilgan bo‘lsa, metod oddiy deep link bilan bir xil ma’lumotlarni qaytaradi. Havola parametrlarida minimumAppVersion bayrog‘i qayta ishlash uchun ilovaning minimal versiyasini belgilash imkonini beradi.
Deferred Deep Link marketing kampaniyalari uchun muhim afzalliklarni ta’minlaydi: foydalanuvchi o‘rnatishdan so‘ng qo‘shimcha harakatlarsiz maqsadli tarkibni oladi, bu konversiya va retentionni oshiradi. Referal dasturlar uchun deferred havolalar taklifnomani o‘rnatish va yangi foydalanuvchining harakatlari bilan aniq bog‘lash imkonini beradi.
Biroq, texnologiyaning cheklovlari ham mavjud. Deferred deep link uchinchi tomon cookie larini bloklaydigan brauzerlarda ishlamaydi va iOS 14 dan boshlab iCloud Keychain bilan ishlash uchun qo‘shimcha sozlashni talab qiladi. Bundan tashqari, havolaga o‘tish va o‘rnatish o‘rtasida bir necha kun o‘tishi mumkin va barcha SDK lar bunday davr uchun ma’lumotlarning saqlanishiga kafolat bermaydi.
Deferred deep link yangi foydalanuvchilarga qaratilgan reklama kampaniyalari, taklifnomalar bilan elektron pochta xabarlari va referal dasturlar uchun majburiydir. O‘rnatilgan foydalanuvchilar uchun oddiy deep link yetarli. Agar ilova marketing kampaniyalari va referal mexanizmlaridan foydalanmasa, deferred deep link kerak emas — Universal Links va App Links yetarli.
Amalga oshirishni tanlashda narxni hisobga oling: Firebase Dynamic Links bepul, ammo cheklangan analitikaga ega. Branch.io va AppsFlyer ilg‘or atributsiyani ta’minlaydi, ammo obuna talab qiladi. Kichik loyihalar uchun Firebase optimal yechim, o‘nlab reklama kanallari bilan enterprise uchun — tijorat MMP lari.
Tez-tez so‘raladigan savollar
Oddiy deep link o‘rnatilgan ilovani talab qiladi va uni to‘g‘ridan-to‘g‘ri ochadi. Deferred Deep Link ilova o‘rnatilmagan bo‘lsa ham ishlaydi — do‘konga yo‘naltiradi va o‘rnatishdan so‘ng o‘tish kontekstini tiklab, maqsadli ekranni ochadi.
Saqlash muddati platformaga bog‘liq. Firebase Dynamic Links parametrlarni 30 kungacha saqlaydi. Branch.io ma’lumotlarni 90 kungacha saqlaydi. Android da Install Referrer API referrer qatorini ilova tomonidan birinchi o‘qishgacha, lekin 90 kundan oshmagan holda saqlaydi.
Ish stoli kompyuterida deferred deep link ma’nosiz, chunki ilovani do‘kon orqali kompyuterda o‘rnatib bo‘lmaydi. Ish stolidan havolaga o‘tishda foydalanuvchi fallback URL — tarkibning veb versiyasini yoki mobil qurilmada o‘rnatish uchun QR kodli sahifani ko‘radi.
Chrome, Safari va Samsung Internet cookie va localStorage mexanizmlari orqali deferred deep linkni qo‘llab-quvvatlaydi. Firefox qattiq uchinchi tomon cookie bloklash siyosati tufayli cheklangan qo‘llab-quvvatlashga ega. Maksimal qamrov uchun Firebase yoki Branch.io SDK laridan foydalanish tavsiya etiladi.
Texnik jihatdan, oraliq server va referal mexanizmlar orqali mustaqil yechimni amalga oshirish mumkin. Ammo bu server infratuzilmasini ishlab chiqish va qo‘llab-quvvatlash, cookie larni boshqarish, har bir do‘kon bilan integratsiya va turli platformalarda muammolarni hal qilishni talab qiladi. Tayyor Firebase va Branch.io SDK lari rivojlanishni o‘nlab marta tezlashtiradi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.