Firebase Dynamic Links ist ein Google-Dienst zum Erstellen intelligenter Links, die den Benutzer zur richtigen Stelle in der App leiten, unabhängig davon, ob die App installiert ist oder nicht. Laut der Firebase-Dokumentation leiten Dynamic Links den Benutzer automatisch zum App Store oder Google Play weiter, wenn die App nicht installiert ist, und stellen den Übergangskontext nach der Installation wieder her. Die Smart-Links von Firebase lösen das Problem des URL-Schemas, das mit nicht installierten Apps nicht funktioniert.
Wichtige Punkte
Firebase Dynamic Links ist ein Cloud-Dienst von Google, der einheitliche universelle Links für mobile Apps auf iOS und Android erstellt. Ein dynamischer Link enthält einen Deep Link zu Inhalten innerhalb der App, verhält sich aber wie ein normaler HTTPS-Link: Wenn die App installiert ist, öffnet er sie direkt; wenn nicht, leitet er zum App Store weiter.
Im Gegensatz zu normalen URL-Schemas können Dynamic Links dank der Deferred-Deep-Link-Technologie mit nicht installierten Apps funktionieren. Wenn ein Benutzer die App nach dem Klicken auf den Link installiert, speichert Firebase die Übergangsparameter und übergibt sie beim ersten Start. Dies eröffnet Möglichkeiten für Empfehlungsprogramme, Marketingkampagnen und Einladungen.
URL-Schemas erfordern eine installierte App und haben keinen Standard-Fallback-Mechanismus. Firebase Dynamic Links lösen dieses Problem über einen zwischengeschalteten Firebase-Webdienst, der den Installationsstatus der App auf dem Gerät ermittelt und den Benutzer korrekt weiterleitet. Gleichzeitig funktioniert ein Link auf beiden Plattformen identisch.
Firebase Dynamic Link verwendet eine Domain wie yourcode.page.link, die in der Firebase Console registriert wird. Wenn ein Benutzer auf einen solchen Link klickt, ermittelt Firebase den Gerätetyp und den Installationsstatus der App. Für iOS wird der Universal-Links-Mechanismus verwendet, für Android App Links mit automatischer Verifizierung über Digital Asset Links.
Der Verarbeitungsprozess umfasst mehrere aufeinanderfolgende Schritte: Beim Klicken auf den Link sendet der Browser eine GET-Anfrage an den Firebase-Server; der Server ermittelt die Plattform und prüft, ob die App auf dem Gerät vorhanden ist. Wenn die App installiert ist, wird eine Weiterleitung zu einem Universal Link oder Intent mit Parametern zum Öffnen des Zielbildschirms generiert. Wenn die App nicht installiert ist, wird zum App Store oder Google Play zum Herunterladen weitergeleitet.
Die App empfängt den Link während der Firebase SDK-Initialisierung. Die Methode getDynamicLink() gibt ein PendingResult mit Übergangsdaten zurück. Nach erfolgreichem Abruf werden die Deep-Link-Parameter, UTM-Tags für Analysen und beliebige Daten, die beim Erstellen des Links übergeben wurden, extrahiert.
Die Firebase Console bietet eine visuelle Oberfläche zum Erstellen von Dynamic Links. Der Entwickler gibt die Deep-Link-URL, den Kampagnennamen, die Einstellungen für iOS und Android getrennt sowie Analyseparameter an. Nach der Erstellung generiert Firebase einen kurzen Link wie https://yourcode.page.link/abc123, der in Werbematerialien, E-Mail-Kampagnen und sozialen Netzwerken verwendet werden kann.
Für die programmatische Erstellung von Dynamic Links wird die Firebase REST API oder das Client-SDK verwendet. Die REST API ermöglicht die Massengenerierung von Links für Marketingkampagnen mit benutzerdefinierten Parametern, einschließlich Links für soziale Netzwerke und asynchroner Klickanalyse. Beim Erstellen von Links über die API ist es wichtig, die Parameter socialMetaTagInfo korrekt anzugeben — sie bestimmen, wie der Link beim Teilen in Messengern und sozialen Netzwerken mit einer Vorschaukarte angezeigt wird.
| Parameter | Zweck | Erforderlich |
|---|---|---|
| Deep Link URL | Interner Link zum App-Inhalt | Ja |
| iOS Bundle ID | App-Bezeichner im App Store | Für iOS |
| Android Package Name | Paketname im Google Play | Für Android |
| Fallback URL | Webseite, wenn die App nicht installiert ist | Nein |
| UTM-Tags | Parameter für Google Analytics | Nein |
Um mit Firebase Dynamic Links unter iOS zu arbeiten, muss das Firebase SDK über CocoaPods oder Swift Package Manager integriert, Info.plist mit GOOGLE_APP_ID konfiguriert und die Dynamic Links-Domain in den Associated Domains des Projekts registriert werden. Danach verarbeitet die App automatisch die von Firebase generierten Universal Links.
In Xcode muss die Associated Domains-Fähigkeit mit einem Eintrag wie applinks:yourcode.page.link hinzugefügt werden. Das Firebase SDK verwendet die Methode application(_:continue:restorationHandler:) zur Verarbeitung von Universal Links, daher ist keine zusätzliche Integration mit AppDelegate erforderlich — Firebase extrahiert automatisch die Dynamic Link-Parameter aus der User Activity.
Beispiel für die Info.plist-Konfiguration zur ordnungsgemäßen Firebase-Initialisierung und Dynamic Link-Handler-Registrierung. Der FIROptions-Schlüssel sollte die Projektkennung aus GoogleService-Info.plist enthalten.
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
Wenn der AppDelegate-Proxy deaktiviert ist, muss die Methode handleUniversalLink(_:) manuell aufgerufen und die User Activity aus dem continue NSUserActivity übergeben werden. Das Firebase SDK extrahiert automatisch die Linkparameter und gibt über den Completion Handler ein DynamicLink zurück.
Unter Android beginnt die Integration von Firebase Dynamic Links mit dem Hinzufügen von Abhängigkeiten in build.gradle und der Datei google-services.json von der Firebase Console. Die Dynamic Links-Domain wird in der Firebase Console registriert, wonach alle Links mit dieser Domain automatisch von der Android-App über einen Intent Filter mit Action VIEW erkannt werden. Für den korrekten Betrieb muss außerdem das Google Services-Plugin in der Stamm- und Modul-build.gradle hinzugefügt und die Gradle-Synchronisierung durchgeführt werden.
Um Links unter Android korrekt zu verarbeiten, muss ein Intent Filter für die Dynamic Links-Domain in der Activity hinzugefügt werden, die eingehende Links empfangen soll. Der Filter muss das https-Schema, den Host Ihrer Dynamic Links-Domain und den Standardpfad enthalten.
Beispiel für einen Intent Filter in AndroidManifest.xml zum Empfangen von Dynamic Links auf der Domain yourcode.page.link.
<activity android:name=".MainActivity"
android:launchMode="singleTask">
<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="yourcode.page.link" />
</intent-filter>
</activity>
Es ist wichtig, launchMode auf singleTask für die Activity zu setzen, die Dynamic Links empfängt. Dies verhindert die Erstellung einer neuen Activity-Instanz bei wiederholten Link-Klicks und ermöglicht die Verarbeitung aller eingehenden Deep Links in einer einzigen Instanz.
Das Firebase SDK für Android stellt die Methode FirebaseDynamicLinks.getInstance().getDynamicLink(intent) bereit, die ein PendingTask-Objekt mit Linkdaten zurückgibt. Aus dem DynamicLink-Objekt werden die Deep-URI, UTM-Parameter und der Übergangszeitstempel extrahiert. Die Verarbeitung sollte in den Methoden onCreate() und onNewIntent() der Activity erfolgen.
Bei der Verarbeitung ist zu beachten, dass ein Dynamic Link sowohl beim Starten der App aus einem kalten Zustand (Cold Start) als auch beim Übergang von einer anderen App zu einer bereits laufenden App empfangen werden kann. Für den zweiten Fall muss onNewIntent() überschrieben und die Dynamic Link-Prüfung erneut aufgerufen werden.
Beispiel für den Empfang und die Verarbeitung eines Firebase Dynamic Link in MainActivity. Der Code verarbeitet sowohl Cold Start als auch den Übergang von einer anderen App.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
checkDynamicLink(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
checkDynamicLink(intent)
}
private fun checkDynamicLink(intent: Intent) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener link ->
val deepLink = link?.link.toString()
handleDeepLink(deepLink)
}
}
}
Die Methode addOnSuccessListener gibt ein DynamicLink zurück, aus dem der Ziellink über link?.link extrahiert wird. Wenn der Listener null zurückgibt, enthält der Intent keinen Dynamic Link — es handelt sich um einen normalen App-Start ohne eingehenden Link. Außerdem stehen UTM-Tags für die Klickanalyse zur Verfügung, darunter campaign, medium, source und content, die an Google Analytics übergeben werden können, um die Effektivität jedes Marketingkanals detailliert zu bewerten.
Häufig gestellte Fragen
Firebase Dynamic Links unterstützt Deferred Deep Link — der Link behält den Kontext bei, selbst wenn die App nicht installiert ist. Nach der Installation erhält die App alle Übergangsparameter, was mit normalen URL-Schemas oder Universal Links nicht möglich ist.
Firebase Dynamic Links sind im kostenlosen Firebase Spark-Tarif enthalten. Es gibt keine Begrenzung der Anzahl der erstellbaren Links. Allerdings hat Google seit 2024 den Übergang zu einer neuen Infrastruktur angekündigt, sodass sich die Bedingungen ändern können.
Dynamic Links sind für mobile Apps konzipiert. Beim Klicken auf den Link von einem Desktop-Webbrowser wird die Fallback-URL geöffnet. Für Webanwendungen verwenden Sie normale Links oder Ihre eigene Weiterleitungslogik.
Die Firebase Console bietet eine Schaltfläche Test Dynamic Link zur Vorschau des Verhaltens. Sie können auch den Android-Emulator oder iOS-Simulator mit installiertem Firebase SDK verwenden, um alle Übergangsszenarien lokal zu testen.
Ein kurzer Firebase Dynamic Link besteht aus der Domain page.link und einem zufälligen Suffix von etwa 7 Zeichen. Die Gesamtlänge beträgt etwa 30 Zeichen. Der interne Deep Link kann beliebig lang sein, es wird jedoch empfohlen, ihn aus Kompatibilitätsgründen auf 2 KB zu begrenzen.
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