App Link: apa itu, prinsip kerja dan pengaturan

Penulis: IT Sectr Diterbitkan: 2026-05-14 Waktu membaca: 9 mnt

App Link adalah mekanisme Android (Android 6.0+) yang secara otomatis membuka tautan web di aplikasi yang terinstal, melewati dialog pemilihan. Istilah ini diperkenalkan oleh Google pada tahun 2015 bersama dengan Android 6.0 Marshmallow. Menurut Android Developers, App Link menggunakan Digital Asset Links — verifikasi kriptografi melalui file di server, yang mengkonfirmasi bahwa domain milik pengembang aplikasi.

Poin Utama

  • App Link — tautan HTTPS yang secara otomatis membuka aplikasi tanpa dialog pemilihan
  • Digital Asset Links — file JSON assetlinks.json di server yang memverifikasi hubungan domain dengan aplikasi
  • Sidik jari SHA256 sertifikat — elemen kunci verifikasi yang menghubungkan pengembang dengan domain
  • Intent Filter — komponen Android yang mendeklarasikan tautan mana yang diproses oleh aplikasi
  • Keamanan — App Link menghilangkan dialog “Buka di aplikasi atau browser”, meningkatkan konversi

App Link (Android App Link) — adalah tautan HTTPS standar yang saat diklik pada perangkat Android secara otomatis membuka aplikasi yang terinstal tanpa menampilkan dialog pemilihan standar antara browser dan aplikasi. Google memperkenalkan App Link di Android 6.0 (API 23) sebagai solusi untuk masalah “dialog pemilihan” yang menurunkan konversi deep link karena klik tambahan dan kebingungan pengguna.

Inovasi kunci: verifikasi. Android memeriksa apakah domain benar-benar milik pengembang aplikasi melalui Digital Asset Links API. Google Play Store memeriksa App Link saat publikasi dan dapat menolak pembaruan jika verifikasi gagal. Ini membuat App Link lebih aman daripada Custom URL Scheme: tidak ada aplikasi lain yang dapat mencegat tautan ke domain Anda.

Digital Asset Links — adalah protokol terbuka yang digunakan Google tidak hanya untuk App Link, tetapi juga untuk menghubungkan situs web dengan aplikasi di hasil pencarian, Google Assistant, dan Smart Lock for Passwords. Protokol ini didasarkan pada verifikasi kriptografi: dalam assetlinks.json ditentukan sidik jari SHA256 dari sertifikat penandatanganan aplikasi, yang mengecualikan pemalsuan.

Proses kerja App Link terdiri dari tiga tahap: verifikasi Digital Asset Links, pemrosesan melalui Intent Filter dan pengalihan otomatis. Setiap tahap bersifat wajib. Jika verifikasi gagal, Android menampilkan dialog pemilihan — deep link semacam itu berfungsi seperti biasa, tetapi tanpa keuntungan pengalihan otomatis.

Digital Asset Links (assetlinks.json)

Asset Links — file JSON yang ditempatkan di server di alamat https://domain/.well-known/assetlinks.json. File berisi array objek dengan bidang: relation (array string yang menjelaskan jenis hubungan), target (objek dengan namespace dan package_name aplikasi, serta sha256_cert_fingerprints — array sidik jari SHA256 dari sertifikat penandatanganan).

json
// assetlinks.json — konfigurasi minimal App Link
[{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
        "namespace": "android_app",
        "package_name": "com.example.app",
        "sha256_cert_fingerprints": [
            "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:AD:A4:C5:AD:6B:01:14:79:6B:CB:12:6B:21:39:6F:EA"
        ]
    }
}]

Sidik jari SHA256 diperoleh dari sertifikat yang digunakan untuk menandatangani aplikasi. Untuk build debug, gunakan sertifikat debug Android standar, untuk release — sertifikat dari Google Play Console atau sertifikat Anda sendiri. Penting: saat mengubah sertifikat penandatanganan (misalnya, saat beralih ke App Signing by Google Play), assetlinks.json harus diperbarui di server, jika tidak App Link akan berhenti berfungsi.

Intent Filter dan Verifikasi

Android memeriksa App Link pada klik pertama pada tautan. Sistem memuat assetlinks.json dari server, membandingkan package_name dan sidik jari SHA256 dengan sertifikat aplikasi yang terinstal. Jika data cocok, Android menandai Intent Filter sebagai terverifikasi, dan semua tautan berikutnya ke domain ini terbuka secara otomatis, tanpa dialog.

xml
// AndroidManifest.xml — Intent Filter untuk App Link
<activity
    android:name=".ui.ProductActivity"
    android:exported="true">
    <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="example.com"
            android:pathPrefix="/product" />
    </intent-filter>
</activity>

autoVerify="true" — atribut wajib yang menginstruksikan Android untuk memeriksa assetlinks.json. Tanpa atribut ini, Intent Filter tidak akan diverifikasi dan App Link tidak akan diaktifkan. Android mendukung beberapa Intent Filter dalam satu Activity — untuk host yang berbeda. Sistem memeriksa setiap host secara terpisah. Verifikasi dilakukan secara asinkron dan dapat memakan waktu hingga 20 detik pada transisi pertama.

Pengalihan Otomatis (Automatic Redirect)

Setelah verifikasi berhasil, Android secara otomatis membuka aplikasi saat mengklik tautan apa pun yang cocok dengan Intent Filter yang terverifikasi. Pengguna tidak melihat dialog pemilihan — aplikasi terbuka secara instan. Jika aplikasi tidak terinstal, tautan terbuka di browser (seperti halaman web biasa). Ini adalah pengalaman pengguna yang ideal: transisi mulus tanpa tindakan yang tidak perlu.

Penting: pengalihan otomatis hanya berfungsi untuk skema HTTPS. App Link tidak mendukung HTTP (protokol tidak aman). Jika pengguna secara manual membuka tautan HTTP (misalnya dari SMS), Android tidak melakukan verifikasi dan menampilkan dialog pemilihan. Disarankan untuk menggunakan HTTPS untuk semua tautan yang mengarah ke aplikasi dan mengonfigurasi pengalihan HTTP → HTTPS di server.

