Deep Link (dərin keçid) — istifadəçini mobil tətbiq daxilindəki konkret ekrana və ya məzmuna yönləndirən, əsas ekranı keçən URL-dir. Adi veb-sayt keçidindən fərqli olaraq, deep link tətbiqi aktivləşdirir və dərhal hədəf məzmunu açır. Android Developers məlumatlarına görə, düzgün konfiqurasiya edilmiş deep linklər məzmuna qədər olan addımların sayını azaltmaqla hədəf əməliyyat üzrə konversiyanı 30–50% artırır.
Başlıca
Deep Link (dərin keçid) — klikləndikdə veb-səhifəni deyil, mobil tətbiq daxilindəki konkret ekranı açan URI-dir. Texnologiya mobil platformaların fundamental problemini həll edir: brauzer birbaşa tətbiq ekranını aça bilməz, deep link isə veb ilə native kod arasında körpü yaradır. Deep link olmadan istifadəçi həmişə əsas ekrana düşür və istədiyi məzmuna əl ilə naviqasiya etməlidir.
Deep link arxitekturası iki hissədən ibarətdir: scheme (sxem) hansı tətbiqin keçidi emal edəcəyini müəyyənləşdirir, path (yol) isə tətbiq daxilindəki konkret resursu — məhsul, məqalə, istifadəçi profili və ya parametrlər bölməsini göstərir. Sorgu parametrləri (?source=push&campaign=summer) analitika, fərdiləşdirmə və kampaniya atribusiyası üçün əlavə kontekst ötürür.
Deep link və adi keçidi fərqləndirmək vacibdir. Adi keçid (https://example.com/product/42) brauzerdə açılır və səhifənin veb versiyasına aparır. Deep link (myapp://product/42) quraşdırılmış tətbiq olduqdda eyni məzmunu native ekranda açır, tətbiq yoxdursa xəta göstərir. Məhz problemsiz fallback problemini həll etmək üçün Universal Link (iOS) və App Link (Android) yaradılmışdır.
Müxtəlif tapşırıqlar müxtəlif deep link növləri tələb edir. Bəzi keçidlər yalnız quraşdırılmış tətbiqlə işləyir, digərləri quraşdırmanı gözləyə bilir, üçüncülər isə analitik kontekst ötürür. Növün seçimi istifadə ssenarisindən asılıdır: reklam kampaniyası, push bildirişi, məzmun paylaşımı və ya email göndərişi.
Standard Deep Link — yalnız tətbiq artıq cihazda quraşdırılıbsa işləyən əsas növ. İstifadəçi myapp://product/42 keçidinə klikləyir, sistem qeydiyyatdan keçmiş sxemi müəyyənləşdirir və tətbiqi müvafiq ekranda açır. Tətbiq quraşdırılmayıbsa — brauzer “Səhifə tapılmadı” xətası göstərir və ya heç nə etmir. Bu növ artıq quraşdırılmış tətbiq daxilində naviqasiya üçün uyğundur.
Standart deep link konfiqurasiyası sadədir: URI-sxemini manifestdə (Android) və ya Info.plist-də (iOS) qeydiyyatdan keçirmək kifayətdir. Server yoxlaması və ya SSL sertifikatları tələb olunmur. Lakin fallback-in olmaması səbəbindən bu növ marketinq kampaniyaları üçün köhnəlmiş hesab olunur — tətbiqi olmayan istifadəçilərdən trafik itkisi 60%-ə çatır.
Deferred Deep Link adi deep link-lərin əsas problemini həll edir: tətbiq quraşdırılmasa belə işləyir. İstifadəçi keçidə klikləyir → səhifə (landing və ya App Store/Google Play) görür → tətbiqi quraşdırır → ilk işə salınmada tətbiq orijinal keçidin kontekstini alır və tələb olunan ekranı açır. Texnologiya konteksti ilk işə salınmaya qədər serverdə saxlayan vasitəçi SDK (AppsFlyer, Branch, Adjust) tələb edir.
Branch — deferred deep link üçün ən populyar platformalardan biridir. Bütün platformalarda işləyən vahid keçid təqdim edir: istifadəçinin OS-ni müəyyənləşdirir, tətbiq mağazasına yönləndirir, quraşdırmadan sonra kontekst ötürür (promosyon kodu, məhsul identifikatoru, kampaniya mənbəyi). Branch (2024) məlumatlarına görə, deferred deep link reklam kampaniyalarının konversiyasını 40–70% artırır.
Contextual Deep Link — kontekst parametrləri ilə əlavə edilmiş adi və ya deferred deep link-dir: trafik mənbəyi (source), kampaniya (campaign), promosyon kodu, referrer, partnyor identifikatoru. Parametrlər URL-də ötürülür və tətbiq tərəfindən fərdiləşdirmə üçün emal edilir: qarşılama bonusu göstərmək, endirimli məhsul açmaq, quraşdırma analitikasını qeyd etmək.
UTM etiketləri (utm_source, utm_medium, utm_campaign) — kontekst ötürülməsinin standart üsulu. Mobil cihazlarda kontekstli deep link atribusiya üçün kritikdir: onlarsız tətbiq sahibi hansı kanalın istifadəçini gətirdiyini bilməz — üzvi trafik, Facebook reklamı, email göndərişi və ya QR kodu. Keyfiyyətli atribusiya MMP (Mobile Measurement Partner) ilə inteqrasiya tələb edir.
| Deep Link Növü | Quraşdırma tələb edir | Gözləməni dəstəkləyir | Kontekst |
|---|---|---|---|
| Standard | Bəli | Xeyr | Yalnız URL-də |
| Deferred | Xeyr | Bəli | Server saxlaması |
| Contextual | Kənilər | Kənilər | UTM + parametrlər |
iOS deep link-i iki mexanizm vasitəsilə dəstəkləyir: köhnə Custom URL Scheme və müasir Universal Link (iOS 9+). Custom URL Scheme Info.plist-də xüsusi sxemin qeydiyyatı prinsipi ilə işləyir. Tətbiq myapp:// qeydiyyatdan keçirir və iOS belə bir keçidə klikləndikdə tətbiqi açır. Problem: sxem heç bir tətbiq tərəfindən qeydiyyatdan keçirilməyibsə, brauzer xəta göstərir.
Emal deep link iOS-da AppDelegate application(_:open:options:) və ya SceneDelegate scene(_:openURLContexts:) metodu vasitəsilə baş verir. Tərtibatçı URL-i çıxarır, yolu və parametrləri təhlil edir, sonra müvafiq ekrana naviqasiya edir. SwiftUI istifadə edildikdə, emal OpenURLAction və ya onChange(of: openURL) vasitəsilə həyata keçirilir. Vəziyyəti düzgün emal etmək vacibdir: tətbiq işə salınmamış, minimuma endirilmiş və ya aktiv ola bilər.
Security iOS-da ciddidir: Custom URL Scheme eyni sxemi qeydiyyatdan keçirmiş istənilən tətbiq tərəfindən ələ keçirilə bilər. Bu potensial zəiflikdir (URL Scheme hijacking). Buna görə Apple Universal Link-i daha təhlükəsiz alternativ kimi tövsiyə edir: yalnız təsdiqlənmiş domen sahibi keçid ləri tətbiqlə əlaqələndirə bilər. Universal Link haqqında daha çox — Universal Link məqaləsində.
Android deep link-i AndroidManifest.xml-də Intent Filter vasitəsilə tətbiq edir. Tətbiq müəyyən sxemi (myapp://) və ya konkret hostları və yolları emal edən Activity təyin edir. İstifadəçi deep link-ə kliklədikdə, Android uyğun Intent Filter-i olan Activity axtarır və onu açır. Bir neçə uyğun Activity varsa — sistem tətbiq seçimi dialoqunu göstərir.
// AndroidManifest.xml — Deep Link üçün Intent Filter
<activity
android:name=".ui.ProductActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="myapp"
android:host="product"
android:pathPrefix="/" />
</intent-filter>
</activity>
Emal Android-də deep link Activity.onCreate() və ya onNewIntent() metodunda həyata keçirilir. Tərtibatçı Intent alır, URI çıxarır və naviqasiyanı çağırır. Jetpack Navigation üçün Navigation Deep Link komponenti naviqasiya qrafəfində deep link-i deklarativ təsvir etməyə imkan verir. Android App Link (Android 6.0+) — Digital Asset Links vasitəsilə yoxlama ilə deep link təkamülü, tətbiq seçimi dialoqunu aradan qaldırır.
Android 12+ dəyişikliklərini nəzərə almaq vacibdir: API 31-dən başlayaraq, sistem deep link emal edən Activity-lər üçün exported=true-nin açıq göstərilməsini tələb edir və Intent Filter-in düzgünlüyünü yoxlayır. Google Play Store nəşr zamanı App Link yoxlamasını yoxlayır. Yoxlama olmadan Google, deep linklər saytın mövcud olmayan səhifələrinə aparırsa yeniləməni rədd edə bilər.
Konfiqurasiya deep link hər iki platforma üçün ümumi olan bir neçə mərhələni əhatə edir. İlk addım — sxem və URL strukturunu müəyyənləşdirmək. Universal Link və App Link ilə uyğunluq üçün https sxemindən (xüsusi sxem əvəzinə) istifadə etmək tövsiyə olunur. URL strukturu veb-saytın strukturunu təkrarlamalıdır: /product/42, /profile/john, /settings/notifications. Bu, məzmunun dəstəklənməsini və axtarış motorları tərəfindən indeksasiyasını asanlaşdırır.
İkinci mərhələ — tətbiq kodunda deep link emalı. Android üçün nav_graph-da deklarativ deep link ilə Jetpack Navigation tövsiyə olunur. iOS üçün — OpenURLAction emalı ilə SwiftUI NavigationStack. Üç tətbiq vəziyyətini emal etmək vacibdir: cold start (tətbiq işə salınmamış), warm start (minimuma endirilmiş) və active (ekranda). Hər vəziyyət fərqli naviqasiya məntiqi tələb edir.
Sınama deep link — ayrı bir tapşırıqdır. Android Studio Intent Filter yoxlaması üçün App Links Assistant alətini təqdim edir. iOS-da sınama Xcode vasitƏlsilƏ işə salma sxemi arqumentləri ilə URL ötürülərək aparılır. CI yoxlaması qurmaq tövsiyə olunur: deep link üzrə avtomatik keçid və gözlənən ekranın açıldığını yoxlamaq. Deferred deep link üçün sınama tam dövri əhatə edir: “quraşdırma → ilk işə salma → kontekst”. Sınama olmadan deep link tez-tez tətbiqdə naviqasiya yenilənmələri zamanı pozulur.
Tez-tez verilən suallar
Adi keçid (https://site.com/page) brauzerdə açılır. Deep link (myapp://page və ya yoxlama ilə https://site.com/page) mobil tətbiq daxilində ekran açır. Deep link hçƏ kontekst ötürə bilər: promosyon kodu, trafik mənbəyi, referal identifikatoru.
URI-sxemi — hansı tətbiqin keçidi emal etməli olduğunu müəyyənləşdirən URL prefiksidir (məsələn, myapp://, vk://, tg://). Sistem marşrutlaşdırma üçün sxemdən istifadə edir: bu sxemi qeydiyyatdan keçirmiş tətbiqi tapır və URL-i emal üçün ona ötürür.
İstifadəçi keçidə klikləyir → xidmət (Branch, AppsFlyer) konteksti yadda saxlayır → App Store/Google Play-ə yönləndirir → quraşdırma və ilk işə salmadan sonra SDK yadda saxlanılan konteksti tətbiqə ötürür → tətbiq tələb olunan ekranı açır, sanki istifadəçinin artıq tətbiqi var idi.
Adi deep link — xeyr. Deferred deep link — bəli, tətbiq mağazasına yönləndirən və konteksti saxlayan aralıq səhifə sayəsində. Universal Link və App Link tətbiq quraşdırılmayıbsa saytı fallback kimi açır.
Android-də adb istifadə edin: adb shell am start -W -a android.intent.action.VIEW -d “myapp://product/42”. iOS-da — xcrun simctl openurl booted “myapp://product/42”. Hər iki platforma üçün Firebase Dynamic Links və Branch sınama konsolları mövcuddur.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun