Interaksi terbaca lemah → ditolak
Aktivitas tercatat → lebih andal
Jawaban singkat
Jika aplikasi TWA Anda terus gagal dalam pengujian tertutup (closed testing) dengan pesan "testers were not engaged", perbaikan yang paling andal berdasarkan pengalaman kami adalah membangunnya ulang sebagai aplikasi WebView standar, menggunakan WebView Android Studio, Capacitor, atau Cordova, lalu memublikasikan build tersebut ke produksi, bukan TWA. Pertahankan package name yang sama dan upload sebagai update agar hitungan 14 hari tidak direset. WebView memperbaiki masalah sinyal interaksi, tetapi aplikasi tetap harus melewati peninjauan thin wrapper. Buat aplikasi yang sungguh berguna. Jika hambatan sebenarnya adalah menemukan 12 penguji aktif selama 14 hari terus-menerus, PrimeTestLab dapat menanganinya mulai $19.99 ditambah biaya layanan 5%. Pengujian biasanya dimulai dalam 4-6 jam.
Ini salah satu penolakan yang paling membuat developer independen frustrasi. Penguji Anda benar-benar aktif. Anda memiliki 12 orang. Masa 14 hari telah selesai. Namun, Google tetap menjawab "your testers were not engaged enough." Jika aplikasi dibangun sebagai Trusted Web Activity (TWA) atau wrapper PWA, pola tersebut memang kami temukan. Dari 7.400+ aplikasi yang kami tangani, build wrapper menerima penolakan khusus ini jauh lebih sering daripada build native standar atau WebView. Panduan ini menjelaskan alasannya, menunjukkan perbedaan arsitektur yang penting, dan menguraikan cara beralih ke WebView tanpa kehilangan hari pengujian yang telah terakumulasi.
Daftar isi
Mengapa aplikasi TWA sering ditolak dalam pengujian tertutup?
Trusted Web Activity merender situs Anda melalui permukaan Chrome Custom Tabs, bukan menggambar layar di dalam aplikasi Anda sendiri. Ini merupakan cara cepat untuk mengubah situs atau PWA menjadi aplikasi yang dapat diinstal, dan bekerja baik untuk banyak aplikasi di produksi. Masalah khusus muncul ketika akun developer pribadi harus menyelesaikan persyaratan wajib pengujian tertutup selama 14 hari sebelum mendapatkan akses produksi.
Berdasarkan pengalaman kami membantu lebih dari 7.400+ aplikasi melalui proses ini, build TWA dan wrapper PWA jauh lebih sering menerima penolakan "testers were not engaged" daripada aplikasi native standar, meskipun penguji benar-benar aktif setiap hari. Polanya cukup konsisten sehingga kami menyarankan developer untuk tidak memakai TWA jika aplikasi masih harus menyelesaikan pengujian tertutup 14 hari.
Sinyal interaksi lemah
Aktivitas yang dibaca dalam peninjauan Google tampaknya menjadi lebih lemah saat konten berjalan pada permukaan Chrome, bukan di dalam proses aplikasi Anda. Penggunaan nyata dapat terlihat seperti penggunaan rendah.
Penolakan "testers not engaged"
Ini pesan yang paling sering kami lihat pada build TWA. Penguji telah ikut serta, menginstal, dan menggunakan aplikasi setiap hari, tetapi peninjauan akses produksi tetap menandai interaksi sebagai tidak memadai.
Sedikit pengguna aktif di Google Play Console
Beberapa developer juga melaporkan jumlah pengguna aktif yang sangat rendah pada dasbor untuk build TWA. Hal ini selaras dengan perilaku permukaan Chrome yang sama.
Penolakan berulang saat dikirim kembali
Karena arsitektur menjadi penyebab dasar, mengirim kembali build TWA yang sama biasanya gagal dengan cara yang sama. Patch jarang mengatasinya, sedangkan pembangunan ulang dapat memperbaikinya.
Catatan yang jujur: Google tidak mendokumentasikan secara terbuka sinyal yang dinilai pada tahap peninjauan akses produksi. Anggap mekanisme persisnya sebagai pengamatan kami, bukan kebijakan resmi. Bersikaplah kritis terhadap posting forum yang mengaku mengetahui telemetri persisnya. Hal yang dapat kami laporkan dengan yakin adalah pola yang terus kami lihat: build TWA ditolak karena interaksi, sementara build WebView sebanding melewati peninjauan dengan lebih andal.
Apa sebenarnya TWA dan bagaimana cara membuatnya?
Sebelum memperbaiki penolakan, pahami dahulu apa yang Anda publikasikan. Pada dasarnya, Trusted Web Activity adalah aplikasi Android yang menampilkan situs Anda dalam layar penuh melalui mesin browser sungguhan, tanpa kolom URL, antarmuka browser, atau tanda bahwa pengguna sedang melihat halaman web. Bagi pengguna, tampilannya terasa seperti aplikasi native. Di baliknya, yang berjalan adalah situs Anda.
TWA biasanya dibuat menggunakan CLI Bubblewrap dari Google atau PWABuilder. Keduanya dibangun di atas library androidbrowserhelper dari Google. Anda mengarahkan alat ke sebuah URL, alat membuat proyek Android, lalu Anda menandatangani proyek tersebut dan mengupload AAB ke Google Play.
Mengapa developer memilih TWA?
Satu basis kode
Anda sudah memiliki situs, idealnya PWA. TWA membawanya ke Play Store tanpa menulis ulang dalam Kotlin, Flutter, atau React Native.
Update seketika
Karena aplikasi memuat situs yang aktif, Anda cukup menerapkan perubahan ke situs. Tidak perlu update aplikasi atau antrean peninjauan.
Cepat dan hemat
Membuat TWA hanya memerlukan beberapa menit, bukan beberapa minggu. Untuk PWA yang sudah ada, ini jalur termudah menuju Android.
Konsekuensi yang dapat menyebabkan penolakan
Hal yang membuat TWA hemat juga membuatnya rapuh dalam pengujian tertutup:
- Memerlukan internet. TWA adalah jendela menuju situs Anda. Koneksi yang lemah membuat aplikasi terasa lemah, kecuali PWA Anda memiliki dukungan offline yang baik.
- Risiko ditolak di Play Store. Kebijakan fungsi minimum dan konten yang dikemas ulang menargetkan aplikasi yang hanya berupa situs dalam wrapper. TWA tanpa kemampuan native yang nyata dapat ditolak atau dihapus, terutama pada pengiriman baru. Tambahkan fitur native seperti notifikasi push, mode offline, kamera, dan target berbagi agar aplikasi tetap mematuhi kebijakan.
- Masalah sinyal interaksi yang dijelaskan sebelumnya. Inilah alasan akun pribadi yang menjalani pengujian tertutup 14 hari masih dapat menerima pesan "testers not engaged".
Kesalahpahaman umum: TWA BUKAN WebView
Bagian ini sering dijelaskan secara keliru. Penjelasan yang tepat penting karena menentukan cara Anda memperbaiki masalah. TWA sama sekali tidak menggunakan komponen WebView Android.
"TWA hanyalah wrapper WebView"
WebView Android adalah browser tertanam berukuran ringkas yang dikontrol oleh aplikasi. Komponen ini lebih lama, memiliki lebih sedikit fitur, dan isolasi keamanan yang lebih lemah. TWA tidak menggunakannya.
TWA menggunakan mesin Custom Tabs
TWA menyerahkan URL kepada browser lengkap yang terpasang pada perangkat pengguna, biasanya Chrome, lalu meminta browser merender halaman dalam layar penuh tanpa antarmuka browser. Jadi, TWA memakai mesin browser sungguhan, bukan komponen tertanam.
Karena TWA menggunakan mesin di balik Custom Tabs, Anda mendapatkan mesin rendering, mesin JavaScript, dan sandbox keamanan yang sama dengan Chrome. TWA juga berbagi cookie dan penyimpanan dengan Chrome, sehingga pengguna yang sudah login di web tetap login, menerima update browser otomatis, dan mendapatkan dukungan platform web penuh. Ini sangat berguna untuk aplikasi biasa yang telah dipublikasikan. Namun, layar aplikasi berjalan di luar proses aplikasi, di dalam Chrome. Hal ini menjadi akar pelemahan sinyal interaksi dan rendahnya jumlah pengguna aktif.
Alur peluncuran langkah demi langkah
Android meluncurkan LauncherActivity TWA dari androidbrowserhelper.
Halaman terbuka dalam Custom Tab layar penuh tanpa antarmuka browser, tanpa kolom URL, tab, atau kontrol browser.
Inilah arti "Trusted" dalam Trusted Web Activity. Jika aplikasi tidak dapat membuktikan kepemilikan situs, kolom URL tetap terlihat dan tampilan native tidak tercapai.
Pemeriksaan kepercayaan: Digital Asset Links
Chrome hanya menghapus kolom URL jika aplikasi dapat membuktikan kepemilikan situs menggunakan Digital Asset Links. Aplikasi mendeklarasikan situs yang diwakilinya, lalu situs harus menyediakan file /.well-known/assetlinks.json yang mencantumkan package aplikasi dan sidik jari sertifikat penandatanganan SHA-256.
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.yourapp.name",
"sha256_cert_fingerprints": [
"AB:CD:EF:...:99" // your signing cert SHA-256
]
}
}]
Aplikasi mendeklarasikan situs
Manifest mencantumkan domain https yang diwakili aplikasi.
Situs menyediakan assetlinks.json
File mencantumkan package name dan sidik jari SHA-256.
Chrome mencocokkan kedua sisi
Sidik jari harus cocok dengan sertifikat penandatanganan aplikasi.
Jika penguji melihat kolom URL browser di bagian atas aplikasi, file assetlinks.json mungkin tidak ada, mengembalikan 404, atau memuat sidik jari SHA-256 yang salah. Perbaiki file dan pastikan sidik jari cocok dengan kunci yang benar-benar digunakan Google Play melalui Play App Signing. Namun, perbaikan tersebut hanya memulihkan tampilan layar penuh. Langkah ini tidak mengatasi penolakan karena sinyal interaksi. Untuk itu, Anda perlu membangun ulang ke WebView.
Jalur sinyal interaksi: TWA vs WebView
Cara termudah memahami penolakan ini adalah mengikuti ke mana aktivitas penguji sebenarnya mengalir. Pada TWA, layar berada satu lapisan lebih jauh dari aplikasi, yaitu di dalam permukaan Chrome Custom Tabs. Pada aplikasi WebView, layar yang sama berjalan di dalam proses aplikasi Anda sendiri dan langsung diatribusikan ke package Anda. Perbedaan ini memengaruhi seberapa kuat aktivitas tercatat.
Tempat aktivitas penguji diatribusikan
WebView memuat URL situs di dalam aplikasi Anda sendiri, sehingga aktivitas tercatat pada package Anda seperti yang diharapkan dalam peninjauan Google. Pada TWA, Custom Tab di tengah menjadi lompatan tambahan yang tampaknya melemahkan sinyal. Karena itu, angka rendah dalam analitik web Anda, seperti Google Analytics atau Firebase pada lapisan web, tidak selalu berarti Google melihat penggunaan nol. Namun, hasil praktisnya sama untuk pengujian tertutup: pembangunan ulang ke WebView merupakan perbaikan yang lebih andal.
Cara mengenali TWA dari luar dan dalam
Tidak yakin apakah aplikasi yang Anda atau kontraktor publikasikan benar-benar TWA? Konfirmasikan terlebih dahulu secara visual, lalu pastikan melalui APK atau perangkat yang terhubung.
Tanda visual cepat bagi pengguna
- Perilakunya sama persis dengan situs karena yang ditampilkan memang situs tersebut.
- Jika konfigurasinya salah, Anda akan melihat kolom URL browser di bagian atas. Ini bukti kuat, lihat masalah assetlinks sebelumnya.
- Konten diperbarui tanpa update aplikasi di Play Store.
Tanda teknis yang pasti dari pemeriksaan APK atau perangkat
| Penanda | Artinya |
|---|---|
DelegationService yang mendeklarasikan tindakan TRUSTED_WEB_ACTIVITY_SERVICE |
Sidik jari paling andal. Hanya TWA yang mendeklarasikannya. |
LauncherActivity, sering kali ManageDataLauncherActivity, dari com.google.androidbrowserhelper |
Launcher Bubblewrap. |
| Domain https terverifikasi dalam konfigurasi link aplikasi, dengan assetlinks.json yang berfungsi | Situs yang dibungkus TWA. |
Tanpa libflutter.so, tanpa index.android.bundle, dan sedikit kode native |
Ini wrapper web, bukan build Flutter, React Native, atau native. |
Konfirmasikan dengan adb
Pada perangkat atau emulator yang terhubung, gunakan dua perintah berikut:
# Is it a TWA? Look for the delegation service: adb shell dumpsys package <package.name> | grep -i DelegationService # Which site does it wrap, and is the trust check passing? adb shell pm get-app-links <package.name> # -> "verified" = Digital Asset Links pass (fullscreen) # -> "1024" = verification failed (address bar shows)
Cara membaca hasil: jika Anda melihat DelegationService dan LauncherActivity dari androidbrowserhelper, hampir pasti build tersebut adalah TWA. Jika Anda melihat MainActivity sendiri, library native .so, dan tidak ada layanan delegasi, build itu merupakan aplikasi native, Flutter, atau React Native. Masalah sinyal interaksi dalam panduan ini tidak berlaku.
TWA vs WebView untuk pengujian tertutup: perbandingan langsung
Kedua arsitektur membungkus konten web. Perbedaan penting untuk menyelesaikan pengujian tertutup 14 hari adalah tempat konten berjalan dan cara aktivitasnya diatribusikan. Berikut perbandingan keduanya pada metrik yang memengaruhi akses produksi dalam satu siklus.
TWA / wrapper PWA
Paling cocok untuk: aplikasi yang sudah diterima dan tidak perlu menyelesaikan pengujian tertutup.
WebView standar
Paling cocok untuk: aplikasi yang harus menyelesaikan pengujian tertutup 14 hari dengan 12 penguji.
Pemeriksaan kompatibilitas framework
WebView berperilaku berbeda dari Chrome desktop. Pilih stack Anda untuk melihat pengaturan yang paling sering bermasalah saat peluncuran.
Aktifkan DOM Storage
SPA / routing sisi klienSingle-page app bergantung pada localStorage dan sessionStorage untuk routing sisi klien dan status autentikasi. Jika settings.domStorageEnabled = true tidak diaktifkan, routing web rusak saat peluncuran. Penguji akan melihat layar kosong atau pemuat yang macet, sehingga aktivitas dapat terbaca sebagai "not engaged".
Pertahankan juga javaScriptEnabled = true dan tangani navigasi dalam aplikasi dengan WebViewClient agar deep link tidak berpindah ke Chrome.
Deklarasikan izin native untuk embed dan upload
Builder no-codeWebView menangani embed iframe secara berbeda dari Chrome desktop, sedangkan builder no-code sangat bergantung padanya. Pastikan izin upload file dideklarasikan secara native dalam AndroidManifest.xml dan hubungkan WebChromeClient.onShowFileChooser. Jika tidak, formulir dan upload media dapat gagal tanpa pesan.
Tambahkan <uses-permission android:name="android.permission.INTERNET"/>. Jika aplikasi menerima media, tambahkan izin kamera atau penyimpanan, lalu minta izin tersebut saat aplikasi berjalan.
Tambahkan cache offline dan nilai native nyata
Statis / CMSSitus statis biasa yang dimuat dalam WebView merupakan contoh klasik thin wrapper. Atur cacheMode = LOAD_DEFAULT sebagai cadangan offline yang dapat digunakan. Tambahkan layar error dan coba lagi dengan branding saat koneksi terputus, serta setidaknya satu fungsi native seperti notifikasi push, target berbagi, atau pintasan layar beranda.
Langkah ini mengubah ekspor CMS atau situs statis dari sekadar situs yang dibingkai menjadi aplikasi yang lebih siap untuk peninjauan fungsi minimum.
Solusi: buat aplikasi WebView standar
Jangan terus menambal TWA atau mencoba memaksakan sinyal yang lebih kuat. Jalur paling bersih adalah membangun ulang aplikasi menggunakan komponen WebView lalu memublikasikan build tersebut. Tersedia tiga jalur umum, dan semuanya memuat situs di dalam aplikasi Anda sendiri:
Ini jalur paling langsung. Tempatkan WebView dalam activity utama, arahkan ke URL Anda, lalu aktifkan JavaScript dan DOM storage. Anda mendapatkan kontrol penuh tanpa framework tambahan.
Jika aplikasi sudah berupa proyek web atau PWA, Capacitor membungkusnya dalam shell WebView native dan menyediakan plugin native untuk kamera, notifikasi push, dan penyimpanan. Ini merupakan peningkatan yang bersih dari PWA tanpa masalah sinyal TWA.
Ini pilihan yang lebih lama, tetapi masih layak. Gagasan utamanya sama: konten web berjalan dalam WebView milik aplikasi, bukan pada permukaan Chrome Custom Tabs.
Setup minimum WebView yang siap disalin
Intinya sederhana: sebuah WebView memuat URL dengan JavaScript dan penyimpanan aktif, menjaga navigasi tetap di dalam aplikasi agar tidak berpindah ke Chrome, serta menghubungkan handler tombol Kembali yang diharapkan dalam peninjauan Google. Pilih tab bahasa pemrograman Anda dan salin kode dasarnya:
val webView = findViewById<WebView>(R.id.webview)
webView.settings.apply {
javaScriptEnabled = true // most sites need this
domStorageEnabled = true // localStorage / sessionStorage
cacheMode = WebSettings.LOAD_DEFAULT
}
// Keep links INSIDE the app (this is the key difference vs a TWA)
webView.webViewClient = WebViewClient()
webView.loadUrl("https://yourwebsite.com")
// The exact back-button handler Google looks for
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
finish()
}
}
})
WebView webView = findViewById(R.id.webview); WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); // most sites need this settings.setDomStorageEnabled(true); // localStorage / sessionStorage settings.setCacheMode(WebSettings.LOAD_DEFAULT); // Keep links INSIDE the app (this is the key difference vs a TWA) webView.setWebViewClient(new WebViewClient()); webView.loadUrl("https://yourwebsite.com"); // The exact back-button handler Google looks for getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { @Override public void handleOnBackPressed() { if (webView.canGoBack()) { webView.goBack(); } else { finish(); } } });
# Wrap an existing web/PWA project in a native WebView shell npm install @capacitor/core @capacitor/cli npx cap init "YourApp" "com.yourapp.name" # Point Capacitor at your live site (capacitor.config.ts) # server: { url: "https://yourwebsite.com", cleartext: false } npm install @capacitor/android npx cap add android npx cap sync # Capacitor handles back-button + DOM storage natively. # Open in Android Studio to build a signed AAB: npx cap open android
Tiga hal yang perlu ditambahkan untuk melewati peninjauan
WebView polos yang hanya memanggil loadUrl() tetap merupakan thin wrapper. Tiga tambahan berikut membuatnya menjadi aplikasi sungguhan dan mencegah penguji melihat layar kosong:
Hubungkan OnBackPressedCallback seperti dalam cuplikan kode di atas agar tombol Kembali menelusuri histori web terlebih dahulu dan hanya menutup aplikasi jika tidak ada halaman sebelumnya. Tanpa penanganan ini, satu ketukan dapat menutup seluruh aplikasi dan membuatnya terlihat rusak, yang merupakan tanda thin wrapper.
Terapkan onReceivedError dalam WebViewClient untuk menampilkan layar offline yang jelas dengan tombol coba lagi, bukan halaman putih. Layar kosong saat koneksi terputus membuat aplikasi cepat terlihat seperti thin wrapper dan berisiko gagal dalam peninjauan.
Tambahkan notifikasi push melalui FCM, cache offline, target berbagi, upload file melalui WebChromeClient.onShowFileChooser, atau integrasi perangkat. Fitur semacam ini membuat aplikasi jauh lebih berguna daripada URL yang dimuat dan membantu memenuhi kebijakan fungsi minimum.
Jika Anda tidak ingin menulis kode Android secara manual, Capacitor membungkus proyek web yang ada dalam shell WebView native. Capacitor menyediakan penanganan tombol Kembali, layar pembuka native, dan sistem plugin untuk notifikasi push, kamera, serta sistem file. Ini jalur paling langsung dari PWA ke WebView yang sepenuhnya menghindari perilaku Custom Tabs TWA. Anda mendapatkan atribusi dalam proses WebView sekaligus fitur native yang mudah diterapkan.
Publikasikan aplikasi yang Anda uji. Buat aplikasi WebView, jalankan dalam pengujian tertutup, lalu publikasikan build yang sama ke produksi. Jangan menguji satu arsitektur lalu menggantinya dengan aplikasi berbeda. Mengirim build hanya untuk melewati peninjauan lalu menggantinya di produksi bertentangan dengan kebijakan perilaku menipu Google dan dapat menyebabkan penangguhan aplikasi atau akun. Beralih secara permanen ke WebView menghindari masalah tersebut karena build yang diuji sama dengan build yang dirilis.
Cara beralih tanpa mereset hitungan 14 hari
Jika pengujian sudah berjalan separuh waktu, Anda tidak perlu memulai dari awal. Hitungan 14 hari tetap berlanjut setelah update aplikasi selama Anda menggunakan jalur pengujian dan package name yang sama. Berikut langkah migrasi yang aman:
Pertahankan applicationId yang sama persis dengan TWA saat ini. Package name berbeda akan membuat listing aplikasi baru dan memulai siklus 14 hari yang baru.
versionCode setidaknya 1 angka di atas build TWA. Jika tidak, Google Play Console akan menolak upload sebagai versi duplikat.Pastikan pemuatan andal, tombol Kembali Android ditangani dengan benar, status offline dan error masuk akal, serta tidak ada layar kosong. Hal ini juga membantu aplikasi melewati peninjauan thin wrapper yang dijelaskan pada bagian berikutnya.
Buka jalur pengujian tertutup, buat rilis baru, lalu upload AAB WebView. Jangan membuat jalur atau aplikasi baru.
Penguji yang sudah ikut serta cukup melakukan update ke versi WebView dan melanjutkan pengujian. Hitungan tetap berjalan selama setidaknya 12 penguji tetap aktif.
Mengirim update ke jalur pengujian tertutup tidak mereset hitungan 14 hari. Hitungan terus berjalan, dan Google menganggap iterasi aktif selama pengujian sebagai bagian normal dari proses. Karena itu, Anda dapat beralih dari TWA ke WebView di tengah siklus tanpa kehilangan hari yang telah terakumulasi.
Apakah aplikasi WebView masih dianggap sebagai "thin wrapper"?
Ini jebakan bagi developer yang menganggap WebView sebagai solusi ajaib. Beralih dari TWA ke WebView mengatasi masalah sinyal interaksi, tetapi tidak membebaskan aplikasi dari kebijakan Spam dan Fungsi Minimum Google. WebView yang hanya membingkai halaman beranda masih dapat ditolak sebagai thin wrapper, yaitu wrapper tipis yang hanya memuat situs tanpa nilai native nyata, sama seperti TWA tanpa fitur tambahan.
Anggap prosesnya sebagai dua gerbang terpisah. Jasa pengujian atau pembangunan ulang ke WebView dapat membantu Anda melewati satu gerbang, tetapi bukan gerbang lainnya.
Persyaratan pengujian tertutup
Pemeriksaan jumlah dan durasi: setidaknya 12 penguji telah ikut serta dan aktif selama 14 hari terus-menerus. WebView membantu aktivitas terbaca dengan andal, sedangkan PrimeTestLab menyediakan tester.
Jumlah + durasiFungsi minimum (thin wrapper)
Keputusan kebijakan dan kualitas: apakah aplikasi memberi nilai nyata atau hanya membingkai situs? Hanya aplikasi yang substansial yang dapat melewatinya. Jasa atau perubahan arsitektur tidak dapat melakukannya untuk Anda.
Kebijakan + kualitasJadi, tujuannya bukan sekadar memakai WebView sebagai pengganti TWA. Anda memerlukan aplikasi WebView dengan nilai nyata dan perilaku native yang cukup untuk berdiri sendiri. Dalam praktiknya, lakukan hal berikut:
Tombol Kembali harus menelusuri histori web, lalu menutup aplikasi dengan baik. Jangan biarkan penguji melihat layar kosong atau aplikasi tertutup mendadak.
Tampilkan layar offline yang jelas dan pilihan untuk mencoba lagi. Layar putih saat koneksi terputus membuat aplikasi cepat terlihat seperti thin wrapper.
Tambahkan notifikasi push, pengalaman layar beranda, integrasi perangkat, cache offline, atau fitur lain yang membuat aplikasi jauh lebih berguna daripada URL yang dimuatnya.
Aturan umpan lalu ganti yang tidak boleh dilanggar
Jangan menguji aplikasi yang substansial lalu menggantinya dengan aplikasi yang berbeda secara mendasar atau lebih tipis di produksi. Perilaku menipu semacam ini dapat membuat Google menangguhkan akun.
Lakukan pemilihan arsitektur WebView, bangun aplikasi yang substansial, uji build tersebut, lalu publikasikan build yang sama persis. Gunakan build itu dalam pengujian dan produksi.
Ingin checklist lebih mendalam tentang pemicu penolakan kualitas? Panduan kami mengenai alasan pengujian tertutup ditolak menguraikan kegagalan kebijakan dan peninjauan paling umum di luar masalah interaksi.
Tidak yakin aplikasi Anda merupakan TWA? Kami periksa saat pemesanan
Anda tidak perlu menjalankan perintah adb atau membongkar APK. PrimeTestLab dapat memastikan apakah aplikasi Anda merupakan TWA. Begitu Anda memesan jasa pengujian kami, tim kami memeriksa build dan mengidentifikasi apakah itu TWA atau wrapper PWA. Jika ya, kami menjelaskan hal yang harus diperbaiki sebelum hitungan 14 hari terbuang pada arsitektur yang berisiko ditandai karena interaksi.
Kami telah memeriksa dan memberikan saran untuk lebih dari 200 aplikasi TWA dalam beberapa bulan terakhir. Setelah rekomendasi dan perbaikan kami diterapkan, aplikasi tersebut dapat melanjutkan siklus pengujian dengan andal. Saat mendeteksi TWA, kami memberi Anda rencana pembangunan ulang yang jelas dan dapat ditindaklanjuti, bukan sekadar menyuruh mencoba lagi.
Apa yang terjadi setelah Anda memesan?
Begitu Anda membagikan jalur pengujian tertutup atau build, aplikasi masuk ke antrean pemeriksaan kami tanpa permintaan tambahan.
Tim kami mencari sidik jari khas TWA: DelegationService, launcher androidbrowserhelper, perilaku Custom Tabs, dan tidak adanya kode native. Penanda yang sama dijelaskan pada bagian deteksi sebelumnya.
Anda menerima rekomendasi konkret, biasanya pembangunan ulang ke WebView seperti dalam panduan ini, agar arsitektur dapat diperbaiki sebelum siklus 14 hari terbuang pada build yang berisiko gagal dalam peninjauan interaksi.
Dengan arsitektur yang tepat dan 12+ tester terverifikasi yang aktif selama 14 hari terus-menerus, kedua persyaratan tertangani. Proses inilah yang mendukung tingkat keberhasilan 99,9% kami.
Kebanyakan developer baru mengetahui bahwa TWA menjadi masalah setelah siklus 14 hari gagal, sehingga mereka harus memulai lagi. Karena kami mendeteksinya pada hari pertama, Anda dapat memperbaiki arsitektur, menguji, dan memublikasikan dengan alur yang lebih efisien. Inilah perbedaan antara maju dalam dua minggu dan menghadapi penolakan berulang selama sebulan.
Cara PrimeTestLab membantu menangani bagian lain masalah ini
Arsitektur adalah separuh masalah. Bagian lainnya, yang menghambat banyak developer independen, adalah menemukan 12 penguji yang benar-benar ikut serta dan tetap aktif selama 14 hari terus-menerus. PrimeTestLab menangani kebutuhan tersebut.
Kami menyediakan tester terverifikasi di perangkat Android nyata yang telah ikut serta dan menjaga pengujian tertutup tetap aktif selama seluruh masa persyaratan. Dengan demikian, satu tester yang keluar tidak langsung memutus rangkaian 14 hari. Anda membagikan link pengujian, lalu kami menangani undangan, verifikasi keikutsertaan, pemantauan interaksi harian, dan retensi 14 hari. Hingga kini kami telah menangani 7.400+ aplikasi dengan tingkat keberhasilan percobaan pertama 99,9%.
Jasa pengujian menangani persyaratan tester. Jasa tersebut tidak memilih arsitektur aplikasi atau melewati peninjauan thin wrapper untuk Anda. Kombinasi yang tepat adalah build WebView yang substansial dan 12 tester nyata selama 14 hari penuh, agar kedua bagian ini tidak menjadi alasan penolakan.
Paket saat ini
- Memenuhi minimum Google
- Perangkat Android nyata
- Cakupan penuh 14 hari
- Margin keamanan terbesar
- Keragaman perangkat lebih baik
- Tingkat keberhasilan percobaan pertama lebih kuat
- Buffer keamanan tersedia
- Keragaman perangkat lebih baik
- Keyakinan lebih besar pada hasil pengujian
Ditambah biaya layanan 5% · Tes ulang gratis atau pengembalian dana penuh
Pertanyaan umum
Mengapa aplikasi TWA saya terus ditolak dalam pengujian tertutup?
Berdasarkan pengalaman kami dengan 7.400+ aplikasi, build TWA dan wrapper PWA jauh lebih sering menerima penolakan "testers were not engaged" daripada aplikasi native standar, meskipun penguji aktif setiap hari. Kemungkinan penyebabnya adalah sinyal interaksi yang dibaca saat peninjauan akses produksi Google menjadi lebih lemah ketika konten web berjalan melalui permukaan Chrome Custom Tabs, bukan di dalam proses aplikasi Anda. Google tidak mendokumentasikan sinyal persisnya secara terbuka. Karena itu, anggap ini sebagai pengamatan kami, bukan kebijakan resmi.
Haruskah saya beralih dari TWA ke WebView atau hanya memperbaiki TWA?
Menurut pengalaman kami, membangun ulang sebagai aplikasi WebView standar jauh lebih andal daripada mencoba memaksakan sinyal interaksi yang lebih kuat dari TWA. WebView memuat situs Anda di dalam aplikasi Anda sendiri, sehingga aktivitas tercatat pada package Anda seperti yang diharapkan dalam peninjauan. Setelah beralih ke WebView, tetap gunakan WebView. Publikasikan build yang telah diuji, jangan kembali ke TWA di produksi.
Apakah aplikasi WebView otomatis lolos pengujian tertutup?
Tidak. Beralih ke WebView mengatasi masalah sinyal interaksi yang kami lihat pada build TWA, tetapi aplikasi Anda tetap harus mematuhi kebijakan Spam dan Fungsi Minimum Google. WebView yang hanya membingkai situs masih dapat ditolak sebagai thin wrapper. Buat aplikasi sungguhan dengan nilai native, penanganan tombol Kembali yang benar, serta status offline dan error yang memadai.
Apakah update aplikasi saat pengujian tertutup mereset hitungan 14 hari?
Tidak. Mengupload update ke jalur pengujian tertutup tidak mereset hitungan 14 hari. Hitungan terus berjalan, sehingga Anda dapat mengganti build TWA dengan WebView di tengah siklus tanpa memulai dari awal, selama package name tetap sama. Google menganggap iterasi aktif selama pengujian sebagai hal yang normal.
Mengapa TWA saya menampilkan sedikit pengguna aktif di Google Play Console?
Sebagian developer melaporkan jumlah pengguna aktif yang rendah pada build TWA di Google Play Console, yang juga disebut Konsol Play dalam dokumentasi resmi Indonesia. Google tidak menjelaskan penyebab pastinya, tetapi hal itu tampaknya berkaitan dengan konten web yang berjalan melalui permukaan Chrome Custom Tabs, bukan di dalam aplikasi Anda. Build WebView biasanya melaporkan aktivitas dengan lebih andal karena layar berjalan dalam proses aplikasi Anda sendiri.
Apakah aman menguji TWA lalu memublikasikan aplikasi WebView?
Langkah yang aman adalah menguji dan memublikasikan build yang sama. Jangan menguji TWA lalu menggantinya dengan aplikasi berbeda. Bangun ulang sebagai WebView terlebih dahulu, jalankan build WebView itu dalam pengujian tertutup, lalu publikasikan build yang sama persis ke produksi. Mengirim aplikasi hanya untuk melewati peninjauan lalu menggantinya dengan aplikasi yang berbeda secara mendasar dapat berisiko terkena penangguhan berdasarkan kebijakan perilaku menipu Google.
Dapatkah wrapper TWA atau PWA diterima di Google Play?
Ya. Aplikasi wrapper dapat diterima jika mematuhi kebijakan fungsi minimum dan menyelesaikan persyaratan pengujian tertutup. Namun, untuk akun developer pribadi yang harus menjalani pengujian tertutup 14 hari dengan 12 penguji, kami secara konsisten melihat build WebView melewati peninjauan interaksi dengan lebih andal daripada TWA. Karena itu, kami menyarankan WebView dalam situasi tersebut.
Apakah TWA menggunakan komponen WebView Android?
Tidak. Ini kesalahpahaman yang paling umum. TWA tidak menggunakan WebView Android. TWA memakai mesin di balik Custom Tabs dan menyerahkan URL kepada browser lengkap yang terpasang pada perangkat pengguna, biasanya Chrome, untuk dirender dalam layar penuh tanpa antarmuka browser. Karena itu, TWA memakai mesin rendering, mesin JavaScript, sandbox keamanan, cookie, dan penyimpanan yang sama dengan Chrome. Sebaliknya, WebView Android adalah browser tertanam yang dikontrol aplikasi dan berjalan di dalam proses aplikasi Anda. Inilah alasan pembangunan ulang ke WebView memperbaiki atribusi interaksi.
Mengapa TWA saya menampilkan kolom URL browser di bagian atas?
Itu berarti pemeriksaan kepercayaan Digital Asset Links gagal. Chrome hanya menyembunyikan kolom URL jika situs Anda menyediakan file /.well-known/assetlinks.json yang valid dan mencantumkan package aplikasi serta sidik jari SHA-256 sertifikat penandatanganan. Jika file tidak ada, mengembalikan 404, atau sidik jari tidak cocok dengan kunci yang digunakan Google Play melalui Play App Signing, aplikasi tetap terbuka tetapi Chrome menampilkan kolom URL. Memperbaiki assetlinks.json memulihkan layar penuh, tetapi tidak mengatasi penolakan interaksi dalam pengujian tertutup. Untuk itu, Anda perlu membangun ulang ke WebView.
Bagaimana cara mengetahui apakah sebuah aplikasi merupakan TWA?
Periksa build. Penanda yang paling andal adalah DelegationService yang mendeklarasikan tindakan TRUSTED_WEB_ACTIVITY_SERVICE. Hanya TWA yang mendeklarasikannya. Biasanya Anda juga akan melihat LauncherActivity dari com.google.androidbrowserhelper dan tidak menemukan library native Flutter atau React Native. Pada perangkat yang terhubung, jalankan adb shell dumpsys package <package> | grep -i DelegationService untuk menemukan layanan tersebut, lalu adb shell pm get-app-links <package> untuk melihat apakah verifikasi Digital Asset Links berhasil ("verified") atau gagal ("1024").
Dapatkah PrimeTestLab memberi tahu apakah aplikasi saya merupakan TWA?
Ya. Begitu Anda memesan jasa pengujian kami, tim kami memeriksa build Anda dan memastikan apakah build tersebut merupakan TWA atau wrapper PWA. Jika ya, kami mengirimkan rekomendasi perbaikan yang spesifik sebelum hitungan 14 hari terbuang. Kami telah memeriksa lebih dari 200 aplikasi TWA dalam beberapa bulan terakhir. Setelah mengikuti rekomendasi dan perbaikan kami, aplikasi tersebut dapat melanjutkan siklus pengujian dengan andal. Anda tidak perlu menjalankan adb atau memeriksa APK sendiri.
Seberapa cepat PrimeTestLab menyediakan tester untuk pengujian tertutup saya?
Setelah jalur pengujian tertutup Anda aktif dan dapat diakses, tester PrimeTestLab biasanya mulai ikut serta dalam 4-6 jam. Harga mulai $19.99 untuk 12 tester, ditambah biaya layanan 5%, dengan tingkat keberhasilan 99,9% pada 7.400+ aplikasi.
Intinya
Ringkasan
Jika build TWA terus gagal dalam pengujian tertutup Google Play karena penolakan interaksi, perbaikan paling bersih adalah membangunnya ulang sebagai aplikasi WebView standar lalu memublikasikan build tersebut ke produksi tanpa kembali ke TWA. Pertahankan package name yang sama agar update tidak mereset hitungan 14 hari. Buat aplikasi cukup substansial untuk melewati peninjauan fungsi minimum, lalu gunakan PrimeTestLab untuk menangani persyaratan 12 tester dan 14 hari agar pengujian tidak menjadi alasan penolakan. WebView memperbaiki gerbang interaksi, aplikasi sungguhan menangani gerbang thin wrapper, dan PrimeTestLab menyediakan tester. Lihat paket harga →