Deep Link (link profund) — este un URL care direcționează utilizatorul către un ecran sau conținut specific din aplicația mobilă, ocolind ecranul principal. Spre deosebire de un link obișnuit către un site web, deep link activează aplicația și deschide imediat conținutul țintă. Potrivit Android Developers, deep link-urile configurate corect cresc conversia către acțiunea țintă cu 30–50% datorită reducerii numărului de pași până la conținut.
Principalele
Deep Link (link profund) — este un URI care, la click, deschide nu o pagină web, ci un ecran specific din aplicația mobilă. Tehnologia rezolvă o problemă fundamentală a platformelor mobile: browserul nu poate deschide direct un ecran al aplicației, iar deep link creează o punte între web și codul nativ. Fără deep link, utilizatorul ajunge mereu pe ecranul principal și trebuie să navigheze manual la conținutul dorit.
Arhitectura deep link constă din două părți: schema (scheme) determină ce aplicație trebuie să proceseze linkul, iar calea (path) indică resursa specifică din aplicație — produs, articol, profil de utilizator sau secțiunea de setări. Parametrii de interogare (?source=push&campaign=summer) transmit context suplimentar pentru analitică, personalizare și atribuire campanii.
Este important să facem distincție între deep link și linkul obișnuit. Un link obișnuit (https://example.com/product/42) se deschide într-un browser și duce la versiunea web a paginii. Deep link (myapp://product/42) cu aplicația instalată deschide ecranul nativ cu același conținut, iar dacă aplicația lipsește — afișează o eroare. Tocmai pentru rezolvarea problemei de fallback fără probleme au fost create Universal Link (iOS) și App Link (Android).
Sarcini diferite necesită tipuri diferite de deep link. Unele linkuri funcționează doar cu aplicația instalată, altele pot aștepta instalarea, iar altele transmit context analitic. Alegerea tipului depinde de scenariul de utilizare: campanie publicitară, notificare push, partajare de conținut sau trimitere prin email.
Standard Deep Link — tipul de bază care se activează doar dacă aplicația este deja instalată pe dispozitiv. Utilizatorul face click pe linkul myapp://product/42, sistemul identifică schema înregistrată și deschide aplicația pe ecranul corespunzător. Dacă aplicația nu este instalată — browserul afișează eroarea „Pagina nu a fost găsită” sau pur și simplu nu face nimic. Acest tip este potrivit pentru navigare internă într-o aplicație deja instalată.
Configurarea deep link-ului standard este simplă: este suficient să înregistrați URI-schema în manifest (Android) sau Info.plist (iOS). Nu necesită validare server sau certificate SSL. Dar tocmai din cauza lipsei de fallback, acest tip este considerat depășit pentru campanii de marketing — pierderea de trafic de la utilizatorii fără aplicație ajunge la 60%.
Deferred Deep Link rezolvă principala problemă a deep link-urilor obișnuite: funcționează chiar dacă aplicația nu este instalată. Utilizatorul face click pe link → vede o pagină (landing sau App Store/Google Play) → instalează aplicația → la prima lansare, aplicația primește contextul linkului original și deschide ecranul dorit. Tehnologia necesită un SDK intermediar (AppsFlyer, Branch, Adjust) care stochează contextul pe server până la prima lansare.
Branch — una dintre cele mai populare platforme pentru deferred deep link. Oferă un link unic care funcționează pe toate platformele: detectează sistemul de operare al utilizatorului, redirecționează către magazinul de aplicații, iar după instalare transmite contextul (cod promoțional, identificator produs, sursa campaniei). Conform datelor Branch (2024), deferred deep link-urile cresc conversia campaniilor publicitare cu 40–70%.
Contextual Deep Link — este un deep link obișnuit sau amânat, completat cu parametri de context: sursa de trafic (source), campania (campaign), cod promoțional, referrer, identificator partener. Parametrii sunt transmiși în URL și procesați de aplicație pentru personalizare: afișarea unui bonus de bun venit, deschiderea unui produs cu discount, înregistrarea analiticii instalării.
Etichetele UTM (utm_source, utm_medium, utm_campaign) — metoda standard de transmitere a contextului. În mobile, deep link-urile contextuale sunt critice pentru atribuire: fără ele, proprietarul aplicației nu știe ce canal a adus utilizatorul — trafic organic, reclamă Facebook, trimitere prin email sau cod QR. Atribuirea de calitate necesită integrare cu MMP (Mobile Measurement Partner).
| Tip Deep Link | Necesită instalare | Suportă așteptare instalare | Context |
|---|---|---|---|
| Standard | Da | Nu | Doar în URL |
| Deferred | Nu | Da | Stocare server |
| Contextual | Oricare | Oricare | UTM + parametri |
iOS suportă deep link prin două mecanisme: vechiul Custom URL Scheme și modernul Universal Link (iOS 9+). Custom URL Scheme funcționează pe principiul înregistrării unei scheme personalizate în Info.plist. Aplicația înregistrează myapp://, iar iOS la click pe un astfel de link deschide aplicația. Problemă: dacă schema nu este înregistrată de nicio aplicație, browserul afișează o eroare.
Procesarea deep link pe iOS are loc prin metoda AppDelegate application(_:open:options:) sau SceneDelegate scene(_:openURLContexts:). Dezvoltatorul extrage URL-ul, parsează calea și parametrii, apoi navighează la ecranul corespunzător. Dacă se utilizează SwiftUI, procesarea se face prin OpenURLAction sau onChange(of: openURL). Este important să se proceseze corect starea: aplicația poate fi nelansată, minimizată sau activă.
Securitatea pe iOS este strictă: Custom URL Scheme poate fi interceptat de orice aplicație care înregistrează aceeași schemă. Aceasta este o vulnerabilitate potențială (URL Scheme hijacking). De aceea Apple recomandă Universal Link ca alternativă mai sigură: doar proprietarul de domeniu confirmat poate asocia linkuri cu aplicația. Mai multe despre Universal Link — în articolul Universal Link.
Android implementează deep link prin Intent Filter în AndroidManifest.xml. Aplicația definește o Activity care procesează o anumită schemă (myapp://) sau gazde și căi specifice. Când utilizatorul face click pe un deep link, Android caută o Activity cu Intent Filter potrivit și o deschide. Dacă există mai multe Activity-uri potrivite — sistemul afișează un dialog de selectare a aplicației.
// AndroidManifest.xml — Intent Filter pentru Deep Link
<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>
Procesarea deep link în Android se face în metoda Activity.onCreate() sau onNewIntent(). Dezvoltatorul primește Intent, extrage URI și apelează navigarea. Pentru Jetpack Navigation, componenta Navigation Deep Link permite descrierea declarativă a deep link-ului în graful de navigare. Android App Link (Android 6.0+) — evoluția deep link cu verificare prin Digital Asset Links, eliminând dialogul de selectare a aplicației.
Este important să se țină cont de modificările Android 12+: începând cu API 31, sistemul necesită specificarea explicită a exported=true pentru Activity-urile care procesează deep link și verifică corectitudinea Intent Filter. Google Play Store verifică App Link la publicare. Fără verificare, Google poate respinge actualizarea dacă deep link-urile duc către pagini inexistente ale site-ului.
Configurarea deep link include câteva etape comune pentru ambele platforme. Primul pas — determinarea schemei și a structurii URL. Se recomandă utilizarea schemei https (în locul uneia personalizate) pentru compatibilitate cu Universal Link și App Link. Structura URL ar trebui să reflecte structura site-ului web: /product/42, /profile/john, /settings/notifications. Aceasta simplifică întreținerea și indexarea conținutului de către motoarele de căutare.
Etapa a doua — procesarea deep link în codul aplicației. Pentru Android se recomandă Jetpack Navigation cu deep link-uri declarative în nav_graph. Pentru iOS — SwiftUI NavigationStack cu procesare OpenURLAction. Este important să se proceseze trei stări ale aplicației: cold start (aplicația nelansată), warm start (minimizată) și active (pe ecran). Fiecare stare necesită o logică de navigare diferită.
Testarea deep link — o sarcină separată. Android Studio oferă instrumentul App Links Assistant pentru verificarea Intent Filter. Pe iOS, testarea se face prin Xcode cu transmiterea URL-ului prin argumentele schemei de lansare. Se recomandă configurarea unei verificări CI: trecerea automată prin deep link și verificarea că s-a deschis ecranul așteptat. Pentru deferred deep link, testarea include ciclul complet „instalare → prima lansare → context”. Fără testare, deep link-urile se strică adesea la actualizarea navigării în aplicație.
Întrebări frecvente
Linkul obișnuit (https://site.com/page) se deschide într-un browser. Deep link (myapp://page sau https://site.com/page cu verificare) deschide un ecran în aplicația mobilă. Deep link poate transmite și context: cod promoțional, sursa de trafic, identificator referal.
URI-schema — este un prefix URL care determină ce aplicație trebuie să proceseze linkul (de exemplu, myapp://, vk://, tg://). Sistemul folosește schema pentru rutare: găsește aplicația care a înregistrat această schemă și îi transmite URL-ul pentru procesare.
Utilizatorul face click pe link → serviciul (Branch, AppsFlyer) memorează contextul → redirecționează către App Store/Google Play → după instalare și prima lansare, SDK-ul transmite contextul salvat aplicației → aplicația deschide ecranul dorit, ca și cum utilizatorul ar fi avut deja aplicația.
Deep link obișnuit — nu. Deferred deep link — da, printr-o pagină intermediară care redirecționează către magazinul de aplicații și salvează contextul. Universal Link și App Link deschid site-ul ca fallback dacă aplicația nu este instalată.
Pe Android folosiți adb: adb shell am start -W -a android.intent.action.VIEW -d “myapp://product/42”. Pe iOS — xcrun simctl openurl booted “myapp://product/42”. Pentru ambele platforme sunt disponibile consolele de testare Firebase Dynamic Links și Branch.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și