Deferred Deep Link: چیست، چگونه کار می‌کند و در توسعه استفاده می‌شود

نویسنده: IT Sectr منتشر شده: 2026-05-15 زمان مطالعه: 8 دقیقه

Deferred Deep Link — مکانیسمی است که کنتکست هدف انتقال را حفظ می‌کند، حتی اگر نرم‌افزار هنوز بر روی دستگاه کاربر نصب نشده باشد. به گزارش Branch Resources، پس از نصب نرم‌افزار، سیستم به طور خودکار کنتکست ذخیره‌شده را پردازش و کاربر را به صفحه هدف هدایت می‌کند. لینک عمیق باتاخیر مشکل اصلی deep link عادی را حل می‌کند — ناقابلیت کار با نرم‌افزارهای نصب‌نشده.

نکات اصلی

  • Deferred Deep Link — لینک عمیقی است که کنتکست انتقال را حفظ کرده و پس از نصب نرم‌افزار آن را بازیابی می‌کند.
  • اصل — مرورگر پارامترهای لینک را در localStorage یا حافظه موقت ذخیره می‌کند، و SDK نرم‌افزار آنها را در اولین بار اجرا پس از نصب می‌خواند.
  • Firebase Dynamic Links — سرویس رایگان برای پیاده‌سازی deferred deep link با ادغام حداقل از طریق SDK.
  • Branch.io — پلتفرم تجاری با پشتیبانی پیشرفته از deferred deep link و اسناد نصب.
  • محدودیت — deferred deep link در تمامی مرورگرها کار نمی‌کند و با تغییر قوانین پلتفرم نیازمند به‌روزرسانی SDK است.

Deferred Deep Link — نوعی لینک عمیق است که در دو مرحله کار می‌کند: ابتدا کاربر قبل از نصب نرم‌افزار از لینک پیرویی می‌کند، و سپس سیستم پس از تکمیل نصب، کنتکست را بازیابی می‌کند. لینک عمیق عادی نرم‌افزار را تنها اگر از قبل نصب شده باشد باز می‌کند، اما deferred تمامی پارامترهای انتقال را حفظ کرده و آنها را در اولین بار اجرا منتقل می‌کند.

این فناوری به ویژه با رشد بازاریابی موبایل مورد تقاضا قرار گرفت، جایی که کمپین‌های تبلیغاتی اغلب به کاربرانی هدف گیرند که هنوز نرم‌افزار را نصب نکرده‌اند. بدون deferred deep link، هر چنین انتقالی به سادگی با دانلود نرم‌افزار بدون هیچ کنتکستی پایان می‌یافت — کاربر به جای صفحه هدف، به صفحه اصلی می‌رفت.

تفاوت با deep link عادی

Deep link عادی محتوای هدف را در نرم‌افزار از قبل نصب‌شده باز می‌کند. اگر نرم‌افزار نصب نشده باشد، مرورگر خطا نشان می‌دهد. Deferred Deep Link از طریق یک سرور واسطه کار می‌کند که کاربر را به فروشگاه هدایت کرده و پس از نصب، پارامترهای ذخیره‌شده را به نرم‌افزار اطلاع می‌دهد. به این ترتیب، لینک deferred نیازی به نصب قبلی نرم‌افزار ندارد و مسیر کاربر را از تبلیغ تا محتوا بدون قطعی تامین می‌کند.

Deferred Deep Link چگونه کار می‌کند

فرآیند پردازش deferred deep link از سه مرحله تشکیل شده است. در مرحله اول، کاربر از لینک پیرویی می‌کند — سرور تعیین می‌کند که آیا نرم‌افزار نصب شده است یا خیر. اگر نشده باشد، یک شناسه جلسه منحصربه‌فرد تولید کرده، پارامترهای انتقال را ذخیره کرده و کاربر را با این شناسه به App Store یا Google Play هدایت می‌کند.

