Deep Links mit DyLy erstellen

DyLy ist ein Dienst, der URLs verkürzt und das Erstellen von Deep Links vereinfacht.
In diesem Artikel erfahren Sie, wie Sie mit DyLy effizient Deep Links erstellen.
Was ist ein Deep Link?
Ein Deep Link sorgt dafür, dass beim Öffnen eines Links nicht der Browser, sondern direkt die App startet. Ist die App nicht installiert, wird der Nutzer in den App Store geleitet und nach der Installation zur gewünschten Seite geführt.
Apple unterstützt mit Universal Links offiziell den „unterbrechungsfreien Wechsel vom Browser zur App“, während Google mit Android App Links ein ähnliches Erlebnis bietet. Wie im Apple-Leitfaden zu Universal Links und in der Android-App-Links-Dokumentation von Google erläutert, verbessern Deep Links nicht nur die User Experience, sondern tragen auch zu höherer Sicherheit und besseren Conversion Rates bei.
Anwendungsfälle
Deep Links lassen sich auf vielfältige Weise nutzen.
Direkte Links zu Inhalten wie Videos
Sie können Links in sozialen Netzwerken teilen und Nutzer direkt zu bestimmten Inhalten führen. Im Web ist das selbstverständlich, aber mit Deep Links lassen sich Inhalte auch in mobilen Apps unmittelbar öffnen. Außerdem können Sie dem Link Query-Parameter hinzufügen, um beispielsweise den Zugriffsweg auszuwerten.
Einladungslinks
Deep Links eignen sich, um jemanden in eine Gruppe oder einen ähnlichen Bereich innerhalb einer App einzuladen. Klickt der Eingeladene auf den Link, öffnet sich die App und der Einladungsprozess beginnt. Ist die App nicht installiert, wird der Nutzer in den App Store geführt; nach der Installation lässt sich der Prozess fortsetzen.
Redirects
Wenn Sie eine App als Ziel für OAuth- oder ähnliche Redirects verwenden möchten, können Sie auf benutzerdefinierte Schemata (z. B. myapp://) setzen, was jedoch das Risiko birgt, dass Informationen abgefangen werden. Nutzen Sie stattdessen Deep Links, um Redirects sicher in der App entgegenzunehmen.
Umsetzung
Im Folgenden sehen wir uns an, wie Deep Links konkret umgesetzt werden. Es gibt viele Dienste, die Deep Links generieren, hier verwenden wir DyLy.
Metadaten erstellen
Die Domain muss mit der Anwendung verknüpft werden. Die Details finden Sie in der Apple-Dokumentation und der Google-Dokumentation. Kurz gesagt: Sie hosten im Web einen Endpunkt, der den Domainbesitz und die Zuordnung zur App nachweist, damit Apple und Google die Verknüpfung prüfen können.
Sie müssen lediglich JSON in einem festgelegten Format zurückgeben. Sie können es selbst z. B. über S3 bereitstellen, doch DyLy stellt dafür eine komfortable Funktion zur Verfügung.
Mit DyLy lässt sich ein sogenannter JSON Link erzeugen, der am Ziel die definierte JSON-Antwort ausliefert. Über die API senden Sie dazu die folgende Anfrage.
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \3 -H "Content-Type: application/json" \4 -d '{5 "type": "json",6 "projectId": "your-project-id",7 "path": ".well-known/apple-app-site-association",8 "rawJson": {9 "applinks": {10 "apps": [],11 "details": [12 {13 "appIDs": ["TEAM123.com.example.app"],14 "paths": [15 "NOT /_/*",16 "NOT /deferred-params",17 "/*"18 ]19 }20 ]21 }22 }23 }'Einstellungen in der App
Als Nächstes konfigurieren Sie die App gemäß den Vorgaben des jeweiligen Betriebssystems.
iOS
Fügen Sie in Xcode unter Signing & Capabilities den Abschnitt Associated Domains hinzu und registrieren Sie Ihre Domain, etwa applinks:example.com.
Android
Ergänzen Sie AndroidManifest.xml um <intent-filter android:autoVerify="true"> und validieren Sie die Domain über android:autoVerify.
Wird der Link über den Browser aufgerufen, können Sie ihn in den Einstellungen auf eine beliebige URL weiterleiten lassen.
Link erstellen
Zum Schluss erzeugen Sie den Link in DyLy.
Wenn Sie type auf deep setzen, entsteht wie unten gezeigt ein Deep Link.
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \3 -H "Content-Type: application/json" \4 -d '{5 "type": "deep",6 "projectId": "your-project-id",7 "path": "groups/awesome-group",8 "destinationUrl": "https://apps.apple.com/app/yourapp/id123456",9 "jwtClaims": {10 "invitationId": "inv-789xyz",11 "invitedBy": "user-123",12 "groupId": "awesome-group",13 "groupName": "Awesome Group",14 "permissions": "member",15 "timestamp": 173589440416 },17 "jwtExpiresIn": 300,18 "expiresIn": 2592000,19 "keyProtected": false,20 "oneTime": false21 }'Die Werte in jwtClaims werden in den JWT übernommen, daher sollten Sie sie sorgfältig behandeln.
Nachdem der Deep Link erstellt wurde, generiert DyLy einen Link mit einem JWT als Query-Parameter.
Verarbeitung des Links in der Anwendung
Nachdem ein Nutzer auf den Link geklickt hat, erhält die Anwendung ihn. Gehen Sie anschließend wie folgt vor.
JWT überprüfen
Stellen Sie sicher, dass der Link tatsächlich von DyLy ausgestellt wurde.
Zuvor ein kurzer Blick auf JWT. Ein JWT ist vereinfacht gesagt JSON mit einer Signatur. Über die Signaturprüfung stellen Sie den Aussteller fest und können sicherstellen, dass der Inhalt unverändert ist.
Da grundsätzlich jeder Links erstellen kann, müssen Sie nicht legitime Links erkennen. Legitime Links werden mit dem privaten Schlüssel von DyLy signiert, und Ihre App kann über die Signaturprüfung bestätigen, dass der Link echt ist und die Parameter nicht manipuliert wurden.
DyLy setzt auf das verbreitete JWT-Verfahren, sodass Sie vorhandene JWT-Bibliotheken zur Signaturprüfung verwenden können.
Die Anwendung sollte daher zunächst den JWT prüfen, sobald der Link eingeht.
Parameter prüfen
Nach der Signaturprüfung lesen Sie die Nutzdaten aus und führen die gewünschten Aktionen aus.
Bei Einladungslinks entnehmen Sie beispielsweise die Gruppen-ID oder ähnliche Kennungen.
Beachten Sie, dass ein JWT zwar signiert, aber nicht verschlüsselt ist (es gibt auch verschlüsselte JWTs, das ist jedoch ein anderes Format).
Das bedeutet, dass jeder den Inhalt eines JWT lesen kann. Speichern Sie daher keine sensiblen Informationen wie personenbezogene Daten im JWT. Im Fall eines Einladungslinks genügt es, Kennungen wie die Gruppen-ID zu hinterlegen und detaillierte Informationen serverseitig vorzuhalten.
Deferred Deep Link
Wenn ein Nutzer den Link auf einem Gerät ohne installierte App anklickt, wird er in den App Store weitergeleitet und kann nach der Installation die gewünschte Seite öffnen. Das wird als Deferred Deep Link bezeichnet. DyLy unterstützt auch diesen Mechanismus.
Zunächst tippt der Nutzer auf einem mobilen Gerät ohne App auf den Link. Da die App fehlt, wird der Link im Browser ausgeführt und erreicht den DyLy-Server. DyLy speichert Daten wie die IP-Adresse und das Betriebssystem des Geräts und leitet den Nutzer anschließend in den App Store weiter.
Startet die App nach der Installation zum ersten Mal, fragt sie bei DyLy nach, ob dieses Gerät den Link bereits zuvor aufgerufen hat. Anhand von IP-Adresse und Betriebssystem prüft DyLy, ob ein Zugriff vor der Installation stattgefunden hat, und liefert in diesem Fall den entsprechenden Deep Link an die Anwendung zurück.
Auf diese Weise kann die App beim ersten Start nach der Installation die zuvor angeklickten Deep-Link-Informationen abrufen.
Weitere Details finden Sie in der offiziellen DyLy-Dokumentation.
Fazit
Mit DyLy lassen sich Deep Links unkompliziert umsetzen. Im nächsten Beitrag betrachten wir konkrete Szenarien wie den Aufbau von Einladungslinks.




