Membuat Dynamic Link di Android

Anda dapat membuat Dynamic Links pendek atau panjang dengan Firebase Dynamic Links Builder API. API ini menerima Dynamic Link panjang atau objek yang berisi parameter Dynamic Link, serta menampilkan URL seperti contoh berikut ini:

https://example.page.link/WXYZ

Menyiapkan Firebase dan Dynamic Links SDK

Sebelum Anda dapat membuat Dynamic Links di aplikasi Android, Anda harus menyertakan Firebase SDK. Jika aplikasi Anda sudah disiapkan untuk menerima Dynamic Links, berarti Anda telah menyelesaikan langkah ini dan dapat melewati bagian ini.

  • Tambahkan Firebase ke project Android Anda. Tambahkan dependensi untuk Firebase Dynamic Links ke file build.gradle di level aplikasi:
    implementation 'com.google.firebase:firebase-dynamic-links:16.1.7'
  • Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console. Saat menghubungkan aplikasi, pastikan Anda menentukan kunci penandatanganan SHA-1. Jika Anda menggunakan App Links, tentukan juga kunci SHA-256 Anda.
  • Di Firebase console, buka bagian Dynamic Links.
  • Jika Anda belum menyetujui persyaratan layanan dan menetapkan domain untuk Dynamic Links Anda, lakukanlah saat diminta.

    Jika Anda sudah memiliki domain Dynamic Links, catatlah. Anda harus menyediakan domain Dynamic Links ketika membuat Dynamic Link secara terprogram.

Menggunakan Firebase console

Jika Anda ingin membuat Dynamic Link tunggal, baik untuk tujuan pengujian, atau agar tim pemasaran Anda dapat dengan mudah membuat link untuk digunakan pada sesuatu, seperti postingan media sosial, cara yang paling mudah adalah dengan mengunjungi Firebase console dan membuatnya secara manual dengan mengikuti petunjuk langkah demi langkah.

Membuat Dynamic Link dari parameter

Untuk membuat Dynamic Link, buat objek DynamicLink baru menggunakan Builder sambil menentukan parameter Dynamic Link dengan metode Builder. Kemudian, panggil buildDynamicLink atau buildShortDynamicLink.

Contoh minimal berikut membuat Dynamic Link panjang ke https://www.example.com/ yang terbuka dengan aplikasi Android di Android serta aplikasi com.example.ios di iOS:

Java
Android

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();

Kotlin
Android

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

val dynamicLinkUri = dynamicLink.uri

Untuk membuat Dynamic Link pendek, buat DynamicLink dengan cara yang sama, kemudian panggil buildShortDynamicLink. Diperlukan panggilan jaringan untuk membuat link pendek. Jadi, buildShortDynamicLink menampilkan Task, yang akan membuat link pendek tersebut tersedia ketika permintaan selesai, dan tidak langsung menampilkan link. Misalnya:

Java
Android

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
                    // ...
                }
            }
        });

Kotlin
Android

val shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Set parameters
        // ...
        .buildShortDynamicLink()
        .addOnSuccessListener { result ->
            // Short link created
            val shortLink = result.shortLink
            val flowchartLink = result.previewLink
        }.addOnFailureListener {
            // Error
            // ...
        }

Secara default, Dynamic Link pendek dihasilkan dengan akhiran link 17 karakter, sehingga tidak ada yang bisa menebak Dynamic Link yang valid. Jika untuk kasus penggunaan Anda tidak ada risiko kerugian ketika seseorang berhasil menebak link pendek, Anda dapat membuat akhiran sepanjang yang diperlukan agar bersifat unik. Anda dapat melakukannya dengan meneruskan ShortDynamicLink.Suffix.SHORT ke metode buildShortDynamicLink:

Java
Android

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

Kotlin
Android

val shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT)
        // ...

Parameter Dynamic Link

Anda dapat menggunakan Dynamic Link Builder API untuk membuat Dynamic Link dengan parameter apa pun yang didukung. Lihat referensi API untuk mengetahui detailnya.

Contoh berikut membuat Dynamic Link dengan penetapan beberapa parameter umum:

Java
Android

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()

Kotlin
Android

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

Anda dapat menetapkan parameter Dynamic Link dengan metode berikut:

Parameter DynamicLink
setLink

Link yang dibuka aplikasi Anda. Tentukan URL yang dapat ditangani aplikasi Anda, biasanya konten atau payload aplikasi, yang memulai logika khusus aplikasi (seperti memberikan kredit kepada pengguna dengan kupon atau menampilkan layar sambutan). Link ini harus berupa URL yang diformat dengan baik, dienkode URL dengan benar, menggunakan HTTP atau HTTPS, dan bukan Dynamic Link lain.

setDomainUriPrefix Domain Dynamic Link Anda yang dapat ditemukan di Firebase console. Domain Dynamic Link tampak seperti contoh berikut: https://example.page.link
AndroidParameters
setFallbackUrl Link untuk dibuka jika aplikasi belum diinstal. Tentukan link ini untuk melakukan sesuatu selain menginstal aplikasi Anda dari Play Store jika aplikasi belum diinstal, seperti membuka konten versi web seluler atau menampilkan halaman promosi untuk aplikasi Anda.
setMinimumVersion versionCode dari versi minimum aplikasi Anda yang dapat membuka link tersebut. Jika aplikasi yang diinstal adalah versi yang lebih lama, pengguna akan dibawa ke Play Store untuk mengupgrade aplikasi tersebut.
IosParameters
setAppStoreId ID App Store aplikasi Anda yang digunakan untuk mengirim pengguna ke App Store jika aplikasi belum diinstal.
setFallbackUrl Link yang akan dibuka jika aplikasi belum diinstal. Tentukan link ini untuk melakukan sesuatu selain menginstal aplikasi Anda dari App Store jika aplikasi belum diinstal, seperti membuka konten versi web seluler atau menampilkan halaman promosi untuk aplikasi Anda.
setCustomScheme Skema URL khusus aplikasi Anda jika ditentukan sebagai sesuatu selain ID paket aplikasi.
setIpadFallbackUrl Link yang akan dibuka di iPad jika aplikasi belum diinstal. Tentukan link ini untuk melakukan sesuatu selain menginstal aplikasi Anda dari App Store jika aplikasi belum diinstal, seperti membuka konten versi web atau menampilkan halaman promosi untuk aplikasi Anda.
setIpadBundleId ID paket aplikasi iOS yang digunakan di iPad untuk membuka link. Aplikasi tersebut harus terhubung ke project Anda dari halaman Ringkasan Firebase console.
setMinimumVersion Nomor versi dari versi minimum aplikasi Anda yang dapat membuka link. Tanda ini diteruskan ke aplikasi saat aplikasi dibuka dan aplikasi harus menentukan tindakan untuk tanda tersebut.
NavigationInfoParameters
setForcedRedirectEnabled Jika disetel ke '1', akan melompati halaman pratinjau aplikasi saat Dynamic Link dibuka dan mengalihkan ulang halaman tersebut ke aplikasi atau toko. Halaman pratinjau aplikasi (secara default diaktifkan) lebih andal dalam mengarahkan pengguna ke tujuan yang paling sesuai saat mereka membuka Dynamic Link di aplikasi; namun, jika Anda ingin Dynamic Link hanya dibuka di aplikasi yang dapat membuka Dynamic Link dengan andal tanpa halaman ini, Anda dapat menonaktifkannya dengan parameter ini. Catatan: saat ini, halaman pratinjau aplikasi hanya ditampilkan di iOS, tetapi nantinya akan ditampilkan di Android. Parameter ini akan memengaruhi perilaku Dynamic Link pada kedua platform tersebut.
SocialMetaTagParameters
setTitle Judul yang digunakan ketika Dynamic Link dibagikan di postingan sosial.
setDescription Deskripsi yang digunakan ketika Dynamic Link dibagikan di postingan sosial.
setImageUrl URL ke gambar yang terkait dengan link ini. Ukuran gambar minimal harus 300x200 piksel, dan kurang dari 300 KB.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Parameter analisis Google Play. Parameter (utm_source, utm_medium, utm_campaign, utm_term, utm_content) ini diteruskan ke Play Store dan juga ditambahkan ke payload link.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
Parameter analisis iTunes Connect. Parameter (pt, at, ct) ini diteruskan ke App Store.

Mempersingkat Dynamic Link panjang

Untuk menyingkat Dynamic Link yang panjang, tentukan URL Dynamic Link menggunakan setLongLink, bukan menetapkan parameter dengan metode builder lain:

Java
Android

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
                    // ...
                }
            }
        });

Kotlin
Android

val 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()
        .addOnSuccessListener { result ->
            // Short link created
            val shortLink = result.shortLink
            val flowchartLink = result.previewLink
        }
        .addOnFailureListener {
            // Error
            // ...
        }

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.