Deep Link (tautan dalam) — adalah URL yang mengarahkan pengguna ke layar atau konten tertentu di dalam aplikasi mobile, melewati layar utama. Berbeda dengan tautan biasa ke situs web, deep link mengaktifkan aplikasi dan langsung membuka konten target. Menurut Android Developers, deep link yang dikonfigurasi dengan benar meningkatkan konversi ke tindakan target sebesar 30–50% karena mengurangi jumlah langkah menuju konten.
Poin Utama
Deep Link (tautan dalam) — adalah URI yang saat diklik tidak membuka halaman web, melainkan layar tertentu di dalam aplikasi mobile. Teknologi ini memecahkan masalah fundamental platform mobile: browser tidak dapat langsung membuka layar aplikasi, dan deep link menciptakan jembatan antara web dan kode native. Tanpa deep link, pengguna selalu masuk ke layar utama dan harus menavigasi secara manual ke konten yang diinginkan.
Arsitektur deep link terdiri dari dua bagian: skema (scheme) menentukan aplikasi mana yang harus memproses tautan, dan jalur (path) menunjuk ke sumber daya tertentu di dalam aplikasi — produk, artikel, profil pengguna, atau bagian pengaturan. Parameter kueri (?source=push&campaign=summer) mengirimkan konteks tambahan untuk analitik, personalisasi, dan atribusi kampanye.
Penting untuk membedakan deep link dan tautan biasa. Tautan biasa (https://example.com/product/42) terbuka di browser dan menuju ke versi web halaman. Deep link (myapp://product/42) dengan aplikasi terinstal membuka layar native dengan konten yang sama, dan jika aplikasi tidak ada — menampilkan error. Tepat untuk mengatasi masalah fallback yang mulus inilah Universal Link (iOS) dan App Link (Android) diciptakan.
Tugas yang berbeda memerlukan jenis deep link yang berbeda. Beberapa tautan hanya bekerja dengan aplikasi yang terinstal, yang lain bisa menunggu instalasi, dan yang lainnya mengirimkan konteks analitik. Pemilihan jenis tergantung pada skenario penggunaan: kampanye iklan, notifikasi push, berbagi konten, atau kampanye email.
Standard Deep Link — tipe dasar yang hanya aktif jika aplikasi sudah terinstal di perangkat. Pengguna mengklik tautan myapp://product/42, sistem menemukan skema yang terdaftar dan membuka aplikasi di layar yang sesuai. Jika aplikasi tidak terinstal — browser menampilkan error “Halaman tidak ditemukan” atau tidak melakukan apa pun. Tipe ini cocok untuk navigasi internal di dalam aplikasi yang sudah terinstal.
Konfigurasi deep link standar sederhana: cukup daftarkan URI-scheme di manifest (Android) atau Info.plist (iOS). Tidak memerlukan validasi server atau sertifikat SSL. Tetapi justru karena tidak adanya fallback, tipe ini dianggap usang untuk kampanye pemasaran — kehilangan traffic dari pengguna tanpa aplikasi mencapai 60%.
Deferred Deep Link memecahkan masalah utama deep link biasa: berfungsi bahkan jika aplikasi tidak terinstal. Pengguna mengklik tautan → melihat halaman (landing atau App Store/Google Play) → menginstal aplikasi → pada peluncuran pertama, aplikasi menerima konteks tautan asli dan membuka layar yang diinginkan. Teknologi ini memerlukan SDK perantara (AppsFlyer, Branch, Adjust) yang menyimpan konteks di server hingga peluncuran pertama.
Branch — salah satu platform paling populer untuk deferred deep link. Ia menyediakan tautan tunggal yang berfungsi di semua platform: mendeteksi OS pengguna, mengarahkan ke toko aplikasi, dan setelah instalasi mengirimkan konteks (kode promo, identifikasi produk, sumber kampanye). Menurut data Branch (2024), deferred deep link meningkatkan konversi kampanye iklan sebesar 40–70%.
Contextual Deep Link — adalah deep link biasa atau deferred yang dilengkapi dengan parameter konteks: sumber traffic (source), kampanye (campaign), kode promo, referrer, identifikasi mitra. Parameter dikirimkan dalam URL dan diproses oleh aplikasi untuk personalisasi: menampilkan bonus sambutan, membuka produk dengan diskon, mencatat analitik instalasi.
Label UTM (utm_source, utm_medium, utm_campaign) — cara standar mengirimkan konteks. Di mobile, deep link kontekstual sangat penting untuk atribusi: tanpanya, pemilik aplikasi tidak tahu saluran mana yang membawa pengguna — traffic organik, iklan Facebook, kampanye email, atau kode QR. Atribusi berkualitas memerlukan integrasi dengan MMP (Mobile Measurement Partner).
| Tipe Deep Link | Memerlukan instalasi | Mendukung penundaan | Konteks |
|---|---|---|---|
| Standard | Ya | Tidak | Hanya di URL |
| Deferred | Tidak | Ya | Penyimpanan server |
| Contextual | Either | Either | UTM + parameter |
iOS mendukung deep link melalui dua mekanisme: Custom URL Scheme lama dan Universal Link modern (iOS 9+). Custom URL Scheme bekerja dengan prinsip pendaftaran skema kustom di Info.plist. Aplikasi mendaftarkan myapp://, dan iOS saat mengklik tautan tersebut membuka aplikasi. Masalah: jika skema tidak terdaftar oleh aplikasi mana pun, browser menampilkan error.
Pemrosesan deep link di iOS dilakukan melalui metode AppDelegate application(_:open:options:) atau SceneDelegate scene(_:openURLContexts:). Pengembang mengekstrak URL, memparse jalur dan parameter, kemudian menavigasi ke layar yang sesuai. Jika menggunakan SwiftUI, pemrosesan dilakukan melalui OpenURLAction atau onChange(of: openURL). Penting untuk memproses status dengan benar: aplikasi mungkin belum diluncurkan, diminimalkan, atau aktif.
Keamanan di iOS ketat: Custom URL Scheme dapat dicegat oleh aplikasi mana pun yang mendaftarkan skema yang sama. Ini adalah potensi kerentanan (URL Scheme hijacking). Oleh karena itu Apple merekomendasikan Universal Link sebagai alternatif yang lebih aman: hanya pemilik domain yang terverifikasi yang dapat mengaitkan tautan dengan aplikasi. Lebih lanjut tentang Universal Link — di artikel Universal Link.
Android mengimplementasikan deep link melalui Intent Filter di AndroidManifest.xml. Aplikasi mendefinisikan Activity yang memproses skema tertentu (myapp://) atau host dan jalur tertentu. Saat pengguna mengklik deep link, Android mencari Activity dengan Intent Filter yang sesuai dan membukanya. Jika ada beberapa Activity yang cocok — sistem menampilkan dialog pemilihan aplikasi.
// AndroidManifest.xml — Intent Filter untuk Deep Link
<activity
android:name=".ui.ProductActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="myapp"
android:host="product"
android:pathPrefix="/" />
</intent-filter>
</activity>
Pemrosesan deep link di Android dilakukan dalam metode Activity.onCreate() atau onNewIntent(). Pengembang menerima Intent, mengekstrak URI, dan memanggil navigasi. Untuk Jetpack Navigation, komponen Navigation Deep Link memungkinkan deskripsi deklaratif deep link di graf navigasi. Android App Link (Android 6.0+) — evolusi deep link dengan verifikasi melalui Digital Asset Links, menghilangkan dialog pemilihan aplikasi.
Penting untuk mempertimbangkan perubahan Android 12+: mulai API 31, sistem memerlukan exported=true secara eksplisit untuk Activity yang memproses deep link dan memeriksa kebenaran Intent Filter. Google Play Store memverifikasi App Link saat publikasi. Tanpa verifikasi, Google dapat menolak pembaruan jika deep link mengarah ke halaman situs yang tidak ada.
Konfigurasi deep link mencakup beberapa tahap yang umum untuk kedua platform. Langkah pertama — menentukan skema dan struktur URL. Disarankan menggunakan skema https (alih-alih kustom) untuk kompatibilitas dengan Universal Link dan App Link. Struktur URL harus mencerminkan struktur situs web: /product/42, /profile/john, /settings/notifications. Ini menyederhanakan pemeliharaan dan indeksasi konten oleh mesin pencari.
Tahap kedua — pemrosesan deep link di kode aplikasi. Untuk Android, direkomendasikan Jetpack Navigation dengan deep link deklaratif di nav_graph. Untuk iOS — SwiftUI NavigationStack dengan pemrosesan OpenURLAction. Penting untuk memproses tiga status aplikasi: cold start (aplikasi belum diluncurkan), warm start (diminimalkan), dan active (di layar). Setiap status memerlukan logika navigasi yang berbeda.
Pengujian deep link — tugas terpisah. Android Studio menyediakan alat App Links Assistant untuk memeriksa Intent Filter. Di iOS, pengujian dilakukan melalui Xcode dengan mengirimkan URL melalui argumen skema peluncuran. Disarankan untuk mengatur pemeriksaan CI: secara otomatis melalui deep link dan memeriksa bahwa layar yang diharapkan terbuka. Untuk deferred deep link, pengujian mencakup siklus penuh “instalasi → peluncuran pertama → konteks”. Tanpa pengujian, deep link sering rusak saat memperbarui navigasi di aplikasi.
Pertanyaan yang Sering Diajukan
Tautan biasa (https://site.com/page) terbuka di browser. Deep link (myapp://page atau https://site.com/page dengan verifikasi) membuka layar di dalam aplikasi mobile. Deep link juga dapat mengirimkan konteks: kode promo, sumber traffic, ID referal.
URI-scheme — adalah prefiks URL yang menentukan aplikasi mana yang harus memproses tautan (misalnya, myapp://, vk://, tg://). Sistem menggunakan skema untuk routing: menemukan aplikasi yang mendaftarkan skema ini dan mengirimkan URL untuk diproses.
Pengguna mengklik tautan → layanan (Branch, AppsFlyer) mengingat konteks → mengarahkan ke App Store/Google Play → setelah instalasi dan peluncuran pertama, SDK mengirimkan konteks tersimpan ke aplikasi → aplikasi membuka layar yang diinginkan, seolah-olah pengguna sudah memiliki aplikasi.
Deep link biasa — tidak. Deferred deep link — ya, melalui halaman perantara yang mengarahkan ke toko aplikasi dan menyimpan konteks. Universal Link dan App Link membuka situs sebagai fallback jika aplikasi tidak terinstal.
Di Android gunakan adb: adb shell am start -W -a android.intent.action.VIEW -d “myapp://product/42”. Di iOS — xcrun simctl openurl booted “myapp://product/42”. Untuk kedua platform tersedia konsol pengujian Firebase Dynamic Links dan Branch.
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