A Deferred Deep Link egy olyan mechanizmus, amely megőrzi az átmenet célkontánykörnyezetét, még akkor is, ha az alkalmazás még nincs telepítve a felhasználó eszközére. A Branch Resources szerint az alkalmazás telepítése után a rendszer automatikusan feldolgozza a mentett környezetet, és átirányítja a felhasználót a cél képernyőre. Halasztott mély link megoldja a szokásos deep link fő problémáját — a nem telepített alkalmazásokkal való munkavégzés képtelenségét.
Főbb pontok
Deferred Deep Link egy olyan mély link típus, amely két lépésben működik: először a felhasználó rákattint a linkre az alkalmazás telepítése előtt, majd a rendszer visszaállítja a környezetet a telepítés befejezése után. A szokásos deep link csak akkor nyitja meg az alkalmazást, ha az már telepítve van, a deferred pedig megőrzi az összes átmeneti paramétert és továbbítja azokat az első indításkor.
A technológia különösen keresetté vált a mobilmarketing növekedésével, ahol a reklámkampányok gyakran azokra a felhasználókra irányulnak, akik még nem telepítették az alkalmazást. Deferred deep link nélkül minden ilyen átmenet egyszerűen az alkalmazás letöltésével érne véget környezet nélkül — a felhasználó a főképernyőre kerülne a célképernyő helyett.
A szokásos deep link megnyitja a céltartalmat egy már telepített alkalmazásban. Ha az alkalmazás nincs telepítve, a böngésző hibajelzést mutat. Deferred Deep Link egy közbenső szerveren keresztül működik, amely átirányítja a felhasználót az áruházba, és a telepítés után értesíti az alkalmazást a mentett paraméterekről. Így a deferred link nem igényli az alkalmazás előzetes telepítését, és závartalan felhasználói útvonalat biztosít a hirdetéstől a tartalomig.
A deferred deep link feldolgozási folyamata három szakaszból áll. Az első szakaszban a felhasználó rákattint a linkre — a szerver meghatározza, hogy az alkalmazás telepítve van-e. Ha nem, generál egy egyedi munkamenet-azonosítót, elmenti az átmeneti paramétereket, és átirányítja a felhasználót az App Store-ba vagy a Google Play-be ezzel az azonosítóval.
A második szakaszban a felhasználó telepíti az alkalmazást az áruházból. A telepítés és az első indítás után a platform SDK-ja csatlakozik a szerverhez, elküldi az eszköz azonosítót, és megkapja a mentett átmeneti paramétereket. A harmadik szakaszban az alkalmazás feldolgozza a kapott adatokat, és automatikusan átirányítja a felhasználót a célképernyőre.
A paraméterek mentéséhez a linkre kattintás és a telepítés között különböző mechanizmusokat használnak. iOS-ben ez a kulcstartó (iCloud Keychain) vagy a vágólap, Android-ban — az Install Referrer API. A Firebase Dynamic Links a böngésző localStorage és az áruház hivatkozási linkjének kombinációját használja a munkamenet-azonosító továbbítására. A Branch.io saját protokollt alkalmaz adattartalékkal több tárhelyen.
iOS-ben a deferred deep link az Universal Links és a Shared Web Credentials kombiniációjával valósul meg. Amikor a felhasználó egy Universal Linkre kattint az alkalmazás weboldalán, a Safari böngésző elmenti az átmeneti paramétereket az alkalmazás doménjéhez tartozó iCloud Keychain-be. Az alkalmazás App Store-ból történő telepítése után az iOS ellenőrzi a mentett adatok meglétét, és továbbítja azokat az alkalmazásnak az első indításkor.
Az Apple nem biztosít beépített API-t a deferred deep link számára — a megvalósítás teljes mértékben a harmadik féltől származó SDK-kra hárul. A Firebase Dynamic Links a passive deferred mechanizmust használja, ahol az adatok a böngésző cookie-jában kerülnek mentésre, és egy speciális URL-re történő átirányítással állítódnak vissza az alkalmazás első indításakor.
Az iOS 14-től kezdve az Apple szigorította az adatvédelmi szabályokat, ami hatással volt a deferred deep link mechanizmusokra. A vágólap már nem használható adatok olvasására a felhasználó kifejezett engedélye nélkül. Az iCloud Keychain szintén rendelkezik adatmennyiségre vonatkozó korlátozásokkal — legfeljebb 4 KB írásonként. Ez a szerveralapú megoldásokat egyedi munkamenet-azonosítóval teszi a kontextus továbbításának előnyben részesített módszerévé.
Az Android rugalmasabb lehetőségeket kínál a deferred deep link számára az Install Referrer API-n keresztül. Amikor a felhasználó egy linken keresztül belép a Google Play-be, az áruház rögzíti a referrer-t — egy karakterláncot az átmeneti paraméterekkel. A telepítés után az alkalmazás megkapja ezt a karakterláncot az Install Referrer API-n keresztül, és kinyeri belőle a célkörnyezetet. Ez a legmegbízhatóbb deferred deep link mechanizmus Androidon.
A nem Google Play-en keresztül terjesztett alkalmazások esetében az Android támogatja a hivatkozási BroadcastReceiver-t. A fejlesztő küldhet egy egyéni Intent-et paraméterekkel a telepítés után, és az alkalmazás megkapja azt a manifest-ben regisztrált BroadcastReceiver-en keresztül. Ez a mechanizmus azonban kevésbé megbízható, mert függ a telepítő megvalósításától.
Az Install Referrer API információt nyújt a telepítés forrásáról, beleértve a referrer URL-t, az átmenet idejét és a telepítés idejét. A referrer karakterlánc maximális hossza 8 KB, ami elegendő az összes szükséges deep link paraméter továbbításához. Az API elérhető a Google Play Store 8.3.73 és annál magasabb verziójával rendelkező eszközökön, és támogatott Android 5.0 (API 11) rendszertől.
A Firebase Dynamic Links a legnépszerűbb ingyenes eszköz a deferred deep link megvalósítására mindkét platformon. A Firebase automatikusan kezeli a deferred átmenet összes szakaszát: átirányítás az áruházba az alkalmazás hiányában, a paraméterek tárolása a Firebase szerverén, és azok továbbítása az SDK-nak az alkalmazás első indításakor.
A megvalósításhoz elegendő a Firebase SDK integrálása a projektbe, egy Dynamic Link létrehozása a Firebase Console-ban a mély link és kampányparaméterek megadásával. A Firebase SDK automatikusan meghívásra kerül az alkalmazás indításakor, és ellenőrzi a beérkező Dynamic Link meglétét a getDynamicLink() metódus segítségével.
Példa a deferred Firebase Dynamic Link feldolgozására Activity-ben Kotlin nyelven. A kód ugyanúgy működik cold start és warm start esetén az alkalmazás indításakor.
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)
}
}
}
}
A getDynamicLink() metódus egy PendingTask-ot ad vissza DynamicLink objektummal. Ha az alkalmazás a linkre kattintás után került telepítésre, a listener megkapja az adatokat a paraméterekkel. Ha az alkalmazás már telepítve volt a kattintás előtt, a metódus ugyanazokat az adatokat adja vissza, mint a szokásos deep link esetén. A minimumAppVersion zászló a link paramétereiben lehetővé teszi az alkalmazás minimális verziójának beállítását a feldolgozáshoz.
A Deferred Deep Link jelentős előnyöket kínál a marketingkampányok számára: a felhasználó a telepítés után további műveletek nélkül megkapja a céltartalmat, ami növeli a konverziót és a megtartást. A hivatkozási programok esetében a deferred linkek lehetővé teszik a meghívó egyértelmű összekapcsolását a telepítéssel és az új felhasználó műveleteivel.
A technológiának azonban vannak korlátozásai is. A deferred deep link nem működik a harmadik féltől származó cookie-kat blokkoló böngészőkben, és iOS 14-től kezdve további konfigurációt igényel az iCloud Keychain-nel való munkához. Ezenkívül a linkre kattintás és a telepítés között több nap is eltelhet, és nem minden SDK garantálja az adatok megőrzését ilyen időtartamra.
A deferred deep link kötelező az új felhasználókra célzó reklámkampányokhoz, a meghívókat tartalmazó e-mail küldeményekhez és a hivatkozási programokhoz. A már telepített felhasználók számára elegendő a szokásos deep link. Ha az alkalmazás nem használ marketingkampányokat és hivatkozási mechanizmusokat, a deferred deep link nem szükséges — az Universal Links és App Links elegendő.
A megvalósítás kiválasztásakor vegye figyelembe a költséget: a Firebase Dynamic Links ingyenes, de korlátozott analitikával rendelkezik. A Branch.io és az AppsFlyer fejlett attribúciót kínál, de előfizetést igényel. Kis projektek számára a Firebase az optimális megoldás, vállalati szinten, tucatnyi reklámcsatornával — kereskedelmi MMP-k.
Gyakran ismételt kérdések
A szokásos deep link telepített alkalmazást igényel és közvetlenül megnyitja azt. Deferred Deep Link akkor is működik, ha az alkalmazás nincs telepítve — átirányít az áruházba, és a telepítés után visszaállítja az átmenet környezetét és megnyitja a célképernyőt.
A tárolás időtartama a platformtól függ. A Firebase Dynamic Links 30 napig tárolja a paramétereket. A Branch.io 90 napig őrzi meg az adatokat. Androidon az Install Referrer API a referrer karakterláncot az alkalmazás általi első olvasásig tárolja, de legfeljebb 90 napig.
Asztali számítógépen a deferred deep linknek nincs értelme, mert az alkalmazást nem lehet az áruházon keresztül telepíteni a számítógépre. Ha asztali gépről kattint a linkre, a felhasználó egy fallback URL-t lát — a tartalom webes változatát vagy egy QR-kóddal ellátott oldalt a mobiltelefonra történő telepítéshez.
A Chrome, Safari és Samsung Internet támogatja a deferred deep linket cookie és localStorage mechanizmusokon keresztül. A Firefox korlátozott támogatással rendelkezik a szigorú harmadik féltől származó cookie-k blokkolási politikája miatt. A maximális lefedettség érdekében a Firebase vagy a Branch.io SDK használata javasolt.
Technikailag megvalósítható egy önálló megoldás egy közbenső szerver és hivatkozási mechanizmusok segítségével. Ez azonban megköveteli a szerverinfrastruktúra fejlesztését és karbantartását, a cookie-k kezelését, az egyes áruházakkal való integrációt és a problémák megoldását különböző platformokon. A kész Firebase és Branch.io SDK-k tízszeresére gyorsítják a fejlesztést.
Összegzés
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.
Olvassa el is