در مرحله دوم، کاربر نرم‌افزار را از فروشگاه نصب می‌کند. پس از نصب و اولین بار اجرا، SDK پلتفرم با سرور ارتباط برقرار کرده، شناسه دستگاه را ارسال کرده و پارامترهای انتقال ذخیره‌شده را دریافت می‌کند. در مرحله سوم، نرم‌افزار داده‌های دریافتی را پردازش کرده و به طور خودکار کاربر را به صفحه هدف هدایت می‌کند.

چرخه عمر لینک deferred

برای ذخیره پارامترها بین انتقال از لینک و نصب، از مکانیسم‌های مختلفی استفاده می‌شود. در iOS این زنجیره کلید (iCloud Keychain) یا حافظه موقت است، در Android — Install Referrer API. Firebase Dynamic Links از ترکیبی از localStorage مرورگر و لینک ارجاعی فروشگاه برای انتقال شناسه جلسه استفاده می‌کند. Branch.io پروتکل خود را با ذخیره‌سازی اطلاعات در چند مکان ذخیره اعمال می‌کند.

Deferred Deep Link در iOS

در iOS، deferred deep link از طریق ترکیب Universal Links و Shared Web Credentials پیاده‌سازی می‌شود. وقتی کاربر از طریق Universal Link در سایت نرم‌افزار ورود می‌کند، مرورگر Safari پارامترهای انتقال را در iCloud Keychain مرتبط با دامنه نرم‌افزار ذخیره می‌کند. پس از نصب نرم‌افزار از App Store، iOS وجود داده‌های ذخیره‌شده را بررسی کرده و آنها را در اولین بار اجرا به نرم‌افزار منتقل می‌کند.

Apple API ساخته‌شده‌ای برای deferred deep link ارائه نمی‌دهد — پیاده‌سازی تماما بر عهده SDKهای شخص ثالث است. Firebase Dynamic Links از مکانیسم passive deferred استفاده می‌کند، که در آن داده‌ها در کوکی مرورگر ذخیره شده و از طریق انتقال به URL خاصی در اولین بار اجرای نرم‌افزار بازیابی می‌شوند.

محدودیت‌ها در iOS

از iOS 14 به بعد، Apple قوانین حریم خصوصی را سفت‌گیرتر کرده است که بر مکانیسم‌های deferred deep link تأثیر گذاشته است. حافظه موقت دیگر نمی‌تواند بدون اجازه صریح کاربر برای خواندن داده‌ها استفاده شود. iCloud Keychain نیز محدودیت حجم داده دارد — حداکثر 4 کیلوبایت در هر نوشته. این راه‌حل‌های سروری با شناسه جلسه منحصربه‌فرد را به روش ترجیحی برای انتقال کنتکست تبدیل می‌کند.

Deferred Deep Link در Android

Android امکانات انعطاف‌پذیرتری برای deferred deep link از طریق Install Referrer API فراهم می‌کند. وقتی کاربر از طریق لینک وارد Google Play می‌شود، فروشگاه referrer را ثبت می‌کند — رشته‌ای با پارامترهای انتقال. پس از نصب، نرم‌افزار این رشته را از طریق Install Referrer API دریافت کرده و کنتکست هدف را از آن استخراج می‌کند. این متکی بهترین مکانیسم deferred deep link در Android است.

برای نرم‌افزارهایی که از طریق Google Play توزیع نمی‌شوند، Android از BroadcastReceiver ارجاعی پشتیبانی می‌کند. توسعه‌دهنده می‌تواند پس از نصب، یک Intent سفارشی با پارامترها ارسال کند و نرم‌افزار آن را از طریق BroadcastReceiver ثبت‌شده در مانیفست دریافت می‌کند. اما این مکانیسم کمتر قابل اعتماد است چون به طرز پیاده‌سازی نصب‌کننده بستگی دارد.

Install Referrer API

Install Referrer API اطلاعاتی درباره منبع نصب ارائه می‌دهد، از جمله URL ارجاع‌دهنده، زمان انتقال و زمان نصب. حداکثر طول رشته referrer 8 کیلوبایت است که برای انتقال تمامی پارامترهای مورد نیاز deep link کافی است. API در دستگاه‌هایی با Google Play Store نسخه 8.3.73 و بالاتر در دسترس است و از Android 5.0 (API 21) پشتیبانی می‌کند.

پیاده‌سازی از طریق Firebase Dynamic Links

Firebase Dynamic Links محبوبترین ابزار رایگان برای پیاده‌سازی deferred deep link در هر دو پلتفرم است. Firebase به طور خودکار تمامی مراحل انتقال deferred را مدیریت می‌کند: انتقال به فروشگاه در صورت عدم وجود نرم‌افزار، ذخیره پارامترها در سرور Firebase و انتقال آنها به SDK در اولین بار اجرای نرم‌افزار.

برای پیاده‌سازی کافی است Firebase SDK را در پروژه ادغام کنید، از طریق Firebase Console یک Dynamic Link با لینک عمیق و پارامترهای کمپین ایجاد کنید. Firebase SDK به طور خودکار با راه‌اندازی نرم‌افزار فراخوانده شده و وجود Dynamic Link وارده را از طریق روش getDynamicLink() بررسی می‌کند.

نمونه تنظیم پردازش

نمونه پردازش deferred Firebase Dynamic Link در Activity به زبان Kotlin. کد برای cold start و warm start در راه‌اندازی نرم‌افزار به یکسان کار می‌کند.

kotlin
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() یک PendingTask با شیئی DynamicLink بازمی‌گرداند. اگر نرم‌افزار پس از انتقال از لینک نصب شده باشد، listener داده‌ها را با پارامترها دریافت خواهد کرد. اگر نرم‌افزار قبل از انتقال نصب شده بود، روش همان داده‌ها را مانند deep link عادی بازمی‌گرداند. پرچم minimumAppVersion در پارامترهای لینک به شما امکان تعیین حداقل نسخه نرم‌افزار را برای پردازش می‌دهد.

مزایا و محدودیتهای Deferred Deep Link

Deferred Deep Link مزایای قابل توجهی برای کمپین‌های بازاریابی فراهم می‌کند: کاربر پس از نصب بدون انجام عمل اضافه‌ای محتوای هدف را دریافت می‌کند که نرخ تبدیل و بازگشت را افزایش می‌دهد. برای برنامه‌های ارجاعی، لینک‌های deferred امکان ارتباط قطعی دعوت را با نصب و فعالیت‌های کاربر جدید فراهم می‌کنند.

اما این فناوری محدودیت‌هایی نیز دارد. Deferred deep link در مرورگرهایی که کوکی‌های شخص ثالث را بلوک می‌کنند کار نمی‌کند و در iOS از نسخه 14 به بعد برای کار با iCloud Keychain نیازمند تنظیمات اضافه‌ای است. علاوه بر این، بین انتقال از لینک و نصب ممکن است چند روز فاصله باشد و همه SDKها حفظ داده‌ها را در این مدت تضمین نمی‌کنند.

وقتی از deferred deep link استفاده کنیم

Deferred deep link برای کمپین‌های تبلیغاتی برای کاربران جدید، ارسال‌های ایمیل با دعوت‌نامه و برنامه‌های ارجاعی اجباری است. برای کاربرانی که از قبل نرم‌افزار را نصب کرده‌اند، deep link عادی کافی است. اگر نرم‌افزار از کمپین‌های بازاریابی و مکانیسم‌های ارجاعی استفاده نمی‌کند، deferred deep link لازم نیست — Universal Links و App Links کافی استند.

