Zwak gebruikssignaal → afgewezen
Activiteit wordt gemeten → betere beoordeling
Kort antwoord
Blijft je TWA-app de gesloten test (closed testing) niet halen met de melding "testers were not engaged", dan is in onze ervaring de betrouwbaarste oplossing hem herbouwen als een gewone WebView-app met Android Studio WebView, Capacitor of Cordova, en die build publiceren. Behoud hetzelfde package name en upload hem als update, zodat de teller van 14 dagen niet wordt teruggezet. WebView pakt het probleem met gebruikssignalen aan, maar stelt je niet vrij van de thin-wrapperbeoordeling. Maak er dus een echte app van. Heb je vooral moeite om 12 actieve testers 14 dagen vast te houden, dan regelt PrimeTestLab dat vanaf $19.99 plus 5% servicekosten. Testen begint doorgaans binnen 4-6 uur.
Dit is een van de frustrerendste afwijzingen voor een zelfstandige ontwikkelaar. Je testers waren echt actief. Je had 12 mensen. De 14 dagen waren voorbij. Toch antwoordde Google dat "your testers were not engaged enough". Heb je de app gebouwd als Trusted Web Activity (TWA) of PWA-wrapper, dan beeld je je het patroon niet in. Bij de meer dan 7.400 apps die wij hebben begeleid, krijgen wrapper-builds deze afwijzing veel vaker dan gewone native of WebView-builds. Deze gids legt uit waarom, toont het belangrijke architectuurverschil en helpt je overstappen zonder de testdagen die je al hebt opgebouwd weg te gooien.
Inhoudsopgave
Waarom worden TWA-apps bij de gesloten test afgewezen?
Een Trusted Web Activity rendert je website via Chrome Custom Tabs in plaats van de schermen binnen je eigen app te tekenen. Het is een snelle manier om een site of PWA installeerbaar te maken en voor veel apps in productie werkt dat prima. Het probleem ontstaat vooral wanneer een persoonlijk ontwikkelaarsaccount eerst de gesloten test van 14 dagen moet doorlopen voordat het productietoegang kan aanvragen.
In onze ervaring met meer dan 7.400 apps krijgen TWA-builds en PWA-wrappers de afwijzing "testers were not engaged" veel vaker dan gewone native apps, zelfs wanneer testers de app elke dag gebruikten. Het patroon is zo consistent dat we ontwikkelaars WebView adviseren zolang hun app de gesloten test nog moet halen.
Zwakke gebruikssignalen
De activiteit die Google leest, lijkt zwakker door te komen wanneer content in de Chrome-laag draait en niet in het proces van je app. Echt gebruik kan daardoor op weinig gebruik lijken.
Afwijzing "testers not engaged"
Dit is de melding die we het vaakst bij TWA-builds zien. Testers meldden zich aan, installeerden de app en gebruikten hem dagelijks, maar de beoordeling noemt het gebruik toch onvoldoende.
Weinig actieve gebruikers in Play Console
Sommige ontwikkelaars melden ook onverwacht lage aantallen actieve gebruikers op het dashboard voor TWA-builds. Dat past bij hetzelfde gedrag van de Chrome-laag.
Opnieuw afgewezen na herindienen
Wanneer de architectuur de oorzaak is, strandt dezelfde TWA-build bij herindienen vaak opnieuw. Daarom helpt een kleine patch zelden en een rebuild doorgaans wel.
Een eerlijke kanttekening: Google publiceert niet precies welke signalen het bij de beoordeling van productietoegang weegt. Zie het mechanisme daarom als onze waarneming en niet als officieel beleid. Forumreacties die zeggen de exacte telemetrie te kennen, verdienen scepsis. Wat wij wel kunnen melden, is het patroon dat we blijven zien: TWA-builds stranden op gebruikssignalen en vergelijkbare WebView-builds doorstaan die beoordeling betrouwbaarder.
Wat is een TWA werkelijk en hoe wordt die gebouwd?
Voor je de afwijzing oplost, is het nuttig precies te begrijpen wat je hebt gepubliceerd. Een Trusted Web Activity is een Android-app die in wezen je website schermvullend in een echte browserengine draait, zonder adresbalk of andere browserinterface. Voor de gebruiker ziet hij eruit en voelt hij aan als een native app. Onder de motorkap blijft het je live website.
TWA-apps worden meestal gemaakt met de Bubblewrap-CLI van Google of met PWABuilder. Beide bouwen voort op de bibliotheek androidbrowserhelper van Google. Je geeft de tool een URL, hij maakt een Android-project, waarna je het ondertekent en de AAB naar Google Play uploadt.
Waarom ontwikkelaars voor een TWA kiezen
Eén codebase
Je hebt al een website, idealiter een PWA. Een TWA brengt die naar de Play Store zonder alles in Kotlin, Flutter of React Native te herschrijven.
Directe updates
Omdat de app je live site laadt, publiceer je wijzigingen door de site uit te rollen. Er is geen app-update of nieuwe beoordelingswachtrij nodig.
Goedkoop en snel
Een TWA genereren duurt minuten in plaats van weken. Voor een bestaande PWA is dit de kortste route naar Android.
De keerzijde die de afwijzing veroorzaakt
Wat een TWA goedkoop maakt, maakt hem kwetsbaar bij de gesloten test:
- Internet is nodig. De app is een venster naar je site, dus een zwakke verbinding betekent een zwakke app tenzij je PWA goede offline-ondersteuning heeft.
- Risico op afwijzing in de Play Store. Het beleid voor minimale functionaliteit en herverpakte content richt zich op apps die slechts een website in een wrapper zijn. Een TWA zonder echte native mogelijkheden kan worden afgewezen of verwijderd. Native functies zoals pushmeldingen, offlinemodus, camera of share targets helpen je aan de juiste kant van die grens te blijven.
- Het probleem met gebruikssignalen uit de vorige sectie verklaart waarom persoonlijke accounts bij de gesloten test van 14 dagen de melding "testers not engaged" blijven krijgen.
Het misverstand: een TWA is GEEN WebView
Dit is waar veel artikelen de fout in gaan. Nauwkeurigheid is belangrijk, omdat dit bepaalt hoe je het probleem oplost. Een TWA gebruikt het WebView-component van Android helemaal niet.
"Een TWA is gewoon een WebView-wrapper"
De WebView van Android is een uitgeklede, insluitbare browser die door de app wordt bestuurd. Een TWA gebruikt hem niet.
Een TWA gebruikt de Custom Tabs-engine
De TWA geeft je URL door aan de volledige geïnstalleerde browser van de gebruiker, meestal Chrome, en laat die de pagina schermvullend zonder interface renderen.
Omdat een TWA de engine achter Custom Tabs gebruikt, krijg je dezelfde renderingengine, JavaScript-engine en beveiligingssandbox als in Chrome. Cookies en opslag worden met Chrome gedeeld, browserupdates zijn automatisch en de volledige webstandaard wordt ondersteund. Dat is krachtig voor een gewone gepubliceerde app, maar betekent ook dat je schermen buiten het proces, in Chrome draaien. Daar ligt de waarschijnlijke bron van zowel zwakkere gebruikssignalen als lage aantallen actieve gebruikers.
De startvolgorde, stap voor stap
Android start de LauncherActivity van de TWA uit androidbrowserhelper.
De pagina opent in een schermvullende Custom Tab zonder browserinterface. Er zijn geen adresbalk, tabbladen of andere browserknoppen.
Dat is het "Trusted"-deel van Trusted Web Activity. Kan de app niet aantonen dat hij bij de site hoort, dan blijft de adresbalk zichtbaar en verdwijnt de native illusie.
De vertrouwenscontrole: Digital Asset Links
Chrome verbergt de adresbalk alleen wanneer de app via Digital Asset Links kan aantonen dat hij bij de website hoort. De app declareert welke site hij vertegenwoordigt. De site moet op /.well-known/assetlinks.json een bestand aanbieden met het package en de SHA-256-vingerafdruk van het ondertekeningscertificaat.
[{
"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
]
}
}]De app declareert de site
Het manifest noemt het https-domein dat de app vertegenwoordigt.
De site levert assetlinks.json
Het bestand bevat het package name en de SHA-256-vingerafdruk.
Chrome vergelijkt beide
De vingerafdruk moet bij het ondertekeningscertificaat van de app passen.
Zien testers bovenaan je "app" een browseradresbalk, dan ontbreekt assetlinks.json, geeft het een 404 terug of bevat het de verkeerde SHA-256-vingerafdruk. Herstel het bestand en zorg dat de vingerafdruk past bij de sleutel waarmee Google Play onder Play App Signing tekent. Dit herstelt alleen de schermvullende weergave. Het verhelpt niet de afwijzing wegens gebruikssignalen. Daarvoor heb je de WebView-rebuild nodig.
De route van gebruikssignalen: TWA tegenover WebView
De eenvoudigste manier om de afwijzing te begrijpen, is volgen waar de activiteit van een tester werkelijk terechtkomt. Bij een TWA staan je schermen één laag verder van je app, in Chrome Custom Tabs. Bij een WebView-app draaien dezelfde schermen binnen het proces van je eigen app en worden ze rechtstreeks aan je package toegeschreven. Dat verschil bepaalt hoe sterk de activiteit wordt geregistreerd.
Waar de activiteit van een tester wordt toegeschreven
Een WebView laadt de URL van je site binnen je eigen app, waardoor activiteit aan je package wordt toegeschreven zoals de beoordeling van Google die verwacht. Bij een TWA vormt de Custom Tab een extra sprong die het signaal lijkt te verdunnen. Lage cijfers in je eigen webanalytics betekenen bij een TWA niet automatisch dat Google geen gebruik ziet. Praktisch blijft de oplossing voor de gesloten test hetzelfde: een WebView-rebuild registreert activiteit betrouwbaarder.
Een TWA herkennen, van buiten en van binnen
Weet je niet zeker of de app die jij of een opdrachtnemer heeft opgeleverd echt een TWA is? Zo stel je het vast, eerst op het oog en daarna definitief via de APK of een aangesloten apparaat.
Snelle visuele aanwijzingen voor gebruikers
- De app gedraagt zich precies als de website, omdat hij de website is.
- Bij een verkeerde configuratie zie je bovenaan een browseradresbalk. Dat is een duidelijke aanwijzing, zie de assetlinks-fout hierboven.
- Content verandert zonder app-update in de Play Store.
Definitieve technische aanwijzingen in de APK of op het apparaat
| Kenmerk | Wat het betekent |
|---|---|
Een DelegationService die de actie TRUSTED_WEB_ACTIVITY_SERVICE declareert | De betrouwbaarste vingerafdruk. Alleen TWA-apps declareren dit. |
LauncherActivity, vaak ManageDataLauncherActivity, uit com.google.androidbrowserhelper | De launcher van Bubblewrap. |
| Een geverifieerd https-domein in de linkinstellingen van de app, assetlinks.json werkt | De site die door de TWA wordt verpakt. |
Geen libflutter.so, geen index.android.bundle, weinig native code | Het is een webwrapper en geen Flutter-, React Native- of native build. |
Bevestig het met adb
Op een aangesloten apparaat of emulator geven twee opdrachten uitsluitsel:
# 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)
De uitkomst lezen: zie je een DelegationService en een LauncherActivity uit androidbrowserhelper, dan kijk je vrijwel zeker naar een TWA. Zie je een eigen MainActivity, native .so-bibliotheken en geen delegatieservice, dan is het een echte native app of een Flutter- of React Native-app. Het probleem met gebruikssignalen uit deze gids is daarop niet van toepassing.
TWA tegenover WebView bij de gesloten test
Beide architecturen verpakken webcontent. Voor de gesloten test van 14 dagen telt vooral waar die content draait en waaraan activiteit wordt toegeschreven. Zo verschillen ze op de punten die bepalen of je in één cyclus productie bereikt.

TWA- / PWA-wrapper
Geschikt voor: apps die al zijn goedgekeurd en geen gesloten test meer hoeven te halen.
Gewone WebView
Geschikt voor: apps die de gesloten test van 14 dagen met 12 testers moeten halen.
Compatibiliteitscontrole voor je framework
WebView gedraagt zich anders dan Chrome op een desktop. Kies je stack en bekijk welke instelling bij de lancering het vaakst problemen geeft.
Schakel DOM Storage in
SPA / client-side routingSingle-page apps gebruiken localStorage en sessionStorage voor client-side routing en authenticatiestatus. Zonder settings.domStorageEnabled = true kan je routing bij het starten breken. Testers zien dan een leeg scherm of een vastgelopen laadindicator, wat op weinig gebruik lijkt.
Behoud ook javaScriptEnabled = true en stuur navigatie binnen de app via een WebViewClient, zodat deep links niet naar Chrome springen.
Declareer native rechten voor embeds en uploads
No-codebuilderWebView behandelt iframe-embeds anders dan Chrome op een desktop. No-codebuilders steunen daar vaak sterk op. Declareer uploadrechten native in AndroidManifest.xml en koppel WebChromeClient.onShowFileChooser, anders kunnen formulieren en media-uploads stil mislukken.
Voeg <uses-permission android:name="android.permission.INTERNET"/> toe en, als je media accepteert, camera- en opslagrechten. Vraag die vervolgens tijdens runtime aan.
Voeg offlinecache en echte native meerwaarde toe
Statisch / CMSEen gewone statische site in een WebView is het schoolvoorbeeld van een thin wrapper. Stel cacheMode = LOAD_DEFAULT in voor een bruikbaar offlinealternatief, voeg bij een verbroken verbinding een eigen foutscherm met opnieuw-proberenknop toe en bouw minstens één native functie in, zoals pushmeldingen, een share target of snelkoppelingen op het startscherm.
Zo verandert een CMS- of statische export van een ingelijste site in een app met voldoende functionaliteit voor de beoordeling.
De oplossing: bouw een gewone WebView-app
In plaats van een TWA te repareren of er sterkere signalen uit te proberen halen, is de duidelijkste route je app rond een WebView-component herbouwen en die build publiceren. Je hebt drie gangbare routes. Alle drie laden je site binnen je eigen app:
De directste route. Plaats een WebView in je main activity, wijs hem naar je URL en schakel JavaScript en DOM storage in. Je houdt maximale controle zonder extra framework.
Is je app al een webproject of PWA, dan verpakt Capacitor die in een native WebView-shell en levert het native plugins voor camera, push en opslag. Dit is een logische stap vanaf een PWA zonder het signaalprobleem van TWA.
De oudste, maar nog steeds bruikbare optie. Het principe blijft hetzelfde: je webcontent draait in de WebView van je app en niet in Chrome Custom Tabs.
De minimale WebView-opzet, klaar om te kopiëren
De kern is klein: een WebView die je URL laadt met JavaScript en opslag ingeschakeld, navigatie binnen de app houdt en de Android-terugknop correct afhandelt. Kies je taal en kopieer de basis:
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
Drie toevoegingen die je voor de beoordeling nodig hebt
Een kale WebView die alleen loadUrl() aanroept, blijft een thin wrapper. Deze drie toevoegingen maken er een echte app van en voorkomen dat testers op lege schermen uitkomen:
Koppel OnBackPressedCallback, zoals in het voorbeeld hierboven, zodat de knop eerst door de webgeschiedenis teruggaat en de app pas sluit wanneer er niets meer terug te gaan is. Zonder deze afhandeling sluit één tik de app en ziet hij direct uit als een gebrekkige thin wrapper.
Implementeer onReceivedError in je WebViewClient en toon een echt offlinescherm met een opnieuw-proberenknop in plaats van een witte pagina. Een leeg scherm bij een verbroken verbinding is de snelste manier om als thin wrapper over te komen.
Denk aan pushmeldingen via FCM, offlinecache, een share target, bestandsuploads via WebChromeClient.onShowFileChooser of apparaatintegratie. Voeg iets toe dat de app duidelijk meer maakt dan de geladen URL. Dat helpt hem aan het beleid voor minimale functionaliteit te voldoen.
Wil je niet zelf Android-code schrijven, dan verpakt Capacitor je bestaande webproject in een native WebView-shell. Je krijgt standaard afhandeling van de terugknop, een native splashscreen en plugins voor push, camera en bestandssysteem. Het is de directste route van PWA naar WebView en vermijdt het Custom Tabs-gedrag van TWA volledig.
Publiceer de app die je hebt getest. Bouw de WebView-app, doorloop met die build de gesloten test en publiceer dezelfde build. Test niet één architectuur om die daarna door een andere app te vervangen. Dat kan volgens het beleid van Google voor misleidend gedrag tot opschorting van de app of het account leiden. Blijf je bij WebView, dan is wat je test ook wat je lanceert.
Overstappen zonder je teller van 14 dagen terug te zetten
Ben je al halverwege de test, dan hoef je niet opnieuw te beginnen. De teller van 14 dagen blijft bij een app-update lopen zolang je dezelfde testtrack en hetzelfde package name gebruikt. Zo stap je veilig over:
Behoud exact hetzelfde applicationId als je huidige TWA. Een ander package name maakt een nieuwe appvermelding en dwingt een nieuwe cyclus van 14 dagen af.
versionCode minimaal 1 hoger dan bij de TWA-build, anders weigert Play Console de upload als dubbele versie.Zorg voor betrouwbaar laden, correcte afhandeling van de Android-terugknop, logische offline- en foutstatussen en geen lege schermen. Dat verkleint ook het risico bij de thin-wrapperbeoordeling in de volgende sectie.
Open je gesloten testtrack, maak een nieuwe release en upload de WebView-AAB. Maak geen nieuwe track of nieuwe app.
Je aangemelde testers updaten naar de WebView-versie en gaan verder. De teller blijft lopen zolang minstens 12 testers actief blijven.
Een update naar je gesloten testtrack zet de teller van 14 dagen niet terug. Google ziet actief doorontwikkelen tijdens het testen als een normaal onderdeel van het proces. Daardoor kun je halverwege de cyclus van TWA naar WebView overstappen zonder de opgebouwde dagen kwijt te raken.
Geldt een WebView-app nog steeds als thin wrapper?
Hier gaat het mis bij ontwikkelaars die WebView als wondermiddel zien. Overstappen van TWA naar WebView pakt het probleem met gebruikssignalen aan, maar stelt je niet vrij van het Google-beleid voor spam en minimale functionaliteit. Een WebView die niet meer is dan je homepage in een kader kan nog steeds als thin wrapper worden afgewezen. Daarmee bedoelen we een dunne wrapper: alleen een ingelijste website zonder echte native meerwaarde.
Zie dit als twee aparte poorten. Een testdienst of een WebView-rebuild kan je bij één poort helpen, maar niet automatisch bij de andere.
De gesloten testvereiste
Een controle op aantal en duur: minimaal 12 aangemelde testers die de afgelopen 14 dagen doorlopend actief zijn. WebView laat activiteit betrouwbaarder registreren en PrimeTestLab levert de testers.
Aantal + duurMinimale functionaliteit
Een beleids- en kwaliteitsbeslissing: biedt de app echte waarde of is het slechts een website in een kader? Alleen een inhoudelijke app haalt deze poort. Geen testdienst of architectuurwijziging doet dat voor je.
Beleid + kwaliteitHet doel is dus niet alleen WebView in plaats van TWA, maar een WebView-app met genoeg echte waarde en native gedrag om zelfstandig te staan. In de praktijk betekent dat:
Terug moet eerst door de webgeschiedenis navigeren en daarna netjes afsluiten. Laat een tester niet op een leeg scherm achter en sluit de app niet onverwacht.
Toon een echt offlinescherm en een manier om opnieuw te proberen. Een wit scherm bij een verbroken verbinding laat je app direct op een dunne wrapper lijken.
Pushmeldingen, een goede startschermervaring, apparaatintegratie of offlinecache maken de app duidelijk meer dan de URL die hij laadt.
De lok-en-wisselregel, overtreed hem niet
Test niet een inhoudelijke app om die voor productie te vervangen door een wezenlijk andere of dunnere app. Dit is precies het misleidende gedrag waarvoor Google accounts kan opschorten.
Kies wel voor de WebView-architectuur, bouw een inhoudelijke app, test die build en publiceer precies die build. Houd dezelfde app aan tijdens het testen en in productie.
Wil je een uitgebreidere checklist van kwaliteitsproblemen? Onze gids over waarom gesloten tests worden afgewezen behandelt de meest voorkomende beleids- en beoordelingsfouten naast gebruikssignalen.
Weet je niet of je app een TWA is? Wij controleren het bij je bestelling
Je hoeft niet zelf adb-opdrachten uit te voeren of door je APK te graven. PrimeTestLab kan voor je vaststellen of je app een TWA is. Zodra je onze testdienst bestelt, inspecteert ons team je build en bepaalt het of het om een TWA of PWA-wrapper gaat. Is dat zo, dan vertellen we precies wat je moet aanpassen voordat je 14 dagen besteedt aan een architectuur die op gebruikssignalen kan stranden.
Alleen al in de afgelopen maanden hebben we meer dan 200 TWA-apps geïnspecteerd en advies gegeven. Na onze aanbevelingen en aanpassingen konden die apps hun testcyclus betrouwbaar voortzetten. Herkennen we een TWA, dan krijg je een duidelijk, uitvoerbaar rebuildplan in plaats van een vaag "probeer het opnieuw".
Wat er gebeurt zodra je bestelt
Zodra je je gesloten testtrack of build met ons deelt, komt je app zonder extra verzoek in onze beoordelingswachtrij.
Ons team zoekt naar DelegationService, de launcher van androidbrowserhelper, Custom Tabs-gedrag en het ontbreken van native code. Dit zijn dezelfde kenmerken als in de herkenningssectie hierboven.
Meestal adviseren we de WebView-rebuild uit deze gids, zodat je de architectuur aanpast voordat een cyclus van 14 dagen op de beoordeling van gebruikssignalen strandt.
Met de juiste architectuur en 12+ geverifieerde testers die 14 achtereenvolgende dagen actief blijven, zijn beide poorten afgedekt. Zo halen we een eerste-pogingsscore van 99,9%.
Veel ontwikkelaars ontdekken pas na een mislukte cyclus van 14 dagen dat hun TWA het probleem is. Omdat wij het op dag nul herkennen, kun je de architectuur één keer aanpassen, één keer testen en dezelfde build publiceren. Dat voorkomt een maand vol herhaalde afwijzingen.
Hoe PrimeTestLab helpt bij de andere helft van het probleem
Architectuur is de ene helft. De andere helft, waar veel zelfstandige ontwikkelaars vastlopen, is 12 testers vinden die zich echt aanmelden en 14 dagen aangemeld blijven. Dat regelt PrimeTestLab.
Wij leveren geverifieerde, aangemelde testers op echte Android-apparaten. Ze houden je gesloten test gedurende de volledige vereiste actief, zodat één afhaker je reeks van 14 dagen niet breekt. Jij deelt de aanmeldingslink voor de gesloten test. Wij verzorgen uitnodigingen, controleren aanmeldingen, volgen dagelijks de activiteit en bewaken de retentie van 14 dagen. Meer dan 7.400 apps en een eerste-pogingsscore van 99,9%.
Een testdienst dekt de testervereiste. Hij kiest niet de architectuur van je app en doorstaat de thin-wrapperbeoordeling niet voor je. De sterke combinatie is een inhoudelijke WebView-build met 12 echte testers gedurende de volle 14 dagen, zodat geen van beide onderdelen je aanvraag laat stranden.
Huidige pakketten
- Voldoet aan het minimum van Google
- Echte Android-apparaten
- Volledige dekking van 14 dagen
- Maximale veiligheidsmarge
- Beste apparaatspreiding
- Sterkste eerste-pogingsscore
- Veiligheidsbuffer inbegrepen
- Betere apparaatspreiding
- Meer vertrouwen bij de eerste poging
Plus 5% servicekosten · gratis hertest of volledige terugbetaling
Veelgestelde vragen
Waarom wordt mijn TWA-app steeds afgewezen bij de gesloten test?
In onze ervaring met meer dan 7.400 apps krijgen TWA-builds en PWA-wrappers veel vaker de afwijzing "testers were not engaged" dan gewone native apps, ook wanneer testers de app dagelijks gebruikten. Waarschijnlijk komen de gebruikssignalen die Google bij de beoordeling van productietoegang leest zwakker door wanneer webcontent via Chrome Custom Tabs draait in plaats van in het proces van je eigen app. Google publiceert de exacte signalen niet, dus zie dit als onze waarneming en niet als officieel beleid.
Moet ik van TWA naar WebView overstappen of de TWA proberen te herstellen?
In onze ervaring is herbouwen als een gewone WebView-app veel betrouwbaarder dan betere gebruikssignalen uit een TWA proberen te persen. Een WebView laadt je site binnen je eigen app, waardoor activiteit aan je package wordt toegeschreven zoals de beoordeling verwacht. Ben je eenmaal overgestapt, blijf dan bij WebView en publiceer de build die je hebt getest in plaats van voor productie terug te keren naar TWA.
Haalt een WebView-app automatisch de gesloten test?
Nee. Overstappen op WebView verhelpt het probleem met gebruikssignalen dat wij bij TWA-builds zien, maar stelt je niet vrij van het beleid van Google voor spam en minimale functionaliteit. Een WebView die alleen je website omlijst, kan nog steeds als thin wrapper worden afgewezen. Maak er dus een echte app van met native meerwaarde, correcte afhandeling van de terugknop en goede offline- en foutstatussen.
Zet een update tijdens de gesloten test de teller van 14 dagen terug?
Nee. Een update uploaden naar je gesloten testtrack zet de teller van 14 dagen niet terug. De teller blijft lopen, zodat je halverwege de cyclus een TWA-build door een WebView-build kunt vervangen zonder opnieuw te beginnen, zolang je hetzelfde package name behoudt. Google beschouwt actief doorontwikkelen tijdens het testen als normaal.
Waarom toont mijn TWA weinig actieve gebruikers in Play Console?
Sommige ontwikkelaars melden lage aantallen actieve gebruikers voor TWA-builds. Google documenteert de precieze oorzaak niet, maar het lijkt samen te hangen met webcontent die via Chrome Custom Tabs draait in plaats van binnen je app. Een WebView-build rapporteert activiteit doorgaans betrouwbaarder, omdat de schermen in het proces van je eigen app draaien.
Is het veilig om een TWA te testen en in plaats daarvan een WebView-app te publiceren?
De veilige aanpak is dezelfde build testen en publiceren. Test niet eerst een TWA om daarna een andere app te plaatsen. Bouw eerst om naar WebView, doorloop met die WebView-build de gesloten test en publiceer precies die build. Eén app indienen om de beoordeling te halen en die daarna vervangen door een wezenlijk andere app kan volgens het beleid van Google voor misleidend gedrag tot opschorting leiden.
Kan een TWA- of PWA-wrapper ooit worden goedgekeurd op Google Play?
Ja. Wrapper-apps kunnen worden goedgekeurd wanneer ze aan het beleid voor minimale functionaliteit en aan de gesloten testvereiste voldoen. Bij persoonlijke accounts die de gesloten test van 14 dagen met 12 testers moeten doorlopen, zien wij echter consequent dat WebView-builds de beoordeling van gebruikssignalen betrouwbaarder doorstaan dan TWA-builds. Daarom adviseren we in die situatie WebView.
Gebruikt een TWA het WebView-component van Android?
Nee. Dit is het meest voorkomende misverstand. Een TWA gebruikt niet het WebView-component van Android, maar de engine achter Custom Tabs. De URL wordt doorgegeven aan de volledige geïnstalleerde browser van de gebruiker, meestal Chrome, die de pagina schermvullend en zonder browserinterface rendert. Een Android WebView is juist een insluitbare browser die door de app wordt bestuurd en in het eigen appproces draait. Daarom herstelt een WebView-rebuild de toeschrijving van gebruikssignalen.
Waarom toont mijn TWA bovenaan een adresbalk?
Dan is de vertrouwenscontrole via Digital Asset Links mislukt. Chrome verbergt de adresbalk alleen wanneer je site een geldig /.well-known/assetlinks.json-bestand aanbiedt met het package van de app en de SHA-256-vingerafdruk van het ondertekeningscertificaat. Ontbreekt het bestand, geeft het een 404 terug of past de vingerafdruk niet bij de sleutel waarmee Google Play onder Play App Signing tekent, dan opent de app wel maar toont Chrome de adresbalk. assetlinks.json herstellen brengt de schermvullende weergave terug, maar verhelpt niet de afwijzing wegens gebruikssignalen. Daarvoor is de WebView-rebuild nodig.
Hoe weet ik of een app een TWA is?
Inspecteer de build. De betrouwbaarste aanwijzing is een DelegationService die de actie TRUSTED_WEB_ACTIVITY_SERVICE declareert. Alleen TWA-apps doen dat. Meestal zie je ook een LauncherActivity uit com.google.androidbrowserhelper en geen native bibliotheken van Flutter of React Native. Voer op een aangesloten apparaat adb shell dumpsys package <package> | grep -i DelegationService uit om de service te vinden en adb shell pm get-app-links <package> om te controleren of Digital Asset Links slaagt ("verified") of mislukt ("1024").
Kan PrimeTestLab controleren of mijn app een TWA is?
Ja. Zodra je onze testdienst bestelt, inspecteert ons team je build en stelt het vast of het om een TWA of PWA-wrapper gaat. Is dat zo, dan krijg je een concrete aanbeveling voordat de cyclus van 14 dagen verloren gaat. We hebben de afgelopen maanden meer dan 200 TWA-apps gecontroleerd. Na onze aanbevelingen en aanpassingen konden die apps hun testcyclus betrouwbaar voortzetten. Je hoeft zelf geen adb-opdrachten uit te voeren of de APK te inspecteren.
Hoe snel kan PrimeTestLab testers voor mijn gesloten test leveren?
Zodra je gesloten testtrack live en bereikbaar is, melden testers van PrimeTestLab zich doorgaans binnen 4-6 uur aan. Prijzen beginnen bij $19.99 plus 5% servicekosten voor 12 testers. Onze eerste-pogingsscore is 99,9% over meer dan 7.400 apps.
Conclusie
Samenvatting
Blijft een TWA-build bij de gesloten test van Google Play stranden op gebruikssignalen, dan is de duidelijkste oplossing hem herbouwen als een gewone WebView-app en die build naar productie brengen. Keer daarna niet terug naar TWA. Behoud hetzelfde package name, zodat de update je teller van 14 dagen niet terugzet. Maak de app inhoudelijk genoeg voor de beoordeling van minimale functionaliteit. Laat PrimeTestLab de vereiste van 12 testers en 14 dagen afdekken. WebView pakt het signaalprobleem aan, een echte app pakt het thin-wrapperrisico aan en PrimeTestLab levert de testers. Bekijk de prijsplannen →
