Deep Link: co to je, typy odkazů a princip fungování

Autor: IT Sectr Publikováno: 2026-05-14 Doba čtení: 9 min

Deep Link (hluboký odkaz) je URL, který směruje uživatele na konkrétní obrazovku nebo obsah v rámci mobilní aplikace, přičemž přeskočí hlavní obrazovku. Na rozdíl od běžného odkazu na web, deep link aktivuje aplikaci a okamžitě otevře cílový obsah. Podle údajů Android Developers, správně nakonfigurované deep linky zvyšují konverzi na cílovou akci o 30–50 % díky zkrácení počtu kroků k obsahu.

Klíčové body

  • Deep Link — URL, který otevírá konkrétní obrazovku aplikace, nikoli hlavní stránku
  • URI schéma (myapp://profile/123) — klasický způsob deep link, funguje na obou platformách
  • Deferred Deep Link — odkaz, který se aktivuje po instalaci aplikace a předává kontext
  • Universal Link (iOS) a App Link (Android) — evoluce deep link s ověřením domény
  • Kontextový deep link — předává další parametry: promo kód, referrer, zdroj návštěvnosti

Deep Link (hluboký odkaz) je URI, který při kliknutí neotevře webovou stránku, ale konkrétní obrazovku v rámci mobilní aplikace. Technologie řeší zásadní problém mobilních platforem: prohlížeč nemůže přímo otevřít obrazovku aplikace, ale deep link vytváří most mezi webem a nativním kódem. Bez deep link uživatel vždy skončí na hlavní obrazovce a musí ručně navigovat k požadovanému obsahu.

Architektura deep link se skládá ze dvou částí: schéma (scheme) určuje, která aplikace má odkaz zpracovat, a cesta (path) ukazuje na konkrétní zdroj v aplikaci — produkt, článek, profil uživatele nebo sekci nastavení. Parametry dotazu (?source=push&campaign=summer) předávají další kontext pro analytiku, personalizaci a atribuci kampaní.

Je důležité rozlišovat deep link a běžný odkaz. Běžný odkaz (https://example.com/product/42) se otevře v prohlížeči a vede na webovou verzi stránky. Deep link (myapp://product/42) při nainstalované aplikaci otevře nativní obrazovku se stejným obsahem, a pokud aplikace chybí, zobrazí chybu. Právě pro řešení problému bezproblémového fallbacku byly vytvořeny Universal Link (iOS) a App Link (Android).

Různé úkoly vyžadují různé typy deep link. Některé odkazy fungují pouze s nainstalovanou aplikací, jiné umí čekat na instalaci, další předávají analytický kontext. Výběr typu závisí na scénáři použití: reklamní kampaň, push oznámení, sdílení obsahu nebo e-mailový marketing.

Běžný Deep Link (Standard Deep Link)

Standard Deep Link — základní typ, který se aktivuje pouze pokud je aplikace již nainstalována na zařízení. Uživatel klikne na odkaz myapp://product/42, systém najde registrované schéma a otevře aplikaci na požadované obrazovce. Pokud aplikace není nainstalována — prohlížeč zobrazí chybu „Stránka nenalezena“ nebo neudělá nic. Tento typ je vhodný pro interní navigaci v již nainstalované aplikaci.

Nastavení standardního deep link je jednoduché: stačí zaregistrovat URI schéma v manifestu (Android) nebo Info.plist (iOS). Není vyžadována serverová validace ani SSL certifikáty. Ale právě kvůli chybějícímu fallbacku je tento typ považován za zastaralý pro marketingové kampaně — ztráta návštěvnosti od uživatelů bez aplikace činí až 60 %.

Deferred Deep Link (odložený hluboký odkaz)

Deferred Deep Link řeší hlavní problém běžných deep link: funguje i když aplikace není nainstalována. Uživatel přejde po odkazu → zobrazí se mu stránka (landing nebo App Store/Google Play) → nainstaluje aplikaci → při prvním spuštění aplikace získá kontext původního odkazu a otevře požadovanou obrazovku. Technologie vyžaduje SDK zprostředkovatele (AppsFlyer, Branch, Adjust), který ukládá kontext na serveru až do okamžiku prvního spuštění.

Branch — jedna z nejpopulárnějších platforem pro deferred deep link. Poskytuje jednotný odkaz, který funguje na všech platformách: určí OS uživatele, přesměruje do obchodu s aplikacemi a po instalaci předá kontext (promo kód, identifikátor produktu, zdroj kampaně). Podle Branch (2024) zvyšují deferred deep link konverzi reklamních kampaní o 40–70 %.

Contextual Deep Link (kontextový hluboký odkaz)

Contextual Deep Link — běžný nebo deferred deep link doplněný o parametry kontextu: zdroj návštěvnosti (source), kampaň (campaign), promo kód, referrer, identifikátor partnera. Parametry se předávají v URL a zpracovávají se aplikací pro personalizaci: zobrazit uvítací bonus, otevřít produkt se slevou, zaznamenat analytiku instalace.

UTM značky (utm_source, utm_medium, utm_campaign) — standardní způsob předávání kontextu. V mobilním prostředí jsou kontextové deep link kritické pro atribuci: bez nich majitel aplikace neví, který kanál přivedl uživatele — organická návštěvnost, reklama na Facebooku, e-mailový marketing nebo QR kód. Kvalitní atribuce vyžaduje integraci s MMP (Mobile Measurement Partner).

Typ Deep LinkVyžaduje instalaciPočká na instalaciKontext
StandardAnoNePouze v URL
DeferredNeAnoServerové uložení
ContextualLibovolnýLibovolnýUTM + parametry

iOS podporuje deep link prostřednictvím dvou mechanismů: staré Custom URL Scheme a moderní Universal Link (iOS 9+). Custom URL Scheme funguje na principu registrace vlastního schématu v Info.plist. Aplikace zaregistruje myapp:// a iOS při kliknutí na takový odkaz otevře aplikaci. Problém: pokud schéma není registrováno žádnou aplikací, prohlížeč zobrazí chybu.

Zpracování deep link na iOS probíhá přes metodu AppDelegate application(_:open:options:) nebo SceneDelegate scene(_:openURLContexts:). Vývojář získá URL, zpracuje cestu a parametry, poté naviguje na odpovídající obrazovku. Pokud se používá SwiftUI, zpracování se provádí přes OpenURLAction nebo onChange(of: openURL). Je důležité správně zpracovat stavy: aplikace může být nespuštěná, minimalizovaná nebo aktivní.

Bezpečnost na iOS je přísná: Custom URL Scheme může zachytit jakákoli aplikace, která zaregistrovala stejné schéma. To je potenciální zranitelnost (URL Scheme hijacking). Apple proto doporučuje Universal Link jako bezpečnější alternativu: pouze potvrzený vlastník domény může asociovat odkazy s aplikací. Více o Universal Link v článku Universal Link.

Android implementuje deep link přes Intent Filter v AndroidManifest.xml. Aplikace definuje Activity, která zpracovává určité schéma (myapp://) nebo konkrétní hostitele a cesty. Když uživatel klikne na deep link, Android hledá Activity s odpovídajícím Intent Filter a otevře ji. Pokud je odpovídajících Activity několik — systém zobrazí dialog výběru aplikace.

xml
// AndroidManifest.xml — Intent Filter pro 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>

Zpracování deep link v Androidu se provádí v metodě Activity.onCreate() nebo onNewIntent(). Vývojář získá Intent, extrahuje URI a spustí navigaci. Pro Jetpack Navigation komponenta Navigation Deep Link umožňuje deklarativně popsat deep link v navigačním grafu. Android App Link (Android 6.0+) — evoluce deep link s ověřením přes Digital Asset Links, odstraňující dialog výběru aplikace.

Je důležité zohlednit změny v Android 12+: od API 31 systém vyžaduje explicitní uvedení exported=true pro Activity zpracovávající deep link a kontroluje správnost Intent Filter. Google Play Store ověřuje App Link verifikaci při publikování. Bez verifikace může Google zamítnout aktualizaci, pokud deep link vedou na neexistující stránky webu.

Nastavení deep link zahrnuje několik fází společných pro obě platformy. Prvním krokem je určení schématu a struktury URL. Doporučuje se používat https schéma (místo vlastního) pro kompatibilitu s Universal Link a App Link. Struktura URL by měla odpovídat struktuře webu: /product/42, /profile/john, /settings/notifications. To usnadňuje údržbu a indexaci obsahu vyhledávači.

Druhou fází je zpracování deep link v kódu aplikace. Pro Android se doporučuje Jetpack Navigation s deklarativními deep link v nav_graph. Pro iOS — SwiftUI NavigationStack se zpracováním OpenURLAction. Je důležité zpracovat tři stavy aplikace: cold start (aplikace nebyla spuštěna), warm start (minimalizována) a active (na obrazovce). Každý stav vyžaduje jinou logiku navigace.

  • Určit schéma a strukturu URL (myapp:// nebo https://your.domain/)
  • Zaregistrovat schéma v manifestu (Android) nebo Info.plist (iOS)
  • Implementovat zpracování v Activity nebo AppDelegate/SwiftUI
  • Nastavit fallback pro případ, že aplikace není nainstalována
  • Otestovat všechny tři stavy: cold start, warm start, active

Testování deep link je samostatný úkol. Android Studio poskytuje nástroj App Links Assistant pro kontrolu Intent Filter. Na iOS se testování provádí přes Xcode s předáním URL přes argumenty schématu spouštění. Doporučuje se nastavit CI kontrolu: automatické kliknutí na deep link a ověření, že se otevřela očekávaná obrazovka. Pro deferred deep link testování zahrnuje celý cyklus „instalace → první spuštění → kontext“. Bez testování se deep link často rozbijí při aktualizaci navigace v aplikaci.

Často kladené otázky

Čím se deep link liší od běžného odkazu?

Běžný odkaz (https://site.com/page) se otevře v prohlížeči. Deep link (myapp://page nebo https://site.com/page s ověřením) otevře obrazovku uvnitř mobilní aplikace. Deep link může také předávat kontext: promo kód, zdroj návštěvnosti, identifikátor referrera.

Co je URI schéma a k čemu slouží?

URI schéma je prefix URL, který určuje, která aplikace má odkaz zpracovat (například myapp://, vk://, tg://). Systém používá schéma pro směrování: najde aplikaci, která si toto schéma zaregistrovala, a předá jí URL ke zpracování.

Jak funguje deferred deep link?

Uživatel klikne na odkaz → služba (Branch, AppsFlyer) si zapamatuje kontext → přesměruje do App Store/Google Play → po instalaci a prvním spuštění SDK předá uložený kontext aplikaci → aplikace otevře požadovanou obrazovku, jako by uživatel již měl aplikaci nainstalovanou.

Lze použít deep link bez nainstalované aplikace?

Běžný deep link — ne. Deferred deep link — ano, díky mezistránce, která přesměruje do obchodu s aplikacemi a uloží kontext. Universal Link a App Link otevřou web jako fallback, pokud aplikace není nainstalována.

Jak testovat deep link na skutečných zařízeních?

Na Androidu použijte adb: adb shell am start -W -a android.intent.action.VIEW -d „myapp://product/42“. Na iOS — xcrun simctl openurl booted „myapp://product/42“. Pro obě platformy jsou k dispozici testovací konzole Firebase Dynamic Links a Branch.

Shrnutí

  • Deep Link — URL otevírající konkrétní obrazovku aplikace, ne hlavní stránku nebo web
  • Tři typy — Standard (pouze s nainstalovanou aplikací), Deferred (s čekáním na instalaci), Contextual (s UTM parametry)
  • Custom URL Scheme (myapp://) — jednoduchý způsob, ale bez fallbacku při chybějící aplikaci
  • Universal Link a App Link — evoluce deep link s ověřením domény a fallbackem v prohlížeči
  • iOS zpracovává deep link přes AppDelegate/SceneDelegate, Android — přes Intent Filter
  • Deferred Deep Link vyžaduje SDK zprostředkovatele (Branch, AppsFlyer) pro uložení kontextu před instalací
  • Testování všech tří stavů (cold, warm, active) — povinná fáze nastavení deep link

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také