در انتخاب طرز پیاده‌سازی، هزینه را در نظر بگیرید: Firebase Dynamic Links رایگان است اما تحلیل محدودی دارد. Branch.io و AppsFlyer اسناد پیشرفته ارائه می‌دهند اما نیازمند اشتراک هستند. برای پروژه‌های کوچک، Firebase راه‌حل بهینه، و برای enterprise با دهها کانال تبلیغاتی — MMPهای تجاری مناسب است.

سوالات متداول

Deferred deep link چه تفاوتی با deep link عادی دارد؟

Deep link عادی نیازمند نرم‌افزار نصب‌شده است و آن را مستقیما باز می‌کند. Deferred Deep Link حتی اگر نرم‌افزار نصب نشده باشد کار می‌کند — آن را به فروشگاه هدایت کرده و پس از نصب کنتکست انتقال را بازیابی کرده و صفحه هدف را باز می‌کند.

پارامترهای deferred deep link چقدر ذخیره می‌شوند؟

مدت ذخیره به پلتفرم بستگی دارد. Firebase Dynamic Links پارامترها را تا 30 روز ذخیره می‌کند. Branch.io داده‌ها را تا 90 روز حفظ می‌کند. در Android، Install Referrer API رشته referrer را تا زمان اولین خواندن توسط نرم‌افزار نگه می‌دارد، اما نه بیش از 90 روز.

آیا deferred deep link در مرورگر روی رایانه کار می‌کند؟

در رایانه، deferred deep link معنایی ندارد چون نرم‌افزار را نمی‌توان از طریق فروشگاه روی کامپیوتر نصب کرد. پس از کلیک روی لینک از رایانه، کاربر fallback URL را مشاهده خواهد کرد — نسخه وب محتوا یا صفحه‌ای با کد QR برای نصب روی دستگاه موبایل.

کدام مرورگرها از deferred deep link پشتیبانی می‌کنند؟

Chrome، Safari و Samsung Internet از deferred deep link از طریق مکانیسم‌های cookie و localStorage پشتیبانی می‌کنند. Firefox به دلیل سیاست سفتگیرانه بلوک کوکی شخص ثالث پشتیبانی محدودی دارد. برای پوشش حداکثر، توصیه می‌شود از SDK های Firebase یا Branch.io استفاده کنید.

آیا می‌توان deferred deep link را بدون SDK شخص ثالث پیاده کرد؟

از نظر فنی، می‌توان راه‌حل مستقلی از طریق یک سرور واسطه و مکانیسم‌های ارجاعی ایجاد کرد. اما این نیازمند توسعه و نگهداری زیرساخت سرور، مدیریت cookie، ادغام با هر فروشگاه و حل مشکلات در پلتفرم‌های مختلف است. SDKهای حاضر Firebase و Branch.io توسعه را چندین برابر سریع‌تر می‌کنند.

خلاصه

  • Deferred Deep Link — لینک عمیق با بازیابی تاخیری کنتکست پس از نصب نرم‌افزار، حل مشکل deep link‌های عادی.
  • اصل — انتقال از لینک پارامترها را در سرور ذخیره می‌کند، پس از نصب SDK با سرور ارتباط برقرار کرده و کنتکست را بازیابی می‌کند.
  • iOS — از طریق iCloud Keychain و Shared Web Credentials با محدودیت‌هایی از iOS 14 پیاده می‌شود.
  • Android — از Install Referrer API گوگل پلی استفاده می‌کند، متکی بهترین مکانیسم deferred deep link در پلتفرم‌های موبایل.
  • Firebase Dynamic Links — راه‌حل رایگان با ادغام حداقل، مناسب برای اکثر پروژه‌ها.
  • Branch.io — پلتفرم تجاری با اسناد پیشرفته، deepview و ادغام با شبکه‌های تبلیغاتی.
  • کاربرد — deferred deep link برای کمپین‌های تبلیغاتی، برنامه‌های ارجاعی و بازاریابی ایمیل برای کاربران جدید ضروری است.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید