Deferred Deep Link är en mekanism som bevarar målkontexten för övergången, även om appen inte är installerad på användarens enhet. Enligt Branch Resources, efter installation av appen bearbetar systemet automatiskan den sparade kontexten och omdirigerar användaren till målfönstret. Uppskjuten djup länk löser det huvudsakliga problemet med vanlig deep link — oförmågan att arbeta med oinstallerade appar.
Huvudsakliga
Deferred Deep Link är en typ av djup länk som fungerar i två steg: först klickar användaren på länken innan appen installeras, sedan återställer systemet kontexten efter att installationen slutförts. En vanlig deep link öppnar appen endast om den redan är installerad, medan deferred bevarar alla övergångsparametrar och överför dem vid första start.
Tekniken har blivit särskilt efterfrågad med tillväxten av mobil marknadsföring, där reklamkampanjer ofta riktar sig till användare som inte har installerat appen ännu. Utan deferred deep link skulle varje sådan övergång helt enkelt sluta med nedladdning av appen utan någon kontext — användaren skulle hamna på huvudskärmen istället för målfönstret.
En vanlig deep link öppnar målinnehållet i en redan installerad app. Om appen inte är installerad visar webbläsaren ett felmeddelande. Deferred Deep Link fungerar via en mellanliggande server som omdirigerar användaren till butiken och efter installation informerar appen om de sparade parametrarna. På så sätt kräver en deferred länk inte förhandsinstallation av appen och säkerställer en sömlös användarresa från annons till innehåll.
Bearbetningsprocessen för deferred deep link består av tre steg. I det första steget klickar användaren på länken — servern avgör om appen är installerad. Om inte, genererar den en unik sessionsidentifierare, sparar övergångsparametrarna och omdirigerar användaren till App Store eller Google Play med denna identifierare.
I det andra steget installerar användaren appen från butiken. Efter installation och första start ansluter plattformens SDK till servern, skickar enhetsidentifieraren och tar emot de sparade övergångsparametrarna. I det tredje steget bearbetar appen de mottagna uppgifterna och omdirigerar automatiskt användaren till målfönstret.
För att spara parametrar mellan klick på länken och installation används olika mekanismer. I iOS är detta nyckelkedjan (iCloud Keychain) eller urklipp, i Android — Install Referrer API. Firebase Dynamic Links använder en kombination av webbläsarens localStorage och butikens hänvisningslänk för att överföra sessionsidentifieraren. Branch.io tillämpar sitt eget protokoll med datatillgång i flera lagringsutrymmen.
I iOS implementeras deferred deep link via en kombination av Universal Links och Shared Web Credentials. När användaren klickar på en Universal Link på appens webbplats sparar Safari-webbläsaren övergångsparametrarna i iCloud Keychain som är kopplat till appens domän. Efter installation av appen från App Store kontrollerar iOS om det finns sparade data och överför dem till appen vid första start.
Apple tillhandahåller inget inbyggt API för deferred deep link — implementeringen faller helt på tredjeparts-SDK:er. Firebase Dynamic Links använder mekanismen passive deferred, där data sparas i webbläsarens cookie och återställs via en omdirigering till en specifik URL vid första start av appen.
Från och med iOS 14 har Apple skärpt integritetsreglerna, vilket har påverkat deferred deep link-mekanismerna. Urklipp kan inte längre användas för att läsa data utan uttryckligt tillstånd från användaren. iCloud Keychain har också begränsningar för datamängd — inte mer än 4 KB per skrivning. Detta gör serverbaserade lösningar med unik sessionsidentifierare till den föredragna metoden för kontextöverföring.
Android erbjuder mer flexibla möjligheter för deferred deep link via Install Referrer API. När användaren klickar på en länk till Google Play registrerar butiken referrer — en sträng med övergångsparametrar. Efter installation tar appen emot denna sträng via Install Referrer API och extraherar målkontexten från den. Detta är den mest pålitliga deferred deep link-mekanismen på Android.
För appar som distribueras inte via Google Play stöder Android en hänvisnings-BroadcastReceiver. Utvecklaren kan skicka en anpassad Intent med parametrar efter installation, och appen tar emot den via BroadcastReceiver som registrerats i manifestet. Denna mekanism är dock mindre pålitlig eftersom den beror på installationsprogrammets implementering.
Install Referrer API ger information om installationskällan, inklusive referrer-URL, övergångstid och installationstid. Maximal längd på referrer-strängen är 8 KB, tillräckligt för att överföra alla nödvändiga deep link-parametrar. API:et är tillgängligt på enheter med Google Play Store version 8.3.73 och högre och stöds på Android 5.0 (API 21).
Firebase Dynamic Links är det mest populära gratisverktyget för att implementera deferred deep link på båda plattformarna. Firebase hanterar automatiskt alla steg i deferred-övergången: omdirigering till butiken när appen saknas, lagring av parametrar på Firebase-servern och överföring av dem till SDK vid första start av appen.
För implementering räcker det att integrera Firebase SDK i projektet, skapa en Dynamic Link via Firebase Console med angivelse av djup länk och kampanjparametrar. Firebase SDK anropas automatiskt vid start av appen och kontrollerar förekomsten av en inkommande Dynamic Link via metoden getDynamicLink().
Exempel på bearbetning av deferred Firebase Dynamic Link i Activity i Kotlin. Koden fungerar likadant för cold start och warm start vid start av appen.
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)
}
}
}
}
Metoden getDynamicLink() returnerar en PendingTask med ett DynamicLink-objekt. Om appen installerades efter att ha klickat på länken kommer avlyssnaren att ta emot data med parametrar. Om appen redan var installerad före klicket kommer metoden att returnera samma data som vid vanlig deep link. Flaggan minimumAppVersion i länkparametrarna gör det möjligt att ställa in den lägsta appversionen för bearbetning.
Deferred Deep Link ger betydande fördelar för marknadsföringskampanjer: användaren får målinnehållet efter installation utan ytterligare åtgärder, vilket ökar konvertering och retention. För hänvisningsprogram gör deferred-länkar det möjligt att entydigt koppla inbjudan till installation och den nya användarens handlingar.
Tekniken har dock också begränsningar. Deferred deep link fungerar inte i webbläsare som blockerar tredjepartscookies, och på iOS från version 14 krävs ytterligare konfiguration för att fungera med iCloud Keychain. Dessutom kan det gå flera dagar mellan klick på länken och installation, och inte alla SDK:er garanterar att data bevaras under en sådan period.
Deferred deep link är obligatorisk för reklamkampanjer riktade mot nya användare, e-postutskick med inbjudningar och hänvisningsprogram. För redan installerade användare räcker vanlig deep link. Om appen inte använder marknadsföringskampanjer och hänvisningsmekanismer behövs inte deferred deep link — Universal Links och App Links är tillräckliga.
När du väljer implementering, överväg kostnaden: Firebase Dynamic Links är gratis men har begränsad analys. Branch.io och AppsFlyer erbjuder avancerad attribuering men kräver prenumeration. För små projekt är Firebase den optimala lösningen, för enterprise med dussintals reklamkanaler — kommersiella MMP:er.
Vanliga frågor
Vanlig deep link kräver en installerad app och öppnar den direkt. Deferred Deep Link fungerar även om appen inte är installerad — den omdirigerar till butiken och efter installation återställer övergångskontexten och öppnar målfönstret.
Lagringstiden beror på plattformen. Firebase Dynamic Links sparar parametrar i upp till 30 dagar. Branch.io bevarar data i upp till 90 dagar. På Android sparar Install Referrer API referrer-strängen tills den första avläsningen av appen, men inte längre än 90 dagar.
På skrivbordet är deferred deep link meningslös eftersom appen inte kan installeras via butiken på en dator. Vid klick på länken från skrivbordet kommer användaren att se en fallback URL — webbversionen av innehållet eller en sida med QR-kod för installation på en mobil enhet.
Chrome, Safari och Samsung Internet stöder deferred deep link via cookie- och localStorage-mekanismer. Firefox har begränsat stöd på grund av sin strikta policy för blockering av tredjepartscookies. För maximal täckning rekommenderas att använda Firebase eller Branch.io SDK:er.
Tekniskt sett kan en självständig lösning implementeras via en mellanliggande server och hänvisningsmekanismer. Detta kräver dock utveckling och underhåll av serverinfrastruktur, hantering av cookies, integration med varje butik och lösning av problem på olika plattformar. Färdiga Firebase och Branch.io SDK:er snabbar upp utvecklingen tiofalt.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också