Deferred Deep Link je mechanismus, který zachovává cílový kontext přechodu, i když aplikace ještě není nainstalována na zařízení uživatele. Podle Branch Resources, po instalaci aplikace systém automaticky zpracuje uložený kontext a přesměruje uživatele na cílovou obrazovku. Odložený hluboký odkaz řeší hlavní problém běžného deep link — nemožnost práce s nenainstalovanými aplikacemi.
Hlavní
Deferred Deep Link je typ hlubokého odkazu, který funguje ve dvou fázích: nejprve uživatel klikne na odkaz před instalací aplikace, poté systém obnoví kontext po dokončení instalace. Běžný deep link otevře aplikaci pouze pokud je již nainstalována, zatímco deferred zachovává všechny parametry přechodu a předává je při prvním spuštění.
Tato technologie se stala obzvláště žádanou s růstem mobilního marketingu, kde reklamní kampaně často cílí na uživatele, kteří si ještě nenainstalovali aplikaci. Bez deferred deep link by každý takový přechod jednoduše skončil stažením aplikace bez jakéhokoli kontextu — uživatel by se dostal na hlavní obrazovku místo cílové.
Běžný deep link otevírá cílový obsah v již nainstalované aplikaci. Pokud aplikace není nainstalována, prohlížeč zobrazí chybu. Deferred Deep Link funguje přes zprostředkující server, který přesměruje uživatele do obchodu a po instalaci informuje aplikaci o uložených parametrech. Tím pádem deferred odkaz nevyžaduje předchozí instalaci aplikace a zajišťuje nepřerušenou cestu uživatele od reklamy k obsahu.
Proces zpracování deferred deep link se skládá ze tří fází. V první fázi uživatel klikne na odkaz — server určí, zda je aplikace nainstalována. Pokud ne, vygeneruje jedinečný identifikátor relace, uloží parametry přechodu a přesměruje uživatele do App Store nebo Google Play s tímto identifikátorem.
Ve druhé fázi uživatel nainstaluje aplikaci z obchodu. Po instalaci a prvním spuštění se SDK platformy připojí k serveru, odešle identifikátor zařízení a obdrží uložené parametry přechodu. Ve třetí fázi aplikace zpracuje přijatá data a automaticky přesměruje uživatele na cílovou obrazovku.
Pro ukládání parametrů mezi kliknutím na odkaz a instalací se používají různé mechanismy. V iOS je to klíčenka (iCloud Keychain) nebo schránka, v Android — Install Referrer API. Firebase Dynamic Links používá kombinaci localStorage prohlížeče a referenčního odkazu obchodu pro předání identifikátoru relace. Branch.io aplikuje vlastní protokol s rezervou dat ve více úložištích.
V iOS je deferred deep link implementován kombinací Universal Links a Shared Web Credentials. Když uživatel klikne na Universal Link na webu aplikace, prohlížeč Safari uloží parametry přechodu do iCloud Keychain spojeného s doménou aplikace. Po instalaci aplikace z App Store iOS zkontroluje přítomnost uložených dat a předá je aplikaci při prvním spuštění.
Apple neposkytuje vestavěné API pro deferred deep link — implementace zcela padá na SDK třetích stran. Firebase Dynamic Links používá mechanismus passive deferred, kde jsou data uložena v cookie prohlížeče a obnovena přes přesměrování na speciální URL při prvním spuštění aplikace.
Od iOS 14 Apple zpřísnil pravidla ochrany soukromí, což ovlivnilo mechanismy deferred deep link. Schránka již nemůže být použita pro čtení dat bez výslovného souhlasu uživatele. iCloud Keychain má také omezení na objem dat — ne více než 4 KB na zápis. To činí serverová řešení s jedinečným identifikátorem relace preferovanou metodou pro předávání kontextu.
Android poskytuje flexibilnější možnosti pro deferred deep link přes Install Referrer API. Když uživatel klikne na odkaz do Google Play, obchod zaznamená referrer — řetězec s parametry přechodu. Po instalaci aplikace obdrží tento řetězec přes Install Referrer API a extrahuje z něj cílový kontext. Toto je nejspolehlivější mechanismus deferred deep link na Androidu.
Pro aplikace distribuované mimo Google Play Android podporuje referenční BroadcastReceiver. Vývojář může po instalaci odeslat vlastní Intent s parametry a aplikace jej obdrží přes BroadcastReceiver zaregistrovaný v manifestu. Tento mechanismus je však méně spolehlivý, protože závisí na implementaci instalátoru.
Install Referrer API poskytuje informace o zdroji instalace, včetně referrer URL, času přechodu a času instalace. Maximální délka referrer řetězce je 8 KB, což je dostatečné pro předání všech potřebných parametrů deep link. API je dostupné na zařízeních s Google Play Store verzí 8.3.73 a vyšší a je podporováno na Android 5.0 (API 21).
Firebase Dynamic Links je nejpopulárnější bezplatný nástroj pro implementaci deferred deep link na obou platformách. Firebase automaticky spravuje všechny fáze deferred přechodu: přesměrování do obchodu při absenci aplikace, ukládání parametrů na serveru Firebase a jejich předání SDK při prvním spuštění aplikace.
Pro implementaci stačí integrovat Firebase SDK do projektu, vytvořit Dynamic Link přes Firebase Console s uvedením hlubokého odkazu a parametrů kampaně. Firebase SDK je automaticky volán při spuštění aplikace a kontroluje přítomnost příchozího Dynamic Link přes metodu getDynamicLink().
Příklad zpracování deferred Firebase Dynamic Link v Activity v Kotlin. Kód funguje stejně pro cold start a warm start při spuštění aplikace.
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)
}
}
}
}
Metoda getDynamicLink() vrací PendingTask s objektem DynamicLink. Pokud byla aplikace nainstalována po kliknutí na odkaz, listener obdrží data s parametry. Pokud byla aplikace již nainstalována před kliknutím, metoda vrátí stejná data jako při běžném deep link. Příznak minimumAppVersion v parametrech odkazu umožňuje nastavit minimální verzi aplikace pro zpracování.
Deferred Deep Link poskytuje významné výhody pro marketingové kampaně: uživatel obdrží cílový obsah po instalaci bez dalších akcí, což zvyšuje konverzi a retenci. Pro referenční programy deferred odkazy umožňují jednoznačně propojit pozvánku s instalací a akcemi nového uživatele.
Technologie má však i omezení. Deferred deep link nefunguje v prohlížečích blokujících cookie třetích stran a na iOS od verze 14 vyžaduje dodatečnou konfiguraci pro práci s iCloud Keychain. Navíc mezi kliknutím na odkaz a instalací může uplynout několik dní a ne všechna SDK zaručují uchování dat po takovou dobu.
Deferred deep link je povinný pro reklamní kampaně zaměřené na nové uživatele, e-mailové rozesílky s pozvánkami a referenční programy. Pro již nainstalované uživatele stačí běžný deep link. Pokud aplikace nepoužívá marketingové kampaně a referenční mechanismy, deferred deep link není potřeba — stačí Universal Links a App Links.
Při výběru implementace zvažte cenu: Firebase Dynamic Links je zdarma, ale má omezenou analytiku. Branch.io a AppsFlyer poskytují pokročilou atribuci, ale vyžadují předplatné. Pro malé projekty je Firebase optimální řešení, pro enterprise s desítkami reklamních kanálů — komerční MMP.
Často kladené otázky
Běžný deep link vyžaduje nainstalovanou aplikaci a otevírá ji přímo. Deferred Deep Link funguje, i když aplikace není nainstalována — přesměruje do obchodu a po instalaci obnoví kontext přechodu a otevře cílovou obrazovku.
Doba uchování závisí na platformě. Firebase Dynamic Links uchovává parametry až 30 dní. Branch.io uchovává data až 90 dní. Na Androidu Install Referrer API uchovává referrer řetězec do okamžiku prvního přečtení aplikací, ale ne déle než 90 dní.
Na stolním počítači nemá deferred deep link smysl, protože aplikaci nelze nainstalovat přes obchod na počítači. Při kliknutí na odkaz z počítače uživatel uvidí fallback URL — webovou verzi obsahu nebo stránku s QR kódem pro instalaci na mobilním zařízení.
Chrome, Safari a Samsung Internet podporují deferred deep link přes mechanismy cookie a localStorage. Firefox má omezenou podporu kvůli přísné politice blokování cookie třetích stran. Pro maximální pokrytí se doporučuje použití SDK Firebase nebo Branch.io.
Technicky lze implementovat vlastní řešení přes zprostředkující server a referenční mechanismy. To však vyžaduje vývoj a údržbu serverové infrastruktury, správu cookie, integraci s každým obchodem a řešení problémů na různých platformách. Hotová SDK Firebase a Branch.io urychlují vývoj desetinásobně.
Shrnutí
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í.
Přečtěte si také