Lewati ke konten

Panduan memperbaiki penolakan 2026

Aplikasi TWA Ditolak Google Play? Beralih ke WebView

Jika aplikasi Trusted Web Activity Anda terus gagal dalam pengujian tertutup dengan pesan "testers were not engaged", perbaikan yang paling andal adalah membangunnya ulang sebagai aplikasi WebView standar dan memublikasikan build tersebut. Pelajari mengapa wrapper TWA dan PWA ditandai, serta cara beralih tanpa mereset hitungan 14 hari.

TWA Lebih sering ditandai
WebView Perbaikan lebih andal
14 hari Hitungan tidak direset
99,9% Tingkat keberhasilan PTL
Testers were not engaged
Ditolak Wrapper TWA / PWA Berjalan pada permukaan Chrome
Shell aplikasi Anda Chrome Custom Tab Konten web

Interaksi terbaca lemah → ditolak

Lebih andal WebView standar Berjalan dalam proses sendiri
Shell aplikasi Anda WebView (in-process) Konten web

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.

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.

Temuan 01

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.

Temuan 02

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.

Temuan 03

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.

Temuan 04

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

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.

Mitos

"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.

Faktanya

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

1
Pengguna mengetuk ikon aplikasi

Android meluncurkan LauncherActivity TWA dari androidbrowserhelper.

2
Activity meminta Chrome membuka URL Anda

Halaman terbuka dalam Custom Tab layar penuh tanpa antarmuka browser, tanpa kolom URL, tab, atau kontrol browser.

3
Chrome menjalankan pemeriksaan kepercayaan sebelum menyembunyikan kolom URL

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.

https://yoursite.com/.well-known/assetlinks.json JSON
[{
  "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
    ]
  }
}]
Cara verifikasi diselesaikan

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.

Cocok Aplikasi berjalan dalam layar penuh seperti aplikasi native. Kolom URL disembunyikan.
Tidak ada / 404 / sidik jari salah Aplikasi tetap terbuka, tetapi Chrome menampilkan kolom URL. Ini bug TWA nomor 1.
Bug TWA nomor 1

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

TWA
Penguji membuka aplikasi Package Anda Chrome Custom Tab Konten web
Lemah
WebView
Penguji membuka aplikasi Package Anda WebView (in-process) Konten web
Kuat
Gagasan utama

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:

terminal bash
# 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

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.

Hal yang penting
TWA / wrapper PWA
WebView standar
Tempat layar dirender
Chrome Custom Tabs
Di dalam proses aplikasi Anda
Kekuatan sinyal interaksi
Lemah
Kuat
Risiko "testers not engaged"
Tinggi berdasarkan data kami
Rendah
Pengguna aktif di Google Play Console
Sering dilaporkan terlalu rendah
Dilaporkan dengan andal
Kontrol native, Kembali dan offline
Terbatas
Kontrol penuh
Perilaku analitik dalam aplikasi
Tidak konsisten / terlalu rendah
Standar
Peninjauan thin wrapper
Tetap berlaku
Tetap berlaku
Keandalan dalam pengujian 14 hari
Tidak konsisten
Andal
Risiko penolakan lebih tinggi

TWA / wrapper PWA

Paling cocok untuk: aplikasi yang sudah diterima dan tidak perlu menyelesaikan pengujian tertutup.

Cepat dibuat dari PWA yang sudah ada
Pengalaman layar penuh tanpa kolom URL
Aktivitas berjalan satu lapisan lebih jauh di Chrome
Tingkat penolakan "testers not engaged" lebih tinggi
Dapat melaporkan pengguna aktif terlalu rendah di Google Play Console
Disarankan untuk pengujian tertutup

WebView standar

Paling cocok untuk: aplikasi yang harus menyelesaikan pengujian tertutup 14 hari dengan 12 penguji.

Layar berjalan dalam proses aplikasi Anda
Aktivitas langsung diatribusikan ke package Anda
Kontrol native penuh untuk Kembali, offline, dan error
Perilaku analitik standar
Tetap memerlukan nilai nyata untuk peninjauan thin wrapper
Interaktif

Pemeriksaan kompatibilitas framework

WebView berperilaku berbeda dari Chrome desktop. Pilih stack Anda untuk melihat pengaturan yang paling sering bermasalah saat peluncuran.

Pilih framework di atas untuk melihat optimasi WebView yang sesuai.

Aktifkan DOM Storage

SPA / routing sisi klien

Single-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-code

WebView 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 / CMS

Situs 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:

1
WebView native di Android Studio

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.

2
Capacitor

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.

3
Cordova

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:

1
Tangani tombol Kembali Android

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.

2
Kelola status offline dan error

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.

3
Tambahkan nilai native yang nyata

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.

Sudah memiliki PWA? Gunakan Capacitor

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.

Aturan yang penting

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:

1
Buat aplikasi WebView dengan package name yang sama

Pertahankan applicationId yang sama persis dengan TWA saat ini. Package name berbeda akan membuat listing aplikasi baru dan memulai siklus 14 hari yang baru.

Tips: naikkan versionCode setidaknya 1 angka di atas build TWA. Jika tidak, Google Play Console akan menolak upload sebagai versi duplikat.
2
Buat aplikasi berfungsi mandiri secara nyata

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.

3
Upload sebagai update ke jalur pengujian tertutup yang ada

Buka jalur pengujian tertutup, buat rilis baru, lalu upload AAB WebView. Jangan membuat jalur atau aplikasi baru.

4
Minta penguji melakukan update dan melanjutkan

Penguji yang sudah ikut serta cukup melakukan update ke versi WebView dan melanjutkan pengujian. Hitungan tetap berjalan selama setidaknya 12 penguji tetap aktif.

Hitungan terus berjalan

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.

Gerbang 1

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 + durasi
Gerbang 2

Fungsi 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 + kualitas

Jadi, 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:

A
Tangani tombol Kembali Android dengan benar

Tombol Kembali harus menelusuri histori web, lalu menutup aplikasi dengan baik. Jangan biarkan penguji melihat layar kosong atau aplikasi tertutup mendadak.

B
Kelola status offline dan error

Tampilkan layar offline yang jelas dan pilihan untuk mencoba lagi. Layar putih saat koneksi terputus membuat aplikasi cepat terlihat seperti thin wrapper.

C
Tambahkan nilai native yang nyata

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.

200+ Aplikasi TWA diperiksa

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?

1
Anda memesan dan membagikan aplikasi

Begitu Anda membagikan jalur pengujian tertutup atau build, aplikasi masuk ke antrean pemeriksaan kami tanpa permintaan tambahan.

2
Kami segera memeriksa penanda TWA dalam build

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.

3
Jika berupa TWA, kami menandainya dan menjelaskan cara memperbaikinya

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.

4
Setelah build siap, tester kami menjalankan siklus penuh 14 hari

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.

Mengapa proses ini menghemat waktu berminggu-minggu

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%.

Mulai $19.99 12 tester, ditambah biaya layanan 5%
4-6 jam Pengujian dimulai
7.400+ aplikasi Tingkat keberhasilan 99,9%
Penjelasan langsung

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

Starter 12 tester $19.99
  • Memenuhi minimum Google
  • Perangkat Android nyata
  • Cakupan penuh 14 hari
Lihat paket
Nilai terbaik Enterprise 25 tester $27.99
  • Margin keamanan terbesar
  • Keragaman perangkat lebih baik
  • Tingkat keberhasilan percobaan pertama lebih kuat
Lihat paket
Professional 20 tester $29.99
  • Buffer keamanan tersedia
  • Keragaman perangkat lebih baik
  • Keyakinan lebih besar pada hasil pengujian
Lihat paket

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 →

Kefayatullah Khadem, insinyur perangkat lunak dan spesialis penerbitan Google Play

Ditulis oleh

Kefayatullah Khadem

Insinyur Perangkat Lunak dan Spesialis Penerbitan Google Play

Kefayatullah Khadem adalah insinyur perangkat lunak dengan pengalaman lebih dari 8 tahun membangun aplikasi yang dapat diskalakan. Di PrimeTestLab, ia membantu developer independen menyelesaikan persyaratan pengujian tertutup Google Play dan menulis panduan berdasarkan kasus nyata serta dokumentasi resmi Google Play Console.

7.400+Aplikasi diuji
99,9%Tingkat keberhasilan
120+Negara
4,9/5Rating

Tingkat keberhasilan 99,9%

Sudah dibangun ulang sebagai WebView? Selesaikan pengujian 14 hari Anda.

Tester nyata. Perangkat nyata. Cakupan penuh 14 hari. Tanpa risiko reset.

Mulai hanya $19.99, ditambah biaya layanan 5%

Pengujian dimulai dalam 4-6 jam · 120+ negara · Tes ulang gratis atau pengembalian dana penuh

Bergabunglah dengan 2.200+ developer yang meluncurkan aplikasi bersama PrimeTestLab

Dapatkan 12 tester, $19.99 + biaya 5% WhatsApp