Deep Link Setup ist eine der technisch anspruchsvollsten, aber gleichzeitig wirkungsvollsten Maßnahmen in der modernen App-Entwicklung. Wer Nutzer direkt in den richtigen Bereich seiner App führen möchte – statt auf die Startseite – kommt an einem sauberen Deep Link Setup nicht vorbei. Gerade für KMU mit eigenem Mobile-Produkt gilt: Fehler bei der Konfiguration kosten Nutzer, Conversions und Vertrauen. Dieser Guide zeigt, wie iOS und Android korrekt eingerichtet werden – von der Domain-Verifikation bis zur Fehlerbehandlung.
Was ist Deep Link Setup und warum ist es entscheidend?
Ein Deep Link ist eine URL, die nicht einfach eine App öffnet, sondern direkt zu einem bestimmten Inhalt innerhalb der App navigiert – zum Beispiel einem Produkt, einem Konto-Bereich oder einer Buchungsmaske. Das klingt simpel, ist technisch jedoch mehrstufig.
Ohne korrektes Deep Link Setup passiert Folgendes: Der Nutzer klickt auf einen Link in einer E-Mail oder Push-Benachrichtigung, wird aber auf die App-Startseite oder – schlimmer – auf einen Fehlerbildschirm weitergeleitet. Laut einer Analyse von Branch.io verlieren Apps ohne funktionierendes Deep Linking bis zu 40 % der Nutzer beim Einstieg aus externen Quellen.
Für KMU bedeutet das konkret: Jede Kampagne, jede E-Mail, jeder QR-Code, der eine App-Aktion auslösen soll, hängt von einem funktionierenden Deep Link Setup ab.
Die zwei Hauptwege: URL Schemes vs. verifizierte App Links
Bevor die eigentliche Konfiguration beginnt, müssen Entscheider den Unterschied zwischen zwei technischen Ansätzen verstehen:
Custom URL Schemes (Legacy-Ansatz)
Custom URL Schemes wie `meineshop://produkt/123` funktionieren auf beiden Plattformen, haben aber einen entscheidenden Nachteil: Jede App kann dasselbe URL Scheme beanspruchen. Es gibt keine Verifikation. Browser können diese URLs nicht öffnen, wenn die App nicht installiert ist – der Nutzer sieht schlicht eine Fehlermeldung.
Einsatzbereich heute:
- App-zu-App-Kommunikation innerhalb desselben Ökosystems
- Legacy-Systeme, die noch nicht auf verifizierte Links umgestellt wurden
- Interne Tools ohne externen Traffic
Verifizierte App Links (Empfohlener Ansatz)
Der moderne Standard heißt auf iOS Universal Links und auf Android App Links. Beide Verfahren basieren auf demselben Prinzip: Die Domain, unter der der Link erreichbar ist, muss die App durch eine spezifische Konfigurationsdatei autorisieren. Das verhindert Missbrauch und funktioniert nahtlos – auch wenn die App nicht installiert ist, öffnet der Browser automatisch die entsprechende Website.
Deep Link Setup für iOS: Universal Links konfigurieren
Schritt 1: Apple App Site Association (AASA) erstellen
Die zentrale Datei für iOS heißt `apple-app-site-association` – ohne Dateiendung. Sie muss unter `https://deinedomain.de/.well-known/apple-app-site-association` erreichbar sein.
Beispiel-Inhalt:
json
{
"applinks": {
"apps": [],
"details": [
{
"appIDs": ["TEAMID.com.deinunternehmen.app"],
"components": [
{
"/": "/produkte/*",
"comment": "Öffnet alle Produktseiten direkt in der App"
},
{
"/": "/konto/*",
"comment": "Kontobereich"
}
]
}
]
}
}
Wichtige Details:
- `TEAMID` ist die 10-stellige Apple Developer Team ID
- Die Datei muss über HTTPS erreichbar sein, ohne Weiterleitungen
- Content-Type muss `application/json` sein
- Die Datei darf nicht signiert oder komprimiert sein
Schritt 2: Associated Domains in Xcode aktivieren
Im Xcode-Projekt unter Signing & Capabilities muss die Capability Associated Domains hinzugefügt werden. Einzutragen ist dann:
applinks:deinedomain.de
Für Subdomains separat:
applinks:shop.deinedomain.de
Schritt 3: AppDelegate oder SceneDelegate anpassen
In Swift wird die eingehende URL in `application(_:continue:restorationHandler:)` verarbeitet:
swift
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL else {
return false
}
// URL parsen und Navigation auslösen
handleDeepLink(url: url)
return true
}
Best Practice: Trenne das URL-Parsing immer in einen eigenen `DeepLinkRouter`, der unabhängig vom AppDelegate getestet werden kann.
Deep Link Setup für Android: App Links einrichten
Schritt 1: Digital Asset Links JSON erstellen
Das Android-Äquivalent zur AASA-Datei heißt `assetlinks.json` und muss unter `https://deinedomain.de/.well-known/assetlinks.json` liegen.
Beispiel:
json
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.deinunternehmen.app",
"sha256_cert_fingerprints":
["AA:BB:CC:DD:..."]
}
}]
Den SHA-256-Fingerprint der Signing-Zertifikate erhält man mit:
bash
keytool -list -v -keystore release.keystore -alias key0
Kritischer Fehler, der häufig passiert: Der Fingerprint des Debug-Keystores unterscheidet sich vom Release-Keystore. Viele Teams testen nur mit Debug und wundern sich, warum es im Play Store nicht funktioniert. Immer beide Fingerprints eintragen, solange aktiv entwickelt wird.
Schritt 2: Intent Filter im AndroidManifest.xml
xml
<activity android:name=".MainActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="deinedomain.de"
android:pathPrefix="/produkte" />
</intent-filter>
</activity>
`android:autoVerify="true"` ist entscheidend – ohne dieses Attribut zeigt Android den App-Auswahl-Dialog, anstatt die App direkt zu öffnen.
Schritt 3: Eingehende Intents verarbeiten
In Kotlin:
kotlin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val action = intent.action
val data = intent.data
if (Intent.ACTION_VIEW == action && data != null) {
handleDeepLink(data)
}
}
Häufige Fehler beim Deep Link Setup – und wie man sie vermeidet
Ein fehlerhaftes Deep Link Setup ist in der Praxis oft nicht sofort sichtbar. Die App öffnet sich, aber der Nutzer landet an der falschen Stelle. Oder schlimmer: Sie öffnet sich gar nicht. Die häufigsten Ursachen:
1. HTTP statt HTTPS – Beide Plattformen verlangen zwingend HTTPS für verifizierte Links. HTTP-Domains werden nicht verifiziert.
2. Weiterleitungen in der AASA/assetlinks.json – Apple und Google rufen diese Dateien direkt ab. Auch eine einzige 301-Weiterleitung lässt die Verifikation scheitern.
3. Veraltete Zertifikat-Fingerprints – Sobald ein neues Signing-Zertifikat ausgestellt wird, muss die `assetlinks.json` aktualisiert werden.
4. Fehlende Pfad-Patterns – Nur die Pfade, die explizit in der Konfigurationsdatei stehen, werden als verifizierte App Links behandelt. Alle anderen fallen auf den Browser zurück.
5. App-Neuinstallation ohne erneute Verifikation – Android führt die Verifikation bei der Installation durch. Bei Problemen hilft es, die App zu deinstallieren und neu zu installieren.
6. Fehlende Fallback-Seite – Wenn die App nicht installiert ist, muss unter der verlinkten URL eine sinnvolle Webseite erscheinen. Ein 404 schadet sowohl der UX als auch dem SEO.
Deep Link Setup in der App-Architektur verankern
Ein sauberes Deep Link Setup ist keine einmalige Aufgabe – es ist Teil der App-Architektur. Wer das frühzeitig berücksichtigt, spart sich spätere Refactorings.
Routing-Schicht sauber trennen
Empfehlenswert ist ein dedizierter `DeepLinkRouter` oder `NavigationCoordinator`, der:
- Eingehende URLs parst
- Parameter extrahiert und validiert
- Die passende Ansicht oder den passenden Flow startet
- Fehlerhafte oder unbekannte Pfade sicher abfängt
Deferred Deep Links berücksichtigen
Deferred Deep Links lösen ein spezielles Problem: Ein Nutzer klickt auf einen Deep Link, hat die App aber noch nicht installiert. Nach der Installation soll er trotzdem direkt zum verlinkten Inhalt weitergeleitet werden.
Das funktioniert nicht nativ über Universal Links oder App Links, sondern erfordert eine Drittanbieter-Lösung oder eine eigene Implementierung über einen Referral-Token im Install-Attributionsprozess. Bekannte Dienste dafür sind Firebase Dynamic Links (wird 2025 eingestellt) oder Branch.io.
Für KMU empfiehlt sich hier eine einfache Eigenimplementierung: Der Deep-Link-Pfad wird beim Klick in einem Cookie oder einer Session-Variable gespeichert und nach erfolgreicher Installation abgerufen.
Testen und Monitoring des Deep Link Setups
Ein Deep Link Setup ist erst dann vollständig, wenn es systematisch getestet und überwacht wird. Nützliche Tools:
- Apple AASA Validator (aasavalidator.com) – prüft die AASA-Datei auf Korrektheit
- Google Digital Asset Links Tool – `https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://deinedomain.de&relation=delegate_permission/common.handle_all_urls`
- ADB für Android-Tests: `adb shell am start -W -a android.intent.action.VIEW -d "https://deinedomain.de/produkte/123" com.deinunternehmen.app`
- xcrun für iOS-Tests: `xcrun simctl openurl booted "https://deinedomain.de/produkte/123"`
Richten Sie zudem ein Monitoring ein, das regelmäßig prüft:
- Ist die AASA/assetlinks.json erreichbar und valide?
- Antwortzeit unter 5 Sekunden (Plattform-Anforderung)?
- Zertifikat noch gültig?
Fazit: Deep Link Setup als strategische Investition
Ein durchdachtes Deep Link Setup ist weit mehr als eine technische Konfigurationsaufgabe. Es ist die Grundlage für jede Marketing-Kampagne, jede Push-Benachrichtigung und jede E-Mail-Aktion, die Nutzer direkt in die App führen soll. KMU, die hier sauber arbeiten, verschaffen sich einen messbaren Vorteil: höhere Conversion-Raten, bessere Nutzererfahrung und weniger Abbrüche.
Die wichtigsten Punkte zusammengefasst:
- Verifizierte Links (Universal Links / App Links) gegenüber Custom URL Schemes bevorzugen
- AASA und `assetlinks.json` korrekt unter `/.well-known/` bereitstellen, ohne Weiterleitungen
- SHA-256-Fingerprints für Debug und Release-Keystores eintragen
- Einen zentralen `DeepLinkRouter` in der App-Architektur etablieren
- Fallback-Seiten für nicht installierte Apps pflegen
- Regelmäßiges Monitoring der Konfigurationsdateien einplanen
Für eine detaillierte Betrachtung der weiteren Aspekte rund um das Thema empfehlen sich die Beiträge im Pilecode Blog – dort finden Sie unter anderem Guides zu App Navigation, Tieflinking und mobilen Strategien für KMU.
Haben Sie Fragen zur Umsetzung des Deep Link Setups in Ihrer konkreten App-Infrastruktur? Die Experten von Pilecode unterstützen KMU bei der vollständigen Implementierung – von der Architekturentscheidung bis zum Go-live.
Jetzt kostenloses Erstgespräch vereinbaren →
Haben Sie Fragen zu diesem Thema? Jetzt Kontakt aufnehmen.