Riset orisinal
Apa yang terjadi pada tautan aplikasi yang dibuka di dalam Instagram dan TikTok: 74,000 redirect diukur
Preload yang tidak pernah dilihat siapa pun, webview TikTok yang menolak toko, dan App Store yang terbuka di atas halaman: apa yang ditunjukkan log redirect kami.
Diterbitkan · Adrien De Coster
Jawaban singkat
Dari 74,713 kunjungan Android dari browser dalam aplikasi selama 30 hari, 9.1% adalah halaman yang dimuat Instagram atau Facebook di latar belakang lalu dibuang sekitar 30 detik kemudian tanpa pernah dilihat siapa pun. Di dalam TikTok di Android, terbuka atau tidaknya Play Store tergantung webview yang dipakai TikTok: satu format user-agent mencapai toko di 85% sesi, dua format lainnya di 12–14%, pada tautan yang sama di hari yang sama. Di iOS, Instagram dan Facebook membuka App Store di atas browser dalam aplikasi, sehingga halaman tidak pernah masuk ke latar belakang, dan tingkat pembukaan toko yang diukur dari halaman hanya 13–56% padahal pengalihan berhasil.
Angka-angka ini berasal dari log redirect sebuah layanan tautan pintar: satu URL yang mengirim ponsel ke App Store atau Google Play. Setiap kali tautan dibuka di dalam aplikasi media sosial, kami menyajikan halaman kecil yang mengalihkan pengunjung ke toko, dan halaman itu melaporkan apa yang terjadi selanjutnya. Berikut isi laporan tersebut, cara kami mengukurnya, dan di mana pengukurannya berhenti.
Datanya
| Periode | Apa | Volume |
|---|---|---|
| 30 hari hingga 2026-10-12 | Kunjungan Android dari browser dalam aplikasi, rekonstruksi per sesi | 74,713 |
| 2026-09-27 → 2026-10-26 | Pemuatan halaman di browser dalam aplikasi, semua platform | 109,253 |
| 2026-10-20 → 2026-10-26 | Sama, disusun ulang menjadi sesi untuk tabel funnel | 30,535 |
| 2026-10-16 → 2026-10-26 | Preload yang diklasifikasikan oleh halaman itu sendiri | 1,679 |
| 90 hari hingga 2026-10-15, lalu 30 hari hingga 2026-10-26 | TikTok di Android, sesi per format webview | 73 + 1,247 |
| Browser dalam aplikasi | Android | iOS |
|---|---|---|
| 50,161 | 16,675 | |
| 27,911 | 9,441 | |
| TikTok | 3,755 | 1,219 |
| Browser biasa (302 biasa, sebagai pembanding) | 24,185 | 24,627 |
Dua hal sudah menonjol sebelum analisis apa pun. Aplikasi Meta mengirim jauh lebih banyak trafik daripada TikTok. Dan di Android, lebih dari tiga perempat seluruh kunjungan datang lewat browser dalam aplikasi, bukan Chrome.
Cara halaman melaporkan apa yang terjadi
Saat tautan dibuka di browser dalam aplikasi, halaman melakukan tiga hal dan mengirim beacon untuk masing-masing:
auto: halaman memulai pengalihan ke toko saat dimuat (iOS:location.replaceke URL App Store; Android: URLintent://yang membuka aplikasi Play Store bawaan).exit: halaman menjadi tersembunyi (Page Visibility API). Itulah sinyal terbaik yang dimiliki halaman web bahwa sesuatu, kemungkinan besar toko, mengambil alih layar.stuck: halaman masih terlihat 2.2 detik setelah pengalihan, jadi halaman menampilkan kartu cadangan berisi tombol toko, petunjuk “buka di browser”, dan tombol salin tautan.
Halaman web tidak bisa melihat App Store maupun Play Store. Semua yang di bawah ini disimpulkan dari tiga sinyal tersebut, dan bagian keterbatasan menjelaskan di mana kesimpulan itu tidak berlaku lagi.
Temuan 1: sekitar 1 dari 11 kunjungan Android dari Meta adalah preload yang tidak dilihat siapa pun
Selama 30 hari hingga 12 Oktober, sekelompok sesi Android yang jelas berperilaku seperti yang tidak mungkin dilakukan manusia: halaman dimuat, timer pengalihan tidak pernah berjalan, dan halaman dihancurkan 29 hingga 31 detik kemudian. Tidak ada auto, tidak ada stuck, tidak ada ketukan. Di iOS tidak ada yang serupa.
Itulah ciri khas browser dalam aplikasi Instagram dan Facebook yang memuat lebih dulu tautan yang ada di feed, menyembunyikannya, lalu membuangnya saat pengguna terus menggulir. Halaman menjalankan JavaScript kami, jadi kunjungannya tercatat. Tapi tidak ada yang pernah melihatnya.
| Populasi | Kunjungan | Preload | Porsi |
|---|---|---|---|
| Semua kunjungan, semua platform | 139,199 | 6,790 | 4.9% |
| Android | 95,648 | 6,790 | 7.1% |
| Android dalam aplikasi | 74,713 | 6,790 | 9.1% |
| Android dalam aplikasi, tanpa tautan terbesar | — | — | 4.9% |
| Satu tautan yang paling terdampak | 35,337 | 4,864 | 13.8% |
Kami menguji kriteria ini terhadap sesi yang jelas dilakukan manusia: 0 dari 17,606 sesi di mana toko terbuka 2–3 detik setelah pengalihan cocok dengan kriteria, dan 0 dari 244 sesi di mana seseorang mengetuk tombol toko juga tidak cocok.
Porsinya berubah dari minggu ke minggu: 6.8% di minggu terakhir periode itu, lalu 8.8%, 10.6%, dan 10.0% di minggu-minggu sebelumnya. Porsinya juga terkonsentrasi di tempat kampanye Instagram berbayar berjalan: 72% preload di periode itu berasal dari satu tautan di balik kampanye Instagram besar.
Sejak 16 Oktober, halaman mengklasifikasikan hal ini sendiri saat berjalan: halaman melaporkan preload alih-alih exit jika ia mati setelah setidaknya 20 detik tanpa pernah ditampilkan. Inilah yang tertangkap sejak saat itu:
| Browser dalam aplikasi | Pemuatan halaman | Preload | Porsi |
|---|---|---|---|
| Instagram, Android | 15,100 | 1,152 | 7.6% |
| Facebook, Android | 19,830 | 477 | 2.4% |
| TikTok, Android | 3,648 | 1 | 0.03% |
| Instagram, iOS | 5,965 | 45 | 0.8% |
| Facebook, iOS | 6,134 | 4 | 0.07% |
Hitungan saat berjalan itu adalah batas bawah. Preload yang mati tanpa menjalankan skrip apa pun tidak meninggalkan beacon, dan aturan saat berjalan lebih ketat daripada rekonstruksi historis.
Mengapa ini penting. Jika kamu menghitung klik di redirect-mu, kira-kira satu dari 13 “klik” Instagram Android tidak pernah dilihat manusia. Rasio klik-ke-instal untuk kanal itu terlihat lebih buruk dari kenyataannya, dan dasbor kampanye yang dibangun dari hit redirect mentah melebih-lebihkan jangkauan kira-kira sebesar itu.
Temuan 2: TikTok menolak Play Store tergantung webview yang dipakainya
Di dalam TikTok di Android, sebagian pengunjung tidak pernah meninggalkan halaman: pengalihan berjalan dan TikTok menampilkan dialognya sendiri (“The action cannot be completed” — “Tindakan tidak dapat diselesaikan”). Ini tidak terjadi di setiap tautan, dan selama berminggu-minggu tampaknya tergantung tautannya. Ternyata bukan. Ini tergantung browser dalam aplikasi yang dipakai TikTok untuk pengunjung itu, yang terlihat dari user-agent-nya:
| Format | Bentuk user-agent |
|---|---|
| A | … Chrome/151 Mobile Safari/537.36 musical_ly_46.8.3 |
| B | Version/4.0 … musical_ly_2024509000 JsSdk/1.0 … BytedanceWebview |
| C | Version/4.0 … musical_ly_2024701040 AppName/musical_ly ByteLocale/… |
Sebuah sesi dihitung lolos jika pengalihan berjalan dan halaman menjadi tersembunyi, dan gagal jika kartu cadangan ditampilkan. Tingkatnya adalah lolos / (lolos + gagal), per perangkat dan hari:
| Format | 90 hari hingga 2026-10-15 | 30 hari, 2026-09-27 → 10-26 |
|---|---|---|
| A | 23 / 26 (88%) | 827 / 969 (85%) |
| B | 0 / 17 (0%) | 34 / 245 (14%) |
| C | 5 / 30 (17%) | 4 / 33 (12%) |
Perbandingan yang menjadi penentu menahan tautan dan hari tetap sama, karena campuran format berubah dari minggu ke minggu:
| Tautan | Format A | Format B |
|---|---|---|
| Tautan 1 | 560 / 674 (83%) | 32 / 192 (17%) |
| Tautan 2 | 257 / 285 (90%) | 2 / 47 (4%) |
Tautan sama, kode redirect sama, hari sama: satu webview membiarkan toko terbuka dan yang lain sebagian besar tidak. Domain kustom tidak membuat perbedaan dalam data 90 hari. TikTok tidak mendokumentasikan dialog itu, apa pemicunya, atau pengguna mana mendapat webview yang mana, jadi pembagian berdasarkan user-agent adalah satu-satunya petunjuk.
Mengapa ini penting. Tidak ada bentuk URL yang bisa memperbaikinya: jalan keluar intent:// dan URL https://play.google.com biasa mendapat penolakan yang sama. Yang bisa kamu lakukan adalah tidak menyembunyikan jalan keluarnya: di dalam TikTok, tampilkan instruksi “buka di browser” dan tombol salin langsung, bukan setelah batas waktu.
Temuan 3: di iOS, App Store terbuka di atas browser dalam aplikasi
Di Android, setelah pengalihan, halaman menjadi tersembunyi di sebagian besar sesi, biasanya 1 hingga 3 detik kemudian. Di iOS di dalam Instagram dan Facebook sering kali tidak, padahal pengalihan berjalan di hampir setiap sesi:
| Browser dalam aplikasi | Pemuatan halaman | Pengalihan berjalan | Menjadi tersembunyi | …dalam 4 detik | Terlihat pada 2.2 detik |
|---|---|---|---|---|---|
| Instagram, Android | 7,190 | 77.5% | 90.0% | 75.9% | 47.6% |
| Facebook, Android | 13,600 | 72.4% | 73.8% | 39.6% | 77.8% |
| TikTok, Android | 2,920 | 47.1% | 85.2% | 79.5% | 7.6% |
| Instagram, iOS | 2,881 | 94.6% | 55.9% | 41.7% | 64.2% |
| Facebook, iOS | 3,078 | 87.0% | 13.1% | 7.9% | 65.6% |
| TikTok, iOS | 866 | 93.8% | 50.5% | 23.8% | 75.2% |
Jika dua pertiga pengunjung iOS benar-benar tertahan di depan kartu cadangan yang terlihat dengan tombol “Buka App Store”, cukup banyak yang akan mengetuknya. Ternyata tidak: hanya 0.9% pemuatan halaman Instagram iOS dan 0.4% pemuatan Facebook iOS yang mengetuk tombol itu. Juga tidak ada versi iOS di mana ini “berhasil”:
| Versi utama iOS | Sesi dengan pengalihan | Halaman menjadi tersembunyi |
|---|---|---|
| 16 | 127 | 24.4% |
| 17 | 106 | 33.0% |
| 18 | 958 | 33.3% |
| 26 | 3,711 | 39.3% |
| 27 | 1,249 | 34.3% |
Penjelasan yang cocok adalah bahwa di dalam Instagram dan Facebook di iOS, App Store muncul di atas browser dalam aplikasi tanpa mengirimnya ke latar belakang. Halaman tetap “terlihat” sepanjang waktu, sehingga visibilitychange dan pagehide tidak pernah terpicu, meskipun pengunjung sedang melihat App Store.
Mengapa ini penting. Metrik apa pun yang menyimpulkan toko terbuka dari halaman yang meninggalkan layar akan keliru di iOS. Dulu kami menampilkan kepada pelanggan persentase “jangkauan toko” yang dihitung persis seperti itu, dan angka itu memberi tahu 10 dari 12 pelanggan berbayar bahwa tautan mereka yang berfungsi justru rusak. Kami menghapusnya. Di iOS, sinyal instalasi yang bisa dipercaya ada di sisi toko: laporan kampanye App Store Connect, dengan provider token (pt) dan campaign token (ct) di URL App Store.
Hal-hal kecil yang kami ukur sepanjang jalan
- Play Store lambat tampil di Android. Pada sesi Instagram Android di mana pengalihan berjalan, halaman menjadi tersembunyi 0–1 detik setelah kunjungan di 1,061 sesi, 2–3 detik setelahnya di 2,596, dan 4–8 detik setelahnya di 1,273 (7 hari). Timer 2 detik “berhasil atau tidak?” terpicu sebelum toko muncul pada sebagian besar keberhasilan yang sebenarnya. Funnel kami sendiri menghitungnya sebagai kegagalan sampai kami mengizinkan exit hingga 8 detik setelah pengalihan tetap dihitung.
- Tingkat kegagalan sebenarnya kecil. Pada 7,357 sesi Instagram Android yang disusun ulang selama 3 hari di awal Oktober, pola “pengalihan, lalu tidak terjadi apa-apa” adalah 1.9% sesi, dan 24.3% pengunjung tersebut mengetuk tautan lagi dalam 3 menit. Pengunjung yang sesinya menampilkan kartu cadangan mengetuk ulang di 5.4%, kurang lebih sama dengan pengunjung yang tokonya terbuka (4.6%): sebagian besar “kegagalan” itu bukan kegagalan.
- Mewajibkan ketukan menghabiskan sebagian besar trafik. Sebelum halaman memulai pengalihan saat dimuat, halaman menampilkan kartu dengan tombol toko. Selama 30 hari, 10,523 kunjungan dalam aplikasi menghasilkan 2,119 ketukan: sekitar 80% pengunjung tidak pernah sampai ke toko.
Metode
- Sumber. Setiap kunjungan ke tautan pintar dan setiap beacon dari halaman pengalihan ditulis ke Cloudflare Workers Analytics Engine bersama platform, browser dalam aplikasi (dari user-agent), jenis event, dan stempel waktu hingga detik. Pengunjung yang user-agent-nya menyatakan diri sebagai bot, crawler, atau pengambil pratinjau tautan dipisahkan dan dikecualikan dari setiap angka di sini.
- Sesi. Analytics Engine tidak memiliki id pemuatan halaman, jadi sesi disusun ulang dengan menggabungkan sebuah kunjungan dengan beacon yang memiliki tautan, negara, kota, user-agent, dan browser dalam aplikasi yang sama dalam satu jam berikutnya, hingga kunjungan berikutnya dengan kunci yang sama. Sekitar 98% beacon terhubung ke sebuah kunjungan.
- Preload (Temuan 1). Kriteria historis: tidak ada pengalihan, tidak ada kartu cadangan, tidak ada ketukan, dan exit 20 detik hingga 15 menit setelah kunjungan. Kriteria saat berjalan sejak 2026-10-16: halaman melaporkan preload jika ia mati setelah setidaknya 20 detik tanpa pernah ditampilkan dan timer pengalihannya tidak pernah berjalan (atau ia dimuat dalam keadaan tersembunyi). Beacon membawa token bertanda tangan sekali pakai, sehingga tidak bisa diputar ulang untuk menghapus kunjungan sungguhan.
- TikTok (Temuan 2). Sesi dikunci berdasarkan tautan, model perangkat, versi aplikasi TikTok, dan hari. Aturan format: versi
musical_ly_bertitik → A; jika tidak,JsSdk→ B; jika tidak, C. Pengunjung dari jaringan hosting dihitung terpisah dan tidak dimasukkan ke tabel. Pengukuran ulang 30 hari memakai skrip yang sama dengan analisis 90 hari aslinya. - Total memakai interval sampel Analytics Engine (2–4% baris mewakili lebih dari satu event). Tabel sesi menghitung baris.
Keterbatasan
- Kami tidak pernah melihat tokonya. “Menjadi tersembunyi” adalah proksi untuk “toko terbuka”. Ini juga terpicu saat pengunjung berpindah aplikasi atau mengunci ponsel.
- Stempel waktu hanya hingga detik, dan sesi adalah hasil rekonstruksi. Dua pemuatan cepat dari perangkat yang sama bisa tergabung.
- Konsentrasi. Beberapa tautan besar mendominasi sebagian periode: satu kampanye Instagram menyumbang 72% preload selama 30 hari, dan dua tautan membawa sebagian besar sesi TikTok. Tabel dengan tautan yang sama ada karena alasan itu.
- Tidak ada yang diperiksa di ponsel fisik. Perilakunya disimpulkan dari apa yang dilaporkan halaman. Penjelasan iOS di Temuan 3 adalah yang cocok dengan data, bukan sesuatu yang kami saksikan langsung.
- Trafiknya milik kami. Ini adalah pengunjung aplikasi yang memakai tautan kami, sangat condong ke kampanye Instagram dan Facebook di segelintir negara. Campuran lain akan memberi persentase lain, meskipun mekanismenya seharusnya sama.
- Preload yang tidak pernah menjalankan JavaScript tidak terlihat. 12% pemuatan halaman Instagram Android tidak mengirim beacon sama sekali, dan sebagian di antaranya mungkin juga preload.
Apa yang harus dilakukan
- Mulai pengalihan saat halaman dimuat. Halaman yang menunggu ketukan kehilangan sebagian besar pengunjung dalam aplikasi. Simpan tombol manual sebagai cadangan, yang hanya ditampilkan jika pengalihan terlihat gagal.
- Di Android, pakai `intent://` dengan `S.browser_fallback_url`. URL
https://play.google.comdi dalam webview membuka situs web Play Store, yang tidak bisa menginstal apa pun tanpa login. - Beri waktu pada toko yang lambat. Tunggu setidaknya 3 detik sebelum memutuskan pengalihan gagal, dan tetap hitung exit yang terlambat.
- Di dalam TikTok, langsung tampilkan jalan keluarnya: “··· → Buka di browser” dan tombol salin tautan. Tidak ada perubahan URL yang bisa menghilangkan penolakan TikTok.
- Jangan hitung preload Meta sebagai klik. Jika kamu melaporkan klik dari redirect, perkirakan 2–9% kunjungan Instagram dan Facebook Android adalah halaman yang tidak dilihat siapa pun.
- Ukur instalasi di toko, dengan tautan kampanye App Store Connect (
pt+ct) di iOS dan Play Install Referrer di Android, bukan dengan event halaman.
Kami membangun onestore.link, yang secara default melakukan keenam hal ini untuk setiap tautan, dan data di atas berasal dari log redirect-nya.
Tanya jawab
Berapa persen klik tautan Instagram di Android yang merupakan preload?
Selama 30 hari hingga 2026-10-12, 9.1% kunjungan Android dari browser dalam aplikasi (Instagram dan Facebook) adalah halaman yang dimuat aplikasi di latar belakang dan dibuang sekitar 30 detik kemudian, tanpa terlihat. Sejak 2026-10-16, pemeriksaan saat berjalan milik halaman itu sendiri menangkap 7.6% di Instagram Android dan 2.4% di Facebook Android, sebagai batas bawah. Di iOS angkanya di bawah 1%.
Mengapa Play Store tidak terbuka dari browser dalam aplikasi TikTok?
Aplikasi TikTok di Android memakai beberapa browser dalam aplikasi. Pada satu di antaranya (versi musical_ly_ bertitik dan tanpa Version/4.0 di user-agent), 85% sesi mencapai Play Store selama 30 hari. Pada dua lainnya (Version/4.0 dengan JsSdk/BytedanceWebview, atau dengan AppName/musical_ly), hanya 12–14%, pada tautan yang sama dan hari yang sama. TikTok sendiri yang menolak pengalihan, apa pun bentuk URL-nya.
Bisakah halaman web mengetahui bahwa App Store terbuka di iOS?
Tidak di dalam Instagram atau Facebook. App Store terbuka di atas browser dalam aplikasi, sehingga halaman tidak pernah menjadi tersembunyi dan visibilitychange tidak terpicu. Selama 7 hari, hanya 13% (Facebook) hingga 56% (Instagram) pengalihan iOS yang diikuti halaman menjadi tersembunyi, dan kurang dari 1% pengunjung mengetuk tombol cadangan. Laporan kampanye App Store Connect adalah sinyal yang andal.
Berapa lama Play Store terbuka dari browser dalam aplikasi?
Di Android, halaman menjadi tersembunyi 2–3 detik setelah pengalihan di sebagian besar sesi yang berhasil, dan hingga 8 detik kemudian di ponsel yang lebih lambat. Cadangan yang ditampilkan setelah 2 detik muncul sebelum toko di banyak sesi yang sebenarnya hampir berhasil.
Seberapa sering redirect ke toko aplikasi benar-benar gagal di dalam Instagram?
Pada 7,357 sesi Instagram Android yang disusun ulang, pola kegagalan sungguhan (pengalihan berjalan, lalu tidak terjadi apa-apa, dan pengunjung mengetuk tautan lagi) adalah 1.9%. Sebagian besar kegagalan yang tampak di data funnel mentah adalah artefak pengukuran: beacon yang hilang, toko yang lambat, atau preload.
Apakah domain kustom mengubah cara TikTok memperlakukan tautan?
Tidak. Selama 90 hari, tautan dengan dan tanpa domain kustom ditolak dengan cara yang sama. Yang menentukan adalah browser dalam aplikasi yang dipakai TikTok untuk pengunjung itu.