Deep Link: mi ez, linktípusok és működési elv

Szerző: IT Sectr Megjelenés: 2026-05-14 Olvasási idő: 9 perc

Deep Link (mély link) — egy olyan URL, amely a felhasználót egy mobilalkalmazás egy adott képernyőjére vagy tartalmára irányítja, megkerülve a főképernyőt. Ellentétben egy weboldalra mutató szokásos linkkel, a deep link aktiválja az alkalmazást és azonnal megnyitja a céltartalmat. A Android Developers szerint a helyesen konfigurált deep linkek 30–50%-kal növelik a konverziót a célműveletre a tartalomhoz vezető lépések számának csökkentésével.

Főbb pontok

  • Deep Link — URL, amely az alkalmazás egy adott képernyőjét nyitja meg, nem a főoldalt
  • URI-schema (myapp://profile/123) — klasszikus deep link módszer, mindkét platformon működik
  • Deferred Deep Link — link, amely az alkalmazás telepítése után aktiválódik, átadva a kontextust
  • Universal Link (iOS) és App Link (Android) — a deep link fejlődése doménellenőrzéssel
  • Kontextuális deep link — további paramétereket ad át: promóciós kód, referrer, forgalmi forrás

Deep Link (mély link) — egy URI, amely kattintáskor nem egy weboldalt, hanem egy adott képernyőt nyit meg egy mobilalkalmazáson belül. A technológia megoldja a mobil platformok alapvető problémáját: a böngésző nem tudja közvetlenül megnyitni az alkalmazás képernyőjét, a deep link pedig hidat képez a web és a natív kód között. Deep link nélkül a felhasználó mindig a főképernyőre kerül, és kézzel kell navigálnia a kívánt tartalomhoz.

A deep link architektúrája két részből áll: a séma (scheme) meghatározza, hogy melyik alkalmazásnak kell feldolgoznia a linket, az útvonal (path) pedig egy adott erőforrásra mutat az alkalmazáson belül — termék, cikk, felhasználói profil vagy beállítások szakasz. A lekérdezési paraméterek (?source=push&campaign=summer) további kontextust adnak át analitikához, személyre szabáshoz és kampányattribúcióhoz.

Fontos megkülönböztetni a deep linket a szokásos linktől. Egy szokásos link (https://example.com/product/42) a böngészőben nyílik meg és az oldal webes verziójába vezet. A deep link (myapp://product/42) telepített alkalmazással a natív képernyőt nyitja meg ugyanazzal a tartalommal, ha pedig az alkalmazás hiányzik — hibát jelenít meg. Pontosan a zökkenőmentes fallback problémájának megoldására hozták létre a Universal Linket (iOS) és az App Linket (Android).

Különböző feladatok különböző típusú deep linket igényelnek. Néhány link csak telepített alkalmazással működik, mások képesek várni a telepítésre, megint mások analitikai kontextust adnak át. A típus kiválasztása a használati forgatókönyvtől függ: reklámkampány, push értesítés, tartalommegosztás vagy e-mail kampány.

Szokásos Deep Link (Standard Deep Link)

Standard Deep Link — alap típus, amely csak akkor aktiválódik, ha az alkalmazás már telepítve van az eszközön. A felhasználó rákattint a myapp://product/42 linkre, a rendszer megtalálja a regisztrált sémát és megnyitja az alkalmazást a megfelelő képernyőn. Ha az alkalmazás nincs telepítve — a böngésző a „Oldal nem található” hibát jeleníti meg, vagy egyszerűen nem tesz semmit. Ez a típus alkalmas a már telepített alkalmazáson belüli navigációra.

A szabványos deep link beállítása egyszerű: csak regisztrálni kell az URI-sémát a manifestben (Android) vagy Info.plist-ben (iOS). Nem igényel szerveroldali érvényesítést vagy SSL tanúsítványokat. De éppen a fallback hiánya miatt ez a típus elavultnak számít a marketingkampányokhoz — az alkalmazással nem rendelkező felhasználóktól származó forgalomveszteség eléri a 60%-ot.

Deferred Deep Link (halasztott mély link)

Deferred Deep Link megoldja a szokásos deep linkek fő problémáját: akkor is működik, ha az alkalmazás nincs telepítve. A felhasználó rákattint a linkre → lát egy oldalt (landing vagy App Store/Google Play) → telepíti az alkalmazást → az első indításkor az alkalmazás megkapja az eredeti link kontextusát és megnyitja a kívánt képernyőt. A technológia közvetítő SDK-t (AppsFlyer, Branch, Adjust) igényel, amely a kontextust a szerveren tárolja az első indításig.

Branch — az egyik legnépszerűbb platform a deferred deep linkhez. Egységes linket biztosít, amely minden platformon működik: érzékeli a felhasználó operációs rendszerét, átirányít az alkalmazásáruházba, és telepítés után átadja a kontextust (promóciós kód, termékazonosító, kampányforrás). A Branch (2024) adatai szerint a deferred deep linkek 40–70%-kal növelik a reklámkampányok konverzióját.

Contextual Deep Link (kontextuális mély link)

Contextual Deep Link — egy szokásos vagy deferred deep link, kiegészítve kontextus paraméterekkel: forgalmi forrás (source), kampány (campaign), promóciós kód, referrer, partnerazonosító. A paraméterek az URL-ben kerülnek átadásra, és az alkalmazás dolgozza fel őket személyre szabáshoz: üdvözlő bónusz megjelenítése, termék megnyitása kedvezménnyel, telepítési analitika rögzítése.

UTM-címkék (utm_source, utm_medium, utm_campaign) — a kontextus átadásának szabványos módja. Mobil eszközökön a kontextuális deep linkek kritikusak az attribúcióhoz: nélkülük az alkalmazás tulajdonosa nem tudja, melyik csatorna hozta a felhasználót — organikus forgalom, Facebook hirdetés, e-mail kampány vagy QR kód. A minőségi attribúció MMP-vel (Mobile Measurement Partner) történő integrációt igényel.

Deep Link típusaTelepítést igényelTámogatja a várakozástKontextus
StandardIgenNemCsak URL-ben
DeferredNemIgenSzerver tárolás
ContextualBármelyikBármelyikUTM + paraméterek

iOS két mechanizmuson keresztül támogatja a deep linket: a régi Custom URL Scheme és a modern Universal Link (iOS 9+). A Custom URL Scheme az Info.plist-ben történő egyedi séma regisztráció elvén működik. Az alkalmazás regisztrálja a myapp://-t, és az iOS egy ilyen linkre kattintva megnyitja az alkalmazást. Probléma: ha a sémát egyetlen alkalmazás sem regisztrálta, a böngésző hibát jelenít meg.

A deep link feldolgozása iOS rendszeren az AppDelegate application(_:open:options:) vagy SceneDelegate scene(_:openURLContexts:) metóduson keresztül történik. A fejlesztő kinyeri az URL-t, értelmezi az útvonalat és a paramétereket, majd a megfelelő képernyőre navigál. SwiftUI használata esetén a feldolgozás OpenURLAction vagy onChange(of: openURL) segítségével történik. Fontos az állapot helyes kezelése: az alkalmazás lehet nem elindított, minimalizált vagy aktív.

A Security szigorú iOS-en: a Custom URL Scheme-t bármely alkalmazás elfoghatja, amely ugyanazt a sémát regisztrálta. Ez egy potenciális sérülékenység (URL Scheme hijacking). Ezért az Apple a Universal Linket ajánlja biztonságosabb alternatívaként: csak a megerősített doméntulajdonos kapcsolhat össze linkeket az alkalmazással. Bővebben a Universal Linkről — a Universal Link cikkben.

Android a deep linket Intent Filteren keresztül valósítja meg az AndroidManifest.xml-ben. Az alkalmazás meghatároz egy Activity-t, amely egy adott sémát (myapp://) vagy konkrét hosztokat és útvonalakat dolgoz fel. Amikor a felhasználó rákattint egy deep linkre, az Android megkeresi a megfelelő Intent Filterrel rendelkező Activity-t és megnyitja. Ha több megfelelő Activity létezik — a rendszer egy párbeszédablakot jelenít meg az alkalmazás kiválasztásához.

xml
// AndroidManifest.xml — Intent Filter a Deep Linkhez
<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>

A deep link feldolgozása Android rendszeren az Activity.onCreate() vagy onNewIntent() metódusban történik. A fejlesztő megkapja az Intentet, kinyeri az URI-t és meghívja a navigációt. A Jetpack Navigation esetében a Navigation Deep Link komponens lehetővé teszi a deep link deklaratív leírását a navigációs gráfban. Az Android App Link (Android 6.0+) — a deep link továbbfejlesztése Digital Asset Links segítségével történő ellenőrzéssel, amely megszünteti a párbeszédablakot.

Fontos figyelembe venni az Android 12+ változásait: az API 31-től kezdve a rendszer explicit exported=true beállítást követel meg a deep linket feldolgozó Activity-k számára, és ellenőrzi az Intent Filter helyességét. A Google Play Store ellenőrzi az App Link hitelesítést a közzétételkor. Hitelesítés nélkül a Google elutasíthatja a frissítést, ha a deep linkek nem létező oldalakra vezetnek.

A deep link beállítása több, mindkét platform számára közös lépést foglal magában. Az első lépés — a séma és az URL-struktúra meghatározása. Javasolt a https séma használata (egyedi helyett) a Universal Link és App Link kompatibilitás érdekében. Az URL-struktúrának tükröznie kell a weboldal struktúráját: /product/42, /profile/john, /settings/notifications. Ez leegyszerűsíti a karbantartást és a tartalom indexelését a keresőmotorok által.

Második lépés — a deep link feldolgozása az alkalmazás kódjában. Android esetén a Jetpack Navigation ajánlott deklaratív deep linkekkel a nav_graph-ban. iOS esetén — SwiftUI NavigationStack OpenURLAction feldolgozással. Fontos az alkalmazás három állapotának kezelése: cold start (az alkalmazás nem futott), warm start (minimalizált) és active (képernyőn). Minden állapot eltérő navigációs logikát igényel.

  • Határozza meg a sémát és URL-struktúrát (myapp:// vagy https://your.domain/)
  • Regisztrálja a sémát a manifestben (Android) vagy Info.plist-ben (iOS)
  • Valósítsa meg a feldolgozást Activity vagy AppDelegate/SwiftUI segítségével
  • Állítsa be a fallback-et arra az esetre, ha az alkalmazás nincs telepítve
  • Tesztelje mindhárom állapotot: cold start, warm start, active

A deep link tesztelése — külön feladat. Az Android Studio App Links Assistant eszközt kínál az Intent Filter ellenőrzéséhez. iOS-en a tesztelés Xcode-on keresztül történik az URL indítási séma argumentumokon keresztül történő átadásával. Javasolt CI-ellenőrzés beállítása: automatikus áthaladás a deep linken és annak ellenőrzése, hogy a várt képernyő nyílt-e meg. A deferred deep link esetében a tesztelés a teljes ciklust magában foglalja: „telepítés → első indítás → kontextus”. Tesztelés nélkül a deep linkek gyakran meghibásodnak a navigáció frissítésekor az alkalmazásban.

Gyakran ismételt kérdések

Miben különbözik a deep link a szokásos linktől?

Szokásos link (https://site.com/page) a böngészőben nyílik meg. Deep link (myapp://page vagy https://site.com/page hitelesítéssel) egy képernyőt nyit meg a mobilalkalmazásban. A deep link kontextust is átadhat: promóciós kód, forgalmi forrás, referálási azonosító.

Mi az az URI-séma és mire használjuk?

URI-séma — egy URL előtag, amely meghatározza, hogy melyik alkalmazásnak kell feldolgoznia a linket (például myapp://, vk://, tg://). A rendszer a sémát használja útválasztáshoz: megtalálja a sémát regisztráló alkalmazást és átadja neki az URL-t feldolgozásra.

Hogyan működik a deferred deep link?

Felhasználó rákattint a linkre → a szolgáltatás (Branch, AppsFlyer) eltárolja a kontextust → átirányít az App Store/Google Play oldalra → telepítés és első indítás után az SDK átadja a mentett kontextust az alkalmazásnak → az alkalmazás megnyitja a kívánt képernyőt, mintha a felhasználónak már lenne alkalmazása.

Használható-e a deep link telepített alkalmazás nélkül?

Szokásos deep link — nem. Deferred deep link — igen, egy közvetítő oldalon keresztül, amely átirányít az alkalmazásáruházba és tárolja a kontextust. A Universal Link és App Link a weboldalt nyitja meg fallbackként, ha az alkalmazás nincs telepítve.

Hogyan teszteljem a deep linket valós eszközökön?

Androidon használja az adb-t: adb shell am start -W -a android.intent.action.VIEW -d “myapp://product/42”. iOS-en — xcrun simctl openurl booted “myapp://product/42”. Mindkét platformhoz elérhetők a Firebase Dynamic Links és Branch tesztkonzolok.

Összefoglalás

  • Deep Link — URL, amely az alkalmazás egy adott képernyőjét nyitja meg, nem a főoldalt vagy weboldalt
  • Három típus — Standard (csak telepített alkalmazással), Deferred (telepítési várakozással), Contextual (UTM paraméterekkel)
  • Custom URL Scheme (myapp://) — egyszerű módszer, de fallback nélkül az alkalmazás hiányában
  • Universal Link és App Link — a deep link fejlődése doménellenőrzéssel és böngészős fallbackkel
  • iOS a deep linket AppDelegate/SceneDelegate segítségével dolgozza fel, Android — Intent Filter segítségével
  • Deferred Deep Link közvetítő SDK-t (Branch, AppsFlyer) igényel a kontextus tárolásához a telepítés előtt
  • Tesztelés mindhárom állapotban (cold, warm, active) — a deep link konfiguráció kötelező szakasza

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is