App Link adalah evolusi Deep Link di Android, bukan pengganti. Perbedaan antara keduanya bersifat fundamental. Deep Link biasa (Custom URL Scheme) bekerja melalui Intent Filter dengan skema kustom (myapp://) dan tanpa autoVerify. Android tidak memeriksa apakah aplikasi benar-benar terkait dengan skema ini — aplikasi apa pun dapat mendaftarkan myapp:// dan mencegat tautan.

App Link memecahkan tiga masalah Deep Link. Pertama: keamanan — verifikasi melalui Digital Asset Links mengecualikan penyadapan tautan. Kedua: pengalaman pengguna — tidak adanya dialog pemilihan meningkatkan konversi ke tindakan target sebesar 20–40%. Ketiga: pengindeksan — Google mengindeks tautan HTTPS App Link dan dapat menampilkannya di hasil pencarian sebagai tautan ke konten di dalam aplikasi.

Kompatibilitas: App Link berfungsi di Android 6.0+ (99% perangkat). Untuk Android 5.x (Lollipop) digunakan Deep Link biasa dengan dialog pemilihan. Oleh karena itu disarankan untuk mendukung kedua mekanisme: App Link untuk perangkat modern dan Custom URL Scheme sebagai fallback untuk versi lama. Intent Filter dengan autoVerify="true" tidak merusak kompatibilitas mundur — di Android < 6 atribut diabaikan.

KarakteristikDeep LinkApp Link
SkemaKustom (myapp://)HTTPS (https://domain)
VerifikasiTidakassetlinks.json
Dialog pemilihanDitampilkanPengalihan otomatis
Versi AndroidAPI 1+API 23+ (6.0+)
Pengindeksan GoogleTidakYa (URL HTTPS)

Pengaturan App Link memerlukan tiga langkah: konfigurasi Intent Filter di manifes, penempatan assetlinks.json di server, dan pemeriksaan verifikasi. Langkah pertama — tambahkan Intent Filter dengan android:autoVerify="true" di AndroidManifest.xml. Penting untuk menentukan skema HTTPS, host, dan jalur yang harus diproses oleh aplikasi. Jalur dapat berisi wildcard (*) untuk subfolder.

Langkah kedua — pembuatan assetlinks.json. File dapat dibuat melalui Android Studio (Tools → App Links Assistant). Asisten juga membantu dalam debugging dan pengujian. File ditempatkan di server pada jalur /.well-known/assetlinks.json. Server harus mengembalikan Content-Type: application/json dan dapat diakses melalui HTTPS tanpa pengalihan. Google Play Console juga menunjukkan status verifikasi App Link di bagian Publishing.

  1. Tambahkan Intent Filter dengan android:autoVerify="true" di AndroidManifest.xml
  2. Dapatkan sidik jari SHA256 sertifikat (keytool atau App Links Assistant)
  3. Buat assetlinks.json dengan package_name dan sha256_cert_fingerprints
  4. Tempatkan file di jalur /.well-known/assetlinks.json di server HTTPS
  5. Periksa verifikasi melalui adb: adb shell dumpsync domain_verification

Pengujian — langkah ketiga. Gunakan adb untuk pemeriksaan: perintah adb shell am start -W -a android.intent.action.VIEW -d "https://example.com/product/42" membuka aplikasi. Jika browser terbuka sebagai ganti aplikasi — periksa assetlinks.json dan autoVerify. Android Studio App Links Assistant berisi penguji bawaan: ini menunjukkan status verifikasi untuk setiap domain dan jalur. Untuk pengujian otomatis, gunakan Android Testing Library dengan Intent Matcher.

Karakteristik Operasi

Android 12 (API 31) membawa perubahan pada pemrosesan App Link. Verifikasi khusus domain baru telah ditambahkan: sistem memeriksa setiap tautan secara terpisah, bukan seluruh Intent Filter. Ini meningkatkan keamanan, tetapi memerlukan pembaruan file assetlinks.json saat menambahkan jalur baru. Android 12 juga memperkenalkan Android App Links Assistant bersama dengan ADB — perintah untuk mengelola verifikasi melalui shell.

Beberapa domain — skenario khas untuk produksi. Aplikasi dapat memproses tautan dari example.com, m.example.com, dan example.org. Untuk setiap domain diperlukan assetlinks.json terpisah di server yang sesuai. Dalam manifes ditambahkan beberapa Intent Filter — satu per domain. Semua domain harus dapat diakses melalui HTTPS dan lulus verifikasi secara independen.

App Link dan Jetpack Navigation — cara yang disarankan untuk memproses App Link di aplikasi Android modern. Jetpack Navigation mendukung deep link deklaratif di nav_graph.xml atau melalui NavDeepLinkRequest. Ini menyederhanakan navigasi: pengembang menjelaskan layar mana yang terbuka di URL tertentu, dan komponen Navigation sendiri memproses Intent dan mengembalikan tumpukan navigasi. Google merekomendasikan penggunaan Jetpack Navigation untuk App Link.

kotlin
// Pemrosesan App Link melalui Jetpack Navigation
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        handleDeepLink(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleDeepLink(intent)
    }

    private fun handleDeepLink(intent: Intent) {
        intent.data?.let { uri ->
            navController.handleDeepLink(NavDeepLinkRequest
                .Builder
                .fromUri(uri)
                .build()
            )
        }
    }
}

Google Play Store memeriksa App Link saat publikasi. Jika dalam manifes ditentukan Intent Filter dengan autoVerify, tetapi assetlinks.json tidak dapat diakses atau salah, Google Play dapat menolak pembaruan dengan peringatan. Di konsol pengembang (Policy and Programs → App Links) status verifikasi setiap domain ditampilkan. Sebelum publikasi, periksa statusnya — perbaikan setelah penolakan pembaruan akan menunda rilis.

Pertanyaan yang Sering Diajukan

Apa perbedaan App Link dengan Deep Link di Android?

App Link — adalah Deep Link dengan verifikasi melalui Digital Asset Links. Perbedaan utama: App Link menggunakan skema HTTPS alih-alih skema kustom, tidak menampilkan dialog pemilihan dan diindeks oleh Google. Deep Link biasa berfungsi di semua versi Android, tetapi memerlukan pemilihan aplikasi secara manual.

Di mana menempatkan assetlinks.json?

File ditempatkan di root server HTTPS di jalur /.well-known/assetlinks.json. Server harus mengembalikan Content-Type: application/json. File harus diperbarui saat mengubah sertifikat penandatanganan atau menambahkan domain baru.

Mengapa App Link tidak membuka aplikasi secara otomatis?

Penyebab utama: tidak ada android:autoVerify="true" di Intent Filter, assetlinks.json tidak dapat diakses melalui HTTPS, sidik jari SHA256 salah, sertifikat penandatanganan berbeda (debug vs release). Periksa status verifikasi melalui adb shell dumpsync domain_verification.

Bisakah App Link digunakan tanpa domain sendiri?

Tidak — App Link memerlukan server HTTPS dengan assetlinks.json yang dapat diakses. Jika Anda tidak memiliki domain, gunakan Firebase Hosting atau GitHub Pages untuk hosting file. Alternatif: Custom URL Scheme (tanpa verifikasi) atau Firebase Dynamic Links.

Apakah App Link berfungsi di Android 5?

Tidak — App Link didukung di Android 6.0 (API 23) dan yang lebih baru. Di Android 5, Intent Filter dengan android:autoVerify="true" mengabaikan atribut dan berfungsi sebagai Deep Link biasa dengan dialog pemilihan. Disarankan untuk mendukung kedua mekanisme untuk kompatibilitas mundur.

Kesimpulan

  • App Link — evolusi Deep Link untuk Android: tautan HTTPS dengan transisi otomatis ke aplikasi
  • Digital Asset Links — verifikasi kriptografi melalui assetlinks.json di server
  • Sidik jari SHA256 sertifikat penandatanganan — elemen kunci yang menghubungkan pengembang dengan domain
  • android:autoVerify="true" — atribut wajib Intent Filter untuk mengaktifkan App Link
  • Keamanan — App Link mengecualikan penyadapan tautan oleh aplikasi pihak ketiga
  • Google Play Store memeriksa verifikasi App Link saat publikasi dan menolak jika ada kesalahan
  • Jetpack Navigation — cara yang disarankan untuk memproses App Link dengan deep link deklaratif

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.

Diskusikan proyek

Baca juga