Deferred Deep Link este un mecanism care păstrează contextul țintă al tranziției, chiar dacă aplicația nu este încă instalată pe dispozitivul utilizatorului. Potrivit Branch Resources, după instalarea aplicației, sistemul procesează automat contextul salvat și redirecționează utilizatorul către ecranul țintă. Linkul profund amânat rezolvă principala problemă a deep link obișnuit — imposibilitatea de a lucra cu aplicații neinstalate.
Principalele
Deferred Deep Link este un tip de link profund care funcționează în două etape: mai întâi utilizatorul accesează linkul înainte de instalarea aplicației, apoi sistemul restabilește contextul după finalizarea instalării. Deep link obișnuit deschide aplicația doar dacă este deja instalată, iar deferred păstrează toți parametrii tranziției și îi transmite la prima lansare.
Tehnologia a devenit deosebit de solicitată odată cu creșterea marketingului mobil, unde campaniile publicitare sunt adesea orientate către utilizatorii care încă nu au instalat aplicația. Fără deferred deep link, fiecare astfel de tranziție s-ar termina pur și simplu cu descărcarea aplicației fără niciun context — utilizatorul ar ajunge pe ecranul principal în loc de cel țintă.
Deep link obișnuit deschide conținutul țintă într-o aplicație deja instalată. Dacă aplicația nu este instalată, browserul afișează o eroare. Deferred Deep Link funcționează printr-un server intermediar care redirecționează utilizatorul în magazin, iar după instalare informează aplicația despre parametrii salvați. Astfel, linkul deferred nu necesită instalarea prealabilă a aplicației și asigură o cale continuă a utilizatorului de la publicitate la conținut.
Procesul de procesare a deferred deep link constă în trei etape. În prima etapă, utilizatorul accesează linkul — serverul determină dacă aplicația este instalată. Dacă nu, generează un identificator unic de sesiune, salvează parametrii tranziției și redirecționează utilizatorul către App Store sau Google Play cu acest identificator.
În a doua etapă, utilizatorul instalează aplicația din magazin. După instalare și prima lansare, SDK-ul platformei se conectează la server, transmite identificatorul dispozitivului și primește parametrii salvați ai tranziției. În a treia etapă, aplicația procesează datele primite și redirecționează automat utilizatorul către ecranul țintă.
Pentru salvarea parametrilor între accesarea linkului și instalare, sunt utilizate diverse mecanisme. În iOS, acesta este setul de chei (iCloud Keychain) sau clipboard, în Android — Install Referrer API. Firebase Dynamic Links utilizează o combinație de localStorage al browserului și linkul de referință al magazinului pentru transmiterea identificatorului de sesiune. Branch.io aplică propriul protocol cu rezervarea datelor în mai multe depozite.
În iOS, deferred deep link se implementează prin combinația Universal Links și Shared Web Credentials. Când utilizatorul accesează un Universal Link pe site-ul aplicației, browserul Safari salvează parametrii tranziției în iCloud Keychain asociat cu domeniul aplicației. După instalarea aplicației din App Store, iOS verifică prezența datelor salvate și le transmite aplicației la prima lansare.
Apple nu oferă o API nativă pentru deferred deep link — implementarea revine în totalitate SDK-urilor terțe. Firebase Dynamic Links utilizează mecanismul passive deferred, în care datele sunt salvate în cookie-ul browserului și restabilite printr-o redirecționare către un URL special la prima lansare a aplicației.
Începând cu iOS 14, Apple a îndurit regulile de confidențialitate, ceea ce a afectat mecanismele deferred deep link. Clipboardul nu mai poate fi utilizat pentru citirea datelor fără permisiunea explicită a utilizatorului. iCloud Keychain are, de asemenea, limitări privind volumul de date — nu mai mult de 4 KB per scriere. Acest lucru face ca soluțiile serverice cu identificator unic de sesiune să fie metoda preferată pentru transmiterea contextului.
Android oferă posibilități mai flexibile pentru deferred deep link prin Install Referrer API. Când utilizatorul accesează Google Play printr-un link, magazinul înregistrează referrer-ul — un șir cu parametrii tranziției. După instalare, aplicația primește acest șir prin Install Referrer API și extrage din el contextul țintă. Acesta este cel mai fiabil mecanism deferred deep link pe Android.
Pentru aplicațiile distribuite prin alte canale decât Google Play, Android suportă BroadcastReceiver de referință. Dezvoltatorul poate trimite un Intent personalizat cu parametri după instalare, iar aplicația îi primește prin BroadcastReceiver-ul înregistrat în manifest. Totuși, acest mecanism este mai puțin fiabil, deoarece depinde de implementarea instalatorului.
Install Referrer API oferă informații despre sursa instalării, inclusiv URL-ul referrer, timpul tranziției și timpul instalării. Lungimea maximă a șirului referrer este de 8 KB, suficientă pentru transmiterea tuturor parametrilor necesari ai deep link. API-ul este disponibil pe dispozitive cu Google Play Store versiunea 8.3.73 și superior și este suportat pe Android 5.0 (API 21).
Firebase Dynamic Links este cel mai popular instrument gratuit pentru implementarea deferred deep link pe ambele platforme. Firebase gestionează automat toate etapele tranziției deferred: redirecționarea către magazin în absența aplicației, stocarea parametrilor pe serverul Firebase și transmiterea lor SDK-ului la prima lansare a aplicației.
Pentru implementare, este suficient să integrați Firebase SDK în proiect, să creați un Dynamic Link prin Firebase Console cu specificarea linkului profund și a parametrilor campaniei. Firebase SDK se apelează automat la lansarea aplicației și verifică prezența unui Dynamic Link primit prin metoda getDynamicLink().
Exemplu de procesare a deferred Firebase Dynamic Link în Activity în Kotlin. Codul funcționează la fel pentru cold start și warm start la lansarea aplicației.
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() returnează un PendingTask cu obiectul DynamicLink. Dacă aplicația a fost instalată după accesarea linkului, listenerul va primi datele cu parametrii. Dacă aplicația era deja instalată înainte de accesare, metoda va returna aceleași date ca în cazul unui deep link obișnuit. Flagul minimumAppVersion în parametrii linkului permite setarea versiunii minime a aplicației pentru procesare.
Deferred Deep Link oferă avantaje semnificative pentru campaniile de marketing: utilizatorul primește conținutul țintă după instalare fără acțiuni suplimentare, ceea ce crește conversia și retenția. Pentru programele de recomandare, linkurile deferred permit asocierea fără echivoc a invitației cu instalarea și acțiunile noului utilizator.
Totuși, tehnologia are și limitări. Deferred deep link nu funcționează în browserele care blochează cookie-urile terțe, iar pe iOS de la versiunea 14 necesită configurare suplimentară pentru lucrul cu iCloud Keychain. În plus, între accesarea linkului și instalare pot trece câteva zile, iar nu toate SDK-urile garantează păstrarea datelor pentru o astfel de perioadă.
Deferred deep link este obligatoriu pentru campaniile publicitare orientate către utilizatori noi, trimiterile prin e-mail cu invitații și programele de recomandare. Pentru utilizatorii deja instalați, este suficient deep link obișnuit. Dacă aplicația nu utilizează campanii de marketing și mecanici de recomandare, deferred deep link nu este necesar — sunt suficiente Universal Links și App Links.
La alegerea implementării, luați în considerare costul: Firebase Dynamic Links este gratuit, dar are analitică limitată. Branch.io și AppsFlyer oferă atribuire avansată, dar necesită abonament. Pentru proiecte mici, Firebase este soluția optimă, pentru enterprise cu zeci de canale publicitare — MMP-uri comerciale.
Întrebări frecvente
Deep link obișnuit necesită o aplicație instalată și o deschide direct. Deferred Deep Link funcționează chiar dacă aplicația nu este instalată — redirecționează în magazin, iar după instalare restabilește contextul tranziției și deschide ecranul țintă.
Durata de păstrare depinde de platformă. Firebase Dynamic Links păstrează parametrii până la 30 de zile. Branch.io păstrează datele până la 90 de zile. Pe Android, Install Referrer API păstrează șirul referrer până la prima citire de către aplicație, dar nu mai mult de 90 de zile.
Pe desktop, deferred deep link nu are sens, deoarece aplicația nu poate fi instalată prin magazin pe computer. La accesarea linkului de pe desktop, utilizatorul va vedea un fallback URL — versiunea web a conținutului sau o pagină cu cod QR pentru instalarea pe dispozitivul mobil.
Chrome, Safari și Samsung Internet suportă deferred deep link prin mecanismele de cookie și localStorage. Firefox are suport limitat din cauza politicii stricte de blocare a cookie-urilor terțe. Pentru acoperire maximă, se recomandă utilizarea SDK-urilor Firebase sau Branch.io.
Tehnic, se poate implementa o soluție independentă printr-un server intermediar și mecanisme de recomandare. Însă aceasta necesită dezvoltarea și întreținerea infrastructurii server, gestionarea cookie-urilor, integrarea cu fiecare magazin și rezolvarea problemelor pe diferite platforme. SDK-urile gata făcute Firebase și Branch.io accelerează dezvoltarea de zeci de ori.
Rezumat
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