Firebase Dynamic Links adalah layanan Google untuk membuat tautan pintar yang mengarahkan pengguna ke tempat yang tepat di aplikasi, terlepas dari apakah aplikasi terinstal atau tidak. Menurut Firebase Documentation, Dynamic Links secara otomatis mengarahkan pengguna ke App Store atau Google Play jika aplikasi tidak ada dan memulihkan konteks transisi setelah instalasi. Tautan pintar Firebase memecahkan masalah URL Scheme yang tidak berfungsi dengan aplikasi yang tidak terinstal.
Poin utama
Firebase Dynamic Links adalah layanan cloud dari Google yang membuat tautan universal terpadu untuk aplikasi mobile di iOS dan Android. Tautan dinamis berisi tautan dalam ke konten di dalam aplikasi, tetapi berperilaku seperti tautan HTTPS biasa: jika aplikasi terinstal, ia membukanya secara langsung, jika tidak — mengarahkan ke toko aplikasi.
Tidak seperti URL Scheme biasa, Dynamic Links dapat bekerja dengan aplikasi yang tidak terinstal berkat teknologi deferred deep link. Ketika pengguna menginstal aplikasi setelah mengeklik tautan, Firebase menyimpan parameter transisi dan mengirimkannya saat pertama kali dijalankan. Ini membuka kemungkinan untuk program referal, kampanye pemasaran, dan undangan.
URL Scheme membutuhkan aplikasi yang terinstal dan tidak memiliki mekanisme fallback standar. Firebase Dynamic Links memecahkan masalah ini melalui layanan web perantara Firebase yang menentukan status instalasi aplikasi di perangkat dan merutekan pengguna dengan benar. Satu tautan bekerja sama di kedua platform.
Firebase Dynamic Link menggunakan domain berbentuk yourcode.page.link, yang didaftarkan di Firebase Console. Ketika pengguna menavigasi melalui tautan semacam itu, Firebase menentukan jenis perangkat dan status instalasi aplikasi. Untuk iOS digunakan mekanisme Universal Links, untuk Android — App Links dengan verifikasi otomatis melalui Digital Asset Links.
Proses pemrosesan mencakup beberapa tahap berurutan: saat mengeklik tautan, browser mengirimkan permintaan GET ke server Firebase, server menentukan platform dan memeriksa keberadaan aplikasi di perangkat. Jika aplikasi terinstal — dihasilkan pengalihan ke Universal Link atau Intent dengan parameter untuk membuka layar target. Jika aplikasi tidak terinstal — pengalihan ke App Store atau Google Play untuk pengunduhan.
Aplikasi menerima tautan pada tahap inisialisasi Firebase SDK. Metode getDynamicLink() mengembalikan PendingResult dengan data tentang transisi. Setelah berhasil diterima, dari tautan diekstrak parameter deep link, tag UTM untuk analitik, dan data arbitrer yang dikirimkan saat pembuatan tautan.
Firebase Console menyediakan antarmuka visual untuk membuat Dynamic Links. Pengembang menentukan tautan dalam (deep link URL), nama kampanye, pengaturan untuk iOS dan Android secara terpisah, serta parameter analitik. Setelah dibuat, Firebase menghasilkan tautan pendek berbentuk https://yourcode.page.link/abc123 yang dapat digunakan dalam materi iklan, kampanye email, dan media sosial.
Untuk pembuatan Dynamic Links secara terprogram, digunakan Firebase REST API atau SDK klien. REST API memungkinkan pembuatan tautan massal untuk kampanye pemasaran dengan parameter kustom, termasuk tautan untuk media sosial dan analitik transisi asinkron. Saat membuat tautan melalui API, penting untuk menentukan parameter socialMetaTagInfo dengan benar — parameter ini menentukan bagaimana tautan ditampilkan saat dibagikan di aplikasi perpesanan dan jejaring sosial dengan kartu pratinjau.
| Parameter | Tujuan | Wajib |
|---|---|---|
| Deep Link URL | Tautan internal ke konten aplikasi | Ya |
| iOS Bundle ID | Identifikasi aplikasi di App Store | Untuk iOS |
| Android Package Name | Nama paket di Google Play | Untuk Android |
| Fallback URL | Halaman web saat aplikasi tidak ada | Tidak |
| Tag UTM | Parameter untuk Google Analytics | Tidak |
Untuk bekerja dengan Firebase Dynamic Links di iOS, diperlukan menghubungkan Firebase SDK melalui CocoaPods atau Swift Package Manager, mengonfigurasi Info.plist dengan GOOGLE_APP_ID dan mendaftarkan domain Dynamic Links di Associated Domains proyek. Setelah itu, aplikasi secara otomatis memproses Universal Links yang dihasilkan oleh Firebase.
Di Xcode, perlu menambahkan capability Associated Domains dengan entri berbentuk applinks:yourcode.page.link. Firebase SDK menggunakan metode application(_:continue:restorationHandler:) untuk memproses Universal Links, sehingga integrasi tambahan dengan AppDelegate tidak diperlukan — Firebase secara otomatis mengekstrak parameter Dynamic Link dari User Activity.
Contoh konfigurasi Info.plist untuk inisialisasi Firebase yang benar dan pendaftaran handler Dynamic Links. Kunci FIROptions harus berisi identifikasi proyek GoogleService-Info.plist.
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
Jika proxy AppDelegate dinonaktifkan, metode handleUniversalLink(_:) harus dipanggil secara manual dan User Activity dari continue NSUserActivity harus diteruskan. Firebase SDK secara otomatis mengekstrak parameter tautan dan mengembalikan DynamicLink melalui completion handler.
Di Android, integrasi Firebase Dynamic Links dimulai dengan menambahkan dependensi di build.gradle dan file google-services.json dari Firebase Console. Domain Dynamic Links didaftarkan di Firebase Console, setelah itu semua tautan dengan domain ini secara otomatis dikenali oleh aplikasi Android melalui Intent Filter dengan aksi VIEW. Untuk pengoperasian yang benar, perlu juga menambahkan plugin Google Services di build.gradle root dan modul serta melakukan sinkronisasi Gradle.
Untuk pemrosesan tautan yang benar di Android, perlu menambahkan Intent Filter untuk domain Dynamic Links di Activity yang harus menerima tautan masuk. Filter harus berisi skema https, host domain Dynamic Links Anda, dan jalur default.
Contoh Intent Filter di AndroidManifest.xml untuk menerima Dynamic Links di 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>
Sangat penting untuk mengatur launchMode menjadi singleTask untuk Activity yang menerima Dynamic Links. Ini mencegah pembuatan instance Activity baru saat navigasi berulang melalui tautan dan memungkinkan pemrosesan yang benar semua deep link masuk dalam satu instance.
Firebase SDK untuk Android menyediakan metode FirebaseDynamicLinks.getInstance().getDynamicLink(intent), yang mengembalikan objek PendingTask dengan data tentang tautan. Dari objek DynamicLink diekstrak URI dalam, parameter UTM, dan stempel waktu transisi. Pemrosesan disarankan dilakukan di metode onCreate() dan onNewIntent() Activity.
Saat pemrosesan, penting untuk mempertimbangkan bahwa Dynamic Link dapat diterima baik saat memulai aplikasi dari keadaan dingin (cold start) maupun saat beralih dari aplikasi lain ke aplikasi yang sudah berjalan. Untuk kasus kedua, perlu menimpa onNewIntent() dan memanggil ulang pemeriksaan Dynamic Link.
Contoh penerimaan dan pemrosesan Firebase Dynamic Link di MainActivity. Kode menangani baik cold start maupun transisi dari aplikasi lain.
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)
}
}
}
Metode addOnSuccessListener mengembalikan DynamicLink, dari mana tautan target diekstrak melalui link?.link. Jika listener mengembalikan null, berarti Intent tidak berisi Dynamic Link — ini adalah startup aplikasi normal tanpa tautan masuk. Juga tersedia tag UTM untuk analitik transisi, termasuk campaign, medium, source dan content, yang dapat diteruskan ke Google Analytics untuk evaluasi mendetail efektivitas setiap saluran pemasaran.
Pertanyaan yang Sering Diajukan
Firebase Dynamic Links mendukung deferred deep link — tautan mempertahankan konteks bahkan jika aplikasi tidak terinstal. Setelah instalasi, aplikasi menerima semua parameter transisi, yang tidak mungkin dilakukan dengan URL Scheme biasa atau Universal Links.
Firebase Dynamic Links termasuk dalam paket tarif gratis Firebase Spark. Tidak ada batasan jumlah tautan yang dapat dibuat. Namun, sejak 2024 Google telah mengumumkan transisi ke infrastruktur baru, sehingga ketentuan dapat berubah.
Dynamic Links dirancang untuk aplikasi mobile. Saat mengakses dari browser desktop, tautan akan membuka URL fallback. Untuk aplikasi web, gunakan tautan biasa atau logika pengalihan Anda sendiri.
Firebase Console menyediakan tombol Test Dynamic Link untuk pratinjau perilaku. Anda juga dapat menggunakan emulator Android atau simulator iOS dengan Firebase SDK terinstal untuk pengujian lokal semua skenario transisi.
Tautan pendek Firebase Dynamic Link terdiri dari domain page.link dan akhiran acak sepanjang sekitar 7 karakter. Panjang total sekitar 30 karakter. Deep link di dalamnya bisa memiliki panjang berapa pun, tetapi disarankan untuk membatasinya hingga 2 KB untuk kompatibilitas.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga