Dynamische Links auf Android-Geräten erstellen

Mit der Firebase Dynamic Links Builder API kannst du kurze oder lange Dynamic Links erstellen. Diese API akzeptiert entweder eine lange Dynamic Link oder ein Objekt mit Dynamic Link-Parametern und gibt URLs wie in den folgenden Beispielen zurück:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

Bevor Sie Dynamic Links in Ihrer Android-App erstellen können, müssen Sie das Firebase SDK einbinden. Wenn Ihre App für den Empfang von Dynamic Links eingerichtet ist, haben Sie diese Schritte bereits ausgeführt und können diesen Abschnitt überspringen.

  1. Falls noch nicht geschehen, fügen Sie Ihrem Android-Projekt Firebase hinzu.

    Geben Sie bei der Registrierung Ihrer App Ihren SHA-1-Signaturschlüssel an. Wenn Sie App-Links verwenden, geben Sie auch Ihren SHA-256-Schlüssel an.

  2. Fügen Sie in der Gradle-Datei des Moduls (auf Anwendungsebene) (in der Regel <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle) die Abhängigkeit für die Dynamic Links-Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Versionierung der Bibliothek zu steuern.

    Für eine optimale Nutzung von Dynamic Links empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und Ihrer App das Firebase SDK für Google Analytics hinzuzufügen.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.6.0"))
    
        // Add the dependencies for the Dynamic Links and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-dynamic-links'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    Mit der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.

    Alternative: Firebase-Bibliotheksabhängigkeiten ohne BoM hinzufügen

    Wenn Sie Firebase BoM nicht verwenden, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.

    Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir Ihnen dringend, die Bibliotheksversionen mithilfe der BoM zu verwalten. So wird sichergestellt, dass alle Versionen kompatibel sind.

    dependencies {
        // Add the dependencies for the Dynamic Links and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-dynamic-links:22.1.0'
        implementation 'com.google.firebase:firebase-analytics:22.1.2'
    }
    
    Sie suchen nach einem Kotlin-spezifischen Bibliotheksmodul? Ab Oktober 2023 (Firebase BoM 32.5.0) können sowohl Kotlin- als auch Java-Entwickler das Hauptbibliotheksmodul verwenden. Weitere Informationen finden Sie in den häufig gestellten Fragen zu dieser Initiative.
  3. Öffnen Sie in der Firebase Console den Bereich Dynamic Links.
  4. Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und keine Domain für Ihre Dynamic Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.

    Wenn Sie bereits eine Dynamic Links-Domain haben, notieren Sie sich diese. Wenn Sie Dynamic Links programmatisch erstellen, müssen Sie eine Dynamic Links-Domain angeben.

  5. Empfohlen: Geben Sie die in Ihren Deeplinks und Fallback-Links zulässigen URL-Muster an. So verhindern Sie, dass Unbefugte Dynamic Links erstellen, die von Ihrer Domain zu Websites weiterleiten, die nicht von Ihnen verwaltet werden. Weitere Informationen finden Sie unter Bestimmte URL-Muster zulassen.

Firebase-Konsole verwenden

Wenn Sie eine einzelne Dynamic Link generieren möchten, entweder zu Testzwecken oder damit Ihr Marketingteam ganz einfach einen Link erstellen kann, der beispielsweise in einem Beitrag in sozialen Medien verwendet werden kann, ist die einfachste Methode, die Firebase-Konsole aufzurufen und einen Link manuell anhand der Schritt-für-Schritt-Anleitung zu erstellen.

Wenn Sie ein Dynamic Link erstellen möchten, erstellen Sie ein neues DynamicLink-Objekt mit seinem Builder und geben Sie die Dynamic Link-Parameter mit den Builder-Methoden an. Rufen Sie dann buildDynamicLink oder buildShortDynamicLink an.

Im folgenden Minimalbeispiel wird ein langer Dynamic Link zu https://www.example.com/ erstellt, der unter Android mit Ihrer Android-App und unter iOS mit der App com.example.ios geöffnet wird:

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Open links with this app on Android
    androidParameters { }
    // Open links with com.example.ios on iOS
    iosParameters("com.example.ios") { }
}

val dynamicLinkUri = dynamicLink.uri

Java

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Open links with this app on Android
        .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
        // Open links with com.example.ios on iOS
        .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build())
        .buildDynamicLink();

Uri dynamicLinkUri = dynamicLink.getUri();

Wenn du eine kurze Dynamic Link erstellen möchtest, erstelle eine DynamicLink auf die gleiche Weise und rufe dann buildShortDynamicLink auf. Für das Erstellen eines Kurzlinks ist ein Netzwerkaufruf erforderlich. Daher gibt buildShortDynamicLink anstelle des direkten Zurückgebens des Links einen Task zurück, über den der Kurzlink verfügbar ist, sobald die Anfrage abgeschlossen ist. Beispiel:

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Set parameters
    // ...
}.addOnSuccessListener { (shortLink, flowchartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.component1 and
    // com.google.firebase.dynamiclinks.component2

    // Short link created
    processShortLink(shortLink, flowchartLink)
}.addOnFailureListener {
    // Error
    // ...
}

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Set parameters
        // ...
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Standardmäßig werden Kurz-Dynamic Links mit einem 17-stelligen Linksuffix generiert, sodass es äußerst unwahrscheinlich ist, dass jemand einen gültigen Dynamic Link erraten kann. Wenn es für Ihren Anwendungsfall nicht schlimm ist, wenn jemand einen kurzen Link errät, können Sie Suffixe generieren, die nur so lang sind, wie es für die Eindeutigkeit erforderlich ist. Dazu übergeben Sie ShortDynamicLink.Suffix.SHORT an die buildShortDynamicLink-Methode:

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Mit der Dynamic Link Builder API können Sie Dynamic Links mit einem beliebigen der unterstützten Parameter erstellen. Weitere Informationen finden Sie in der API-Referenz.

Im folgenden Beispiel wird eine Dynamic Link mit mehreren gängigen Parametern erstellt:

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    androidParameters("com.example.android") {
        minimumVersion = 125
    }
    iosParameters("com.example.ios") {
        appStoreId = "123456789"
        minimumVersion = "1.0.1"
    }
    googleAnalyticsParameters {
        source = "orkut"
        medium = "social"
        campaign = "example-promo"
    }
    itunesConnectAnalyticsParameters {
        providerToken = "123456"
        campaignToken = "example-promo"
    }
    socialMetaTagParameters {
        title = "Example of a Dynamic Link"
        description = "This link works whether the app is installed or not!"
    }
}

Java

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        .setAndroidParameters(
                new DynamicLink.AndroidParameters.Builder("com.example.android")
                        .setMinimumVersion(125)
                        .build())
        .setIosParameters(
                new DynamicLink.IosParameters.Builder("com.example.ios")
                        .setAppStoreId("123456789")
                        .setMinimumVersion("1.0.1")
                        .build())
        .setGoogleAnalyticsParameters(
                new DynamicLink.GoogleAnalyticsParameters.Builder()
                        .setSource("orkut")
                        .setMedium("social")
                        .setCampaign("example-promo")
                        .build())
        .setItunesConnectAnalyticsParameters(
                new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
                        .setProviderToken("123456")
                        .setCampaignToken("example-promo")
                        .build())
        .setSocialMetaTagParameters(
                new DynamicLink.SocialMetaTagParameters.Builder()
                        .setTitle("Example of a Dynamic Link")
                        .setDescription("This link works whether the app is installed or not!")
                        .build())
        .buildDynamicLink();  // Or buildShortDynamicLink()

Sie können Dynamic Link-Parameter mit den folgenden Methoden festlegen:

DynamicLink-Parameter
setLink

Der Link, über den Ihre App geöffnet wird. Geben Sie eine URL an, die Ihre App verarbeiten kann. Normalerweise ist das der Inhalt oder die Nutzlast der App, die eine appspezifische Logik auslöst, z. B. das Gutschreiben eines Gutscheins für den Nutzer oder das Einblenden eines Begrüßungsbildschirms. Dieser Link muss eine korrekt formatierte URL sein, richtig URL-codiert sein, entweder HTTP oder HTTPS verwenden und darf kein anderer Dynamic Link sein.

setDomainUriPrefix Dein Dynamic Link-URL-Präfix, das du in der Firebase-Konsole findest. Eine Dynamic Link-Domain sieht in etwa so aus:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie hier an, was passieren soll, wenn die App nicht installiert ist. Sie können beispielsweise die mobile Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen lassen.
setMinimumVersion Die versionCode der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Wenn die installierte App eine ältere Version ist, wird der Nutzer zum Play Store weitergeleitet, um die App zu aktualisieren.
IosParameters
setAppStoreId Die App-Store-ID Ihrer App, mit der Nutzer zum App Store weitergeleitet werden, wenn die App nicht installiert ist
setFallbackUrl Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie hier an, was passieren soll, wenn die App nicht installiert ist. Sie können beispielsweise die mobile Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen lassen.
setCustomScheme Das benutzerdefinierte URL-Schema Ihrer App, sofern es sich nicht um die Bundle-ID Ihrer App handelt
setIpadFallbackUrl Der Link, der auf iPads geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie hier an, was passieren soll, wenn die App nicht installiert ist, z. B. die Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen.
setIpadBundleId Die Bundle-ID der iOS-App, die auf iPads verwendet werden soll, um den Link zu öffnen. Die App muss auf der Übersichtsseite der Firebase-Konsole mit Ihrem Projekt verknüpft sein.
setMinimumVersion Die Versionsnummer der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Dieses Flag wird an Ihre App übergeben, wenn sie geöffnet wird. Ihre App muss dann entscheiden, was damit geschehen soll.
NavigationInfoParameters
setForcedRedirectEnabled Wenn „1“ festgelegt ist, wird die Seite mit der App-Vorschau übersprungen, wenn die Dynamic Link geöffnet wird, und stattdessen wird zur App oder zum Store weitergeleitet. Über die App-Vorschauseite (standardmäßig aktiviert) können Nutzer zuverlässiger an das am besten geeignete Ziel weitergeleitet werden, wenn sie Dynamic Links in Apps öffnen. Wenn Sie jedoch davon ausgehen, dass Dynamic Link nur in Apps geöffnet werden soll, die Dynamic Links zuverlässig ohne diese Seite öffnen können, können Sie sie mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur auf iOS-Geräten auf das Verhalten der Dynamic Link aus.
SocialMetaTagParameters
setTitle Der Titel, der verwendet werden soll, wenn die Dynamic Link in einem Beitrag in sozialen Medien geteilt wird.
setDescription Die Beschreibung, die verwendet werden soll, wenn die Dynamic Link in einem Beitrag in sozialen Medien geteilt wird.
setImageUrl Die URL zu einem Bild, das mit diesem Link verknüpft ist. Das Bild sollte mindestens 300 × 200 Pixel groß und kleiner als 300 KB sein.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Google Play-Analyseparameter Diese Parameter (utm_source, utm_medium, utm_campaign, utm_term, utm_content) werden an den Play Store übergeben und an die Linknutzlast angehängt.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect-Analyseparameter Diese Parameter (pt, at, ct) werden an den App Store übergeben.

Wenn Sie eine lange Dynamic Link verkürzen möchten, geben Sie die URL der Dynamic Link mit setLongLink an, anstatt Parameter mit den anderen Builder-Methoden festzulegen:

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    longLink = Uri.parse(
        "https://example.page.link/?link=" +
            "https://www.example.com/&apn=com.example.android&ibn=com.example.ios",
    )
}.addOnSuccessListener { (shortLink, flowChartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.component1 and
    // com.google.firebase.dynamiclinks.component2

    // Short link created
    processShortLink(shortLink, flowChartLink)
}.addOnFailureListener {
    // Error
    // ...
}

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios"))
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });