Ein Deep Link ist eine URL, die den Benutzer unter Umgehung des Startbildschirms zu einem bestimmten Bildschirm oder Inhalt innerhalb einer mobilen App führt. Im Gegensatz zu einem normalen Link zu einer Website aktiviert ein Deep Link die App und öffnet sofort den Zielinhalt. Laut Android Developers erhöhen richtig konfigurierte Deep Links die Conversion zur Zielaktion um 30–50 %, indem sie die Anzahl der Schritte zum Erreichen des Inhalts reduzieren.
Wichtige Punkte
Ein Deep Link ist ein URI, der beim Anklicken keine Webseite, sondern einen bestimmten Bildschirm innerhalb einer mobilen Anwendung öffnet. Die Technologie löst ein fundamentales Problem mobiler Plattformen: Der Browser kann keinen App-Bildschirm direkt öffnen, und ein Deep Link schafft eine Brücke zwischen dem Web und nativem Code. Ohne Deep Link landet der Benutzer immer auf dem Startbildschirm und muss manuell zum gewünschten Inhalt navigieren.
Die Architektur eines Deep Links besteht aus zwei Teilen: Das Schema (scheme) bestimmt, welche App den Link verarbeiten soll, und der Pfad (path) zeigt auf eine bestimmte Ressource innerhalb der App — ein Produkt, einen Artikel, ein Benutzerprofil oder einen Einstellungsbereich. Abfrageparameter (?source=push&campaign=summer) übermitteln zusätzlichen Kontext für Analysen, Personalisierung und Kampagnenattribution.
Es ist wichtig, zwischen einem Deep Link und einem normalen Link zu unterscheiden. Ein normaler Link (https://example.com/product/42) wird im Browser geöffnet und führt zur Webversion einer Seite. Ein Deep Link (myapp://product/42) öffnet bei installierter App den nativen Bildschirm mit dem gleichen Inhalt, zeigt aber bei fehlender App einen Fehler an. Universal Link (iOS) und App Link (Android) wurden genau zur Lösung des nahtlosen Fallback-Problems entwickelt.
Verschiedene Aufgaben erfordern verschiedene Arten von Deep Links. Einige Links funktionieren nur mit installierter App, andere können auf die Installation warten, und wieder andere übermitteln analytischen Kontext. Die Wahl des Typs hängt vom Anwendungsszenario ab: Werbekampagne, Push-Benachrichtigung, Content-Sharing oder E-Mail-Newsletter.
Ein Standard Deep Link ist der Basistyp, der nur ausgelöst wird, wenn die App bereits auf dem Gerät installiert ist. Der Benutzer klickt auf einen Link myapp://product/42, das System erkennt das registrierte Schema und öffnet die App auf dem gewünschten Bildschirm. Ist die App nicht installiert, zeigt der Browser einen Fehler „Seite nicht gefunden“ an oder tut gar nichts. Dieser Typ eignet sich für die interne Navigation innerhalb einer bereits installierten Anwendung.
Die Einrichtung eines Standard Deep Links ist einfach: Registrieren Sie einfach das URI-Schema im Manifest (Android) oder in der Info.plist (iOS). Es ist keine Server-Validierung oder SSL-Zertifikate erforderlich. Gerade wegen des fehlenden Fallbacks gilt dieser Typ jedoch als veraltet für Marketingkampagnen — der Traffic-Verlust von Benutzern ohne App kann bis zu 60 % betragen.
Ein Deferred Deep Link löst das Hauptproblem normaler Deep Links: Er funktioniert auch dann, wenn die App nicht installiert ist. Der Benutzer klickt auf einen Link → sieht eine Seite (Landing Page oder App Store/Google Play) → installiert die App → beim ersten Start erhält die App den Kontext des ursprünglichen Links und öffnet den gewünschten Bildschirm. Die Technologie erfordert ein vermittelndes SDK (AppsFlyer, Branch, Adjust), das den Kontext bis zum ersten Start auf dem Server speichert.
Branch ist eine der beliebtesten Plattformen für Deferred Deep Links. Es stellt einen einzigen Link bereit, der auf allen Plattformen funktioniert: Er erkennt das Betriebssystem des Benutzers, leitet zum App Store weiter und übergibt nach der Installation den Kontext (Aktionscode, Produkt-ID, Kampagnenquelle). Laut Branch (2024) steigern Deferred Deep Links die Conversion von Werbekampagnen um 40–70 %.
Ein Contextual Deep Link ist ein normaler oder aufgeschobener Deep Link, der mit Kontextparametern ergänzt wird: Traffic-Quelle, Kampagne, Aktionscode, Referrer, Partner-ID. Die Parameter werden in der URL übermittelt und von der App zur Personalisierung verarbeitet: Begrüßungsbonus anzeigen, Produkt mit Rabatt öffnen, Installationsanalysen aufzeichnen.
UTM-Tags (utm_source, utm_medium, utm_campaign) sind eine Standardmethode zur Kontextübergabe. Im mobilen Bereich sind kontextuelle Deep Links für die Attribution entscheidend: Ohne sie weiß der App-Besitzer nicht, welcher Kanal den Benutzer gebracht hat — organischer Traffic, Facebook-Anzeigen, E-Mail-Newsletter oder QR-Code. Eine qualitativ hochwertige Attribution erfordert die Integration mit einem MMP (Mobile Measurement Partner).
| Deep-Link-Typ | Erfordert Installation | Auf Installation warten | Kontext |
|---|---|---|---|
| Standard | Ja | Nein | Nur in URL |
| Deferred | Nein | Ja | Server-Speicherung |
| Contextual | Beliebig | Beliebig | UTM + Parameter |
iOS unterstützt Deep Links über zwei Mechanismen: das ältere Custom URL Scheme und den modernen Universal Link (iOS 9+). Custom URL Scheme funktioniert durch Registrieren eines benutzerdefinierten Schemas in der Info.plist. Die App registriert myapp://, und iOS öffnet die App beim Klick auf einen solchen Link. Problem: Ist das Schema bei keiner App registriert, zeigt der Browser einen Fehler an.
Die Verarbeitung von Deep Links unter iOS erfolgt über die AppDelegate-Methode application(_:open:options:) oder SceneDelegate scene(_:openURLContexts:). Der Entwickler extrahiert die URL, parst den Pfad und die Parameter und navigiert dann zum entsprechenden Bildschirm. Bei Verwendung von SwiftUI erfolgt die Verarbeitung über OpenURLAction oder onChange(of: openURL). Es ist wichtig, den App-Status korrekt zu behandeln: Die App kann nicht gestartet, im Hintergrund oder aktiv sein.
Die Sicherheit unter iOS ist streng: Jede App kann ein Custom URL Scheme abfangen, indem sie dasselbe Schema registriert. Dies ist eine potenzielle Schwachstelle (URL-Schema-Hijacking). Daher empfiehlt Apple Universal Link als sicherere Alternative: Nur der verifizierte Domain-Inhaber kann Links mit der App verknüpfen. Weitere Informationen zu Universal Link finden Sie im Artikel Universal Link.
Android implementiert Deep Links über Intent-Filter in der AndroidManifest.xml. Die App definiert eine Activity, die ein bestimmtes Schema (myapp://) oder bestimmte Hosts und Pfade verarbeitet. Wenn der Benutzer auf einen Deep Link klickt, sucht Android nach einer Activity mit passendem Intent-Filter und öffnet sie. Bei mehreren passenden Activities zeigt das System einen App-Auswahldialog an.
// AndroidManifest.xml - Intent Filter für 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>
Die Verarbeitung von Deep Links unter Android erfolgt in der Methode Activity.onCreate() oder onNewIntent(). Der Entwickler erhält den Intent, extrahiert die URI und führt die Navigation aus. Für Jetpack Navigation ermöglicht die Komponente Navigation Deep Link die deklarative Beschreibung von Deep Links im Navigationsgraphen. Android App Link (Android 6.0+) ist eine Weiterentwicklung von Deep Links mit Verifizierung über Digital Asset Links, die den App-Auswahldialog überflüssig macht.
Es ist wichtig, die Änderungen ab Android 12+ zu beachten: Ab API 31 verlangt das System die explizite Deklaration von exported=true für Activities, die Deep Links verarbeiten, und prüft die Korrektheit des Intent-Filters. Google Play Store überprüft die App-Link-Verifizierung bei der Veröffentlichung. Ohne Verifizierung kann Google das Update ablehnen, wenn Deep Links zu nicht existierenden Website-Seiten führen.
Die Einrichtung von Deep Links umfasst mehrere Phasen, die beiden Plattformen gemeinsam sind. Der erste Schritt ist die Definition des Schemas und der URL-Struktur. Es wird empfohlen, das https-Schema (anstelle eines benutzerdefinierten) zu verwenden, um Kompatibilität mit Universal Link und App Link zu gewährleisten. Die URL-Struktur sollte die Website-Struktur widerspiegeln: /product/42, /profile/john, /settings/notifications. Dies vereinfacht die Wartung und die Indexierung von Inhalten durch Suchmaschinen.
Die zweite Phase ist die Verarbeitung von Deep Links im App-Code. Für Android wird Jetpack Navigation mit deklarativen Deep Links im nav_graph empfohlen. Für iOS — SwiftUI NavigationStack mit OpenURLAction-Verarbeitung. Es ist wichtig, drei App-Zustände zu behandeln: Kaltstart (App nicht gestartet), Warmstart (im Hintergrund) und aktiv (im Vordergrund). Jeder Zustand erfordert eine andere Navigationslogik.
Das Testen von Deep Links ist eine separate Aufgabe. Android Studio bietet das Tool App Links Assistant zur Überprüfung von Intent-Filtern. Unter iOS erfolgt das Testen über Xcode durch Übergabe einer URL über Startargumente. Es wird empfohlen, eine CI-Überprüfung einzurichten: automatische Deep-Link-Navigation und Überprüfung, ob der erwartete Bildschirm geöffnet wurde. Für Deferred Deep Links umfasst das Testen den vollständigen Zyklus „Installation → erster Start → Kontext“. Ohne Tests brechen Deep Links bei Aktualisierung der App-Navigation häufig.
Häufig gestellte Fragen
Ein normaler Link (https://site.com/page) wird im Browser geöffnet. Ein Deep Link (myapp://page oder https://site.com/page mit Verifizierung) öffnet einen Bildschirm innerhalb einer mobilen App. Ein Deep Link kann auch Kontext übermitteln: Aktionscode, Traffic-Quelle, Referrer-ID.
Ein URI-Schema ist ein URL-Präfix, das bestimmt, welche App den Link verarbeiten soll (z. B. myapp://, vk://, tg://). Das System verwendet das Schema zum Routing: Es findet die App, die dieses Schema registriert hat, und übergibt ihr die URL zur Verarbeitung.
Der Benutzer klickt auf einen Link → der Dienst (Branch, AppsFlyer) merkt sich den Kontext → leitet zum App Store/Google Play weiter → nach Installation und erstem Start übergibt das SDK den gespeicherten Kontext an die App → die App öffnet den gewünschten Bildschirm, als ob der Benutzer die App bereits installiert hätte.
Ein normaler Deep Link — nein. Ein Deferred Deep Link — ja, über eine Zwischenseite, die zum App Store weiterleitet und den Kontext speichert. Universal Links und App Links öffnen die Website als Fallback, wenn die App nicht installiert ist.
Auf Android verwenden Sie adb: adb shell am start -W -a android.intent.action.VIEW -d „myapp://product/42“. Auf iOS — xcrun simctl openurl booted „myapp://product/42“. Für beide Plattformen stehen Testkonsolen von Firebase Dynamic Links und Branch zur Verfügung.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch