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, dan menampilkan URL seperti contoh berikut:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Menyiapkan Firebase dan Dynamic Links SDK
Agar 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-langkah ini dan dapat mengabaikan bagian ini.
Tambahkan Firebase ke project Android jika Anda belum melakukannya.
Saat mendaftarkan aplikasi, tentukan kunci penandatanganan SHA-1 Anda. Jika menggunakan App Links, tentukan juga kunci SHA-256 Anda.
-
Dalam file Gradle modul (level aplikasi) (biasanya
<project>/<app-module>/build.gradle.kts
atau<project>/<app-module>/build.gradle
), tambahkan dependensi untuk library Dynamic Links untuk Android. Sebaiknya gunakan Firebase Android BoM untuk mengontrol pembuatan versi library.Untuk mengoptimalkan penggunaan Dynamic Links, sebaiknya aktifkan Google Analytics di project Firebase dan tambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda.
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' }
Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM
Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.
Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.
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' }
- 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 membuat domain Dynamic Links, catat domain tersebut. Anda harus menyediakan domain Dynamic Links ketika membuat Dynamic Links secara terprogram.
- Direkomendasikan: Tentukan pola URL yang diizinkan di deep link dan link fallback. Dengan begitu, pihak yang tidak diberi otorisasi tidak dapat membuat Dynamic Links yang mengalihkan pengguna dari domain Anda ke situs yang tidak Anda kontrol. Baca artikel Mengizinkan pola URL tertentu.
Menggunakan Firebase console
Jika Anda ingin membuat Dynamic Link tunggal, baik untuk tujuan pengujian, atau untuk memudahkan tim pemasaran Anda ketika membuat link untuk digunakan pada postingan media sosial misalnya, 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 dengan
Builder-nya, dengan menentukan parameter Dynamic Link dengan metode Builder tersebut. Selanjutnya, 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:
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();
Untuk membuat Dynamic Link pendek, build DynamicLink
dengan cara yang sama, lalu
panggil buildShortDynamicLink
. Diperlukan panggilan jaringan untuk mem-build link pendek. Jadi, buildShortDynamicLink
akan menampilkan Task
, yang akan membuat link pendek tersebut tersedia ketika permintaan selesai, dan tidak akan langsung menampilkan link. Contoh:
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 // ... } } });
Secara default, Dynamic Links pendek dihasilkan dengan akhiran link 17 karakter sehingga sangat kecil kemungkinan ada yang bisa menebak Dynamic Link yang valid. Untuk kasus penggunaan Anda, jika tidak ada risiko kerugian bila seseorang berhasil menebak link pendek, Anda dapat membuat akhiran hanya sepanjang yang diperlukan agar link tersebut unik. Lakukan ini dengan meneruskan ShortDynamicLink.Suffix.SHORT
ke metode buildShortDynamicLink
:
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
Parameter Dynamic Link
Anda dapat menggunakan Dynamic Link Builder API untuk membuat Dynamic Links dengan parameter apa pun yang didukung. Lihat referensi API untuk mengetahui detailnya.
Contoh berikut membuat Dynamic Link dengan menetapkan beberapa parameter umum:
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()
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 kupon kepada pengguna atau menampilkan layar sambutan). Link ini harus berupa URL yang diformat dengan baik, dienkode URL dengan benar, menggunakan HTTP atau HTTPS, dan bukan merupakan Dynamic Link lain. |
setDomainUriPrefix | Awalan URL Dynamic Link Anda, yang dapat ditemukan di Firebase console. Domain
Dynamic Link akan tampak seperti contoh berikut:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | Link yang akan dibuka jika aplikasi belum diinstal. Tentukan parameter 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. Jika aplikasi yang terinstal adalah versi lama, pengguna akan diarahkan 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 parameter 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 kustom aplikasi Anda jika ditentukan lain dari ID paket aplikasi Anda. |
setIpadFallbackUrl | Link yang akan dibuka di iPad jika aplikasi belum diinstal. Tentukan parameter 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 harus terhubung ke project Anda dari halaman Ringkasan Firebase console. |
setMinimumVersion | Nomor versi dari versi minimum aplikasi Anda yang dapat membuka link. Flag ini diteruskan ke aplikasi saat aplikasi dibuka, dan aplikasi harus menentukan tindakan untuk flag tersebut. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | Jika disetel ke '1', halaman pratinjau aplikasi akan dilompati saat Dynamic Link dibuka dan pengguna akan dialihkan ke aplikasi atau toko. Halaman pratinjau aplikasi (diaktifkan secara default) dapat lebih andal dalam mengarahkan pengguna ke tujuan yang paling sesuai saat mereka membuka Dynamic Links di aplikasi. Namun, jika Anda mengharapkan Dynamic Link hanya dibuka di aplikasi yang dapat membuka Dynamic Links dengan andal tanpa halaman ini, Anda dapat menonaktifkannya dengan parameter ini. Parameter ini hanya akan memengaruhi perilaku Dynamic Link di iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | Judul yang digunakan ketika Dynamic Link dibagikan di postingan media sosial. |
setDescription | Deskripsi yang digunakan ketika Dynamic Link dibagikan di postingan media sosial. |
setImageUrl | URL ke gambar yang terkait dengan link ini. Ukuran gambar minimal harus 300x200 px, dan kurang dari 300 KB. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Parameter analisis Google Play. Parameter ini (utm_source , utm_medium , utm_campaign , utm_term , utm_content ) diteruskan ke Play Store dan juga ditambahkan ke payload link.
|
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
Parameter analisis iTunes Connect. Parameter ini (pt , at , ct ) diteruskan ke App Store. |
Mempersingkat Dynamic Link panjang
Untuk mempersingkat Dynamic Link panjang, tentukan URL Dynamic Link menggunakan
setLongLink
, bukan menetapkan parameter dengan metode
builder lainnya:
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 // ... } } });