Engagement perçu comme faible → refus
Activité enregistrée → examen réussi
Réponse rapide
Si votre application TWA échoue encore au test fermé (closed testing) avec le message "testers were not engaged", la correction la plus fiable d’après notre expérience consiste à la reconstruire avec un WebView standard (WebView Android Studio, Capacitor ou Cordova), puis à publier cette version en production, pas la TWA. Conservez le même package name et importez-la comme mise à jour afin que le délai de 14 jours ne reparte pas de zéro. WebView corrige le problème des signaux d’engagement, mais ne vous dispense pas de l’examen des thin wrappers: créez une véritable application. Si le vrai obstacle consiste à obtenir 12 testeurs actifs pendant 14 jours sans interruption, PrimeTestLab s’en charge, dès $19.99, plus 5% de frais de service, avec un démarrage habituel en 4-6 heures.
Ce refus est l’un des plus frustrants pour un développeur indépendant. Vos testeurs étaient réellement actifs. Vous aviez vos 12 participants. Les 14 jours se sont écoulés. Pourtant, Google vous a répondu "your testers were not engaged enough." Si vous avez construit votre application comme une Trusted Web Activity (TWA) ou un wrapper PWA, vous n’imaginez pas ce schéma: parmi les 7 400+ applications que nous avons accompagnées, ces versions rencontrent ce refus bien plus souvent que les applications natives classiques ou WebView. Ce guide explique pourquoi, montre la différence d’architecture déterminante et détaille le passage à WebView sans perdre les jours de test déjà accumulés.
Sommaire
Pourquoi les applications TWA sont-elles refusées au test fermé?
Une Trusted Web Activity affiche votre site au moyen de la surface Custom Tabs de Chrome au lieu de dessiner les écrans dans votre propre application. C’est un moyen rapide de transformer un site ou une PWA en application installable et, pour de nombreuses applications déjà en production, cette architecture fonctionne bien. Le problème apparaît surtout lorsqu’un compte de développeur personnel doit remplir l’exigence obligatoire de 14 jours de test fermé avant d’obtenir un accès en production.
D’après notre expérience auprès de plus de 7 400 applications, les versions TWA et les wrappers PWA reçoivent le refus "testers were not engaged" bien plus souvent que les applications natives classiques, même lorsque les testeurs sont réellement actifs chaque jour. Ce schéma est assez constant pour que nous recommandions désormais d’abandonner la TWA lorsqu’une application doit encore effectuer le test fermé de 14 jours.
Signaux d’engagement faibles
L’activité lue pendant l’examen de Google semble moins nette lorsque le contenu s’exécute dans la surface de Chrome plutôt que dans le processus de votre application. Un usage réel peut alors sembler insuffisant.
Refus "testers not engaged"
C’est le message que nous rencontrons le plus avec les versions TWA. Les testeurs se sont inscrits, ont installé l’application et l’ont utilisée chaque jour, mais l’examen de la demande d’accès en production juge tout de même l’engagement insuffisant.
Peu d’utilisateurs actifs dans Play Console
Certains développeurs constatent aussi un nombre anormalement faible d’utilisateurs actifs dans le tableau de bord pour les versions TWA, ce qui correspond au même comportement de la surface Chrome.
Refus répétés après une nouvelle demande
Puisque l’architecture est la cause profonde, renvoyer la même version TWA aboutit souvent au même refus. Voilà pourquoi un simple correctif suffit rarement, contrairement à une reconstruction.
Une précision importante: Google ne révèle pas les signaux exacts qu’il pondère lors de l’examen d’une demande d’accès en production. Le mécanisme précis présenté ici relève donc de notre observation, pas d’une règle officielle. Méfiez-vous des messages de forum qui prétendent connaître la télémétrie exacte. Nous pouvons en revanche confirmer le résultat observé: les versions TWA sont plus souvent refusées pour manque d’engagement, tandis que des versions WebView comparables franchissent plus régulièrement l’examen.
Ce qu’est réellement une TWA et comment elle est construite
Avant de corriger le refus, il faut comprendre exactement ce que vous avez publié. Une Trusted Web Activity est une application Android qui correspond essentiellement à votre site web exécuté en plein écran dans un véritable moteur de navigateur, sans barre d’adresse ni interface indiquant à l’utilisateur qu’il consulte une page web. Elle ressemble à une application native, mais repose en réalité sur votre site en ligne.
Les TWA sont généralement générées avec le CLI Bubblewrap de Google ou avec PWABuilder, tous deux fondés sur la bibliothèque androidbrowserhelper de Google. Vous indiquez une URL à l’outil, il produit un projet Android, puis vous le signez et importez l’AAB dans Google Play.
Pourquoi les développeurs choisissent une TWA
Une seule base de code
Vous disposez déjà d’un site, idéalement une PWA. Une TWA l’amène sur le Play Store sans réécriture en Kotlin, Flutter ou React Native.
Des mises à jour immédiates
Puisque l’application charge votre site en ligne, vous publiez les modifications en déployant le site, sans mise à jour de l’application ni attente d’un nouvel examen.
Rapide et peu coûteux
Générer une TWA prend quelques minutes, pas plusieurs semaines. Pour une PWA existante, c’est le chemin le plus court vers Android.
Le compromis qui provoque le refus
Ce qui rend la TWA peu coûteuse la fragilise aussi pendant le test fermé:
- Elle a besoin d’Internet. C’est une fenêtre sur votre site. Une connexion faible produit donc une expérience médiocre, sauf si votre PWA gère correctement le mode hors connexion.
- Elle risque un refus sur le Play Store. Le règlement sur les fonctionnalités minimales et le contenu répétitif vise les applications qui ne sont qu’un site dans un wrapper. Une TWA sans véritable capacité native peut être refusée ou supprimée, surtout lors d’une première soumission. Ajoutez des fonctions natives comme les notifications push, un mode hors connexion, l’appareil photo ou des cibles de partage pour rester du bon côté de cette limite.
- Elle peut affaiblir les signaux d’engagement. C’est la raison pour laquelle des comptes de développeur personnels soumis au test fermé de 14 jours continuent de recevoir le message "testers not engaged".
L’idée reçue: une TWA n’est PAS un WebView
C’est le point que la plupart des articles expliquent mal. La précision est importante, car elle change la façon de corriger le problème. Une TWA n’utilise pas le composant WebView d’Android.
"Une TWA n’est qu’un wrapper WebView"
Le WebView d’Android est un navigateur intégrable et allégé, contrôlé par l’application, avec moins de fonctions et une isolation de sécurité plus limitée. Une TWA ne l’utilise pas.
Une TWA utilise le moteur de Custom Tabs
Elle transmet votre URL au navigateur complet installé sur l’appareil, généralement Chrome, et lui demande d’afficher la page en plein écran sans interface. Il s’agit du véritable moteur du navigateur, pas d’un composant intégré.
Comme une TWA utilise le moteur de Custom Tabs, elle bénéficie du même moteur de rendu, du même moteur JavaScript et du même bac à sable de sécurité que Chrome, ainsi que des cookies et du stockage partagés avec Chrome. Un utilisateur déjà connecté sur le web reste donc connecté. Vous profitez aussi des mises à jour automatiques du navigateur et d’une prise en charge complète de la plateforme web. Ces atouts sont puissants pour une application déjà publiée, mais ils signifient également que vos écrans s’exécutent hors processus, dans Chrome, et non dans votre propre application. C’est l’origine probable de l’affaiblissement des signaux d’engagement et du faible nombre d’utilisateurs actifs.
Le lancement, étape par étape
Android lance le LauncherActivity de la TWA, fourni par androidbrowserhelper.
La page s’ouvre dans un Custom Tab en plein écran, sans interface Chrome: aucune barre d’adresse, aucun onglet, aucun élément du navigateur.
C’est le sens de "Trusted" dans Trusted Web Activity. Si l’application ne peut pas prouver qu’elle est associée au site, la barre d’adresse reste visible et l’illusion d’une application native disparaît.
La relation de confiance: Digital Asset Links
Chrome ne retire la barre d’adresse que si l’application peut prouver son association avec le site au moyen de Digital Asset Links. L’application déclare le site qu’elle représente, et ce site doit fournir un fichier /.well-known/assetlinks.json indiquant le package de l’application et l’empreinte SHA-256 du certificat de signature.
[{
"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
]
}
}]
L’application déclare le site
Le manifeste indique le domaine https représenté par l’application.
Le site fournit assetlinks.json
Le fichier répertorie le package name et l’empreinte SHA-256.
Chrome compare les deux côtés
L’empreinte doit correspondre au certificat de signature de l’application.
Si les testeurs voient une barre d’adresse en haut de votre "application", votre fichier assetlinks.json est absent, renvoie une erreur 404 ou contient une mauvaise empreinte SHA-256. Corrigez le fichier et vérifiez que l’empreinte correspond bien à la clé réellement utilisée par Google Play avec Play App Signing. Cela rétablit uniquement le plein écran. Cette correction ne résout pas le refus lié aux signaux d’engagement, qui nécessite une reconstruction avec WebView.
Le parcours des signaux d’engagement: TWA ou WebView
Le moyen le plus simple de comprendre le refus consiste à suivre l’activité réelle d’un testeur. Dans une TWA, vos écrans se trouvent une couche plus loin de l’application, dans la surface Custom Tabs de Chrome. Dans une application WebView, les mêmes écrans s’exécutent dans le processus de votre propre application et sont directement attribués à votre package. Cette différence détermine la netteté avec laquelle l’activité est enregistrée.
Où l’activité d’un testeur est-elle attribuée?
Un WebView charge l’URL de votre site dans votre propre application. L’activité est donc attribuée à votre package comme prévu par l’examen de Google. Dans une TWA, le Custom Tab intermédiaire semble diluer le signal. Un faible nombre de visites dans vos propres outils d’analyse web, Google Analytics ou Firebase côté web, ne signifie pas nécessairement que Google ne détecte aucune utilisation. Pour le test fermé, le résultat pratique reste toutefois le même: reconstruire avec WebView est la correction la plus fiable.
Comment reconnaître une TWA de l’extérieur et de l’intérieur
Vous ne savez pas si l’application que vous avez publiée, ou fait réaliser par un prestataire, est réellement une TWA? Voici comment le confirmer, d’abord visuellement, puis avec certitude à partir de l’APK ou d’un appareil connecté.
Indices visuels rapides pour l’utilisateur
- Elle se comporte exactement comme le site web, puisqu’elle affiche ce site.
- Si elle est mal configurée, une barre d’adresse apparaît en haut. C’est un indice décisif lié au problème assetlinks décrit plus haut.
- Le contenu change sans mise à jour de l’application dans le Play Store.
Indices techniques décisifs dans l’APK ou sur l’appareil
| Indice | Signification |
|---|---|
Un DelegationService qui déclare l’action TRUSTED_WEB_ACTIVITY_SERVICE | L’empreinte la plus fiable: seules les TWA la déclarent. |
LauncherActivity, souvent ManageDataLauncherActivity, issu de com.google.androidbrowserhelper | Le lanceur de Bubblewrap. |
| Un domaine https validé dans la configuration des liens de l’application (assetlinks.json fonctionne) | Le site affiché par la TWA. |
Pas de libflutter.so, pas de index.android.bundle, peu de code natif | Il s’agit d’un wrapper web, pas d’une version Flutter, React Native ou native. |
Confirmez avec adb
Sur un appareil connecté ou un émulateur, deux commandes suffisent:
# 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)
Si vous voyez un DelegationService et un LauncherActivity provenant d’androidbrowserhelper, vous examinez presque certainement une TWA. Si vous trouvez plutôt un MainActivity propre à l’application, des bibliothèques natives .so et aucun service de délégation, il s’agit d’une véritable application native, ou d’une application Flutter ou React Native. Le problème de signaux d’engagement décrit ici ne s’applique alors pas.
TWA ou WebView pour le test fermé: comparaison directe
Les deux architectures enveloppent du contenu web. Pour réussir le test fermé de 14 jours, la différence essentielle tient à l’endroit où ce contenu s’exécute et à la façon dont son activité est attribuée. Voici leur comparaison sur les critères qui déterminent si vous atteignez la production en un seul cycle.

TWA / wrapper PWA
Idéal pour: les applications déjà acceptées qui ne doivent plus passer le test fermé.
WebView standard
Idéal pour: les applications qui doivent effectuer le test fermé de 14 jours avec 12 testeurs.
Vérifiez la compatibilité de votre framework
WebView se comporte différemment de Chrome sur ordinateur. Choisissez votre environnement pour voir le réglage qui provoque le plus souvent un problème au lancement.
Activez DOM Storage
SPA / routage côté clientLes applications monopages utilisent localStorage et sessionStorage pour le routage côté client et l’état de connexion. Sans settings.domStorageEnabled = true, le routage web échoue au lancement: les testeurs voient un écran vide ou un chargement bloqué, ce qui peut être interprété comme "not engaged".
Conservez aussi javaScriptEnabled = true et gérez la navigation interne avec un WebViewClient afin que les liens profonds ne s’ouvrent pas dans Chrome.
Déclarez les autorisations natives pour les contenus intégrés et les imports
Outil no-codeWebView gère les contenus iframe différemment de Chrome sur ordinateur, et les outils no-code en dépendent souvent. Déclarez nativement les autorisations d’import de fichiers dans AndroidManifest.xml et reliez WebChromeClient.onShowFileChooser. Sinon, les formulaires et les imports de médias échouent sans message.
Ajoutez <uses-permission android:name="android.permission.INTERNET"/> et, si vous acceptez des médias, les autorisations d’accès à l’appareil photo et au stockage. Demandez-les ensuite au moment de l’utilisation.
Ajoutez un cache hors connexion et une véritable valeur native
Statique / CMSUn site statique chargé tel quel dans un WebView est l’exemple même du thin wrapper. Configurez cacheMode = LOAD_DEFAULT pour offrir une solution hors connexion exploitable, ajoutez un écran d’erreur et de nouvelle tentative aux couleurs de votre marque, puis intégrez au moins une fonction native comme les notifications push, une cible de partage ou des raccourcis sur l’écran d’accueil.
Ces ajouts transforment un simple export statique ou CMS en application capable de franchir l’examen des fonctionnalités minimales.
La solution: construisez une application WebView standard
Au lieu de réparer une TWA par petites touches ou de tenter d’en renforcer les signaux, la méthode la plus propre consiste à reconstruire l’application autour d’un composant WebView, puis à publier cette version. Trois solutions courantes permettent toutes de charger votre site dans votre propre application:
La solution la plus directe. Placez un WebView dans votre activité principale, indiquez votre URL, puis activez JavaScript et DOM Storage. Vous gardez un contrôle maximal sans framework supplémentaire.
Si votre application existe déjà comme projet web ou PWA, Capacitor l’enveloppe dans une structure WebView native et fournit des plugins natifs pour l’appareil photo, les notifications push et le stockage. C’est une évolution nette depuis une PWA, sans le problème de signaux propre aux TWA.
Une solution plus ancienne, mais encore viable. Le principe reste le même: votre contenu web s’exécute dans le WebView de l’application, pas dans la surface Custom Tabs de Chrome.
La configuration WebView minimale à copier
Le cœur est compact: un WebView charge votre URL avec JavaScript et le stockage activés, conserve la navigation dans l’application au lieu de l’envoyer vers Chrome et gère le bouton Retour comme l’attend l’examen de Google. Choisissez votre langage dans les onglets, puis copiez la base:
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
Les trois ajouts nécessaires pour franchir l’examen
Un WebView rudimentaire qui appelle uniquement loadUrl() reste un thin wrapper. Les trois ajouts suivants le transforment en véritable application et empêchent les testeurs de rencontrer des écrans vides:
Reliez OnBackPressedCallback, comme dans l’extrait ci-dessus, pour que Retour parcoure d’abord l’historique web et ne ferme l’application que lorsqu’il ne reste aucune page. Sans cette gestion, un seul appui ferme tout et donne l’impression d’une application défectueuse, signe immédiat d’un thin wrapper.
Implémentez onReceivedError dans votre WebViewClient pour afficher un véritable écran hors connexion avec un bouton de nouvelle tentative, au lieu d’une page blanche. Un écran vide lorsque le réseau tombe est le moyen le plus rapide de ressembler à un thin wrapper et d’échouer à l’examen.
Notifications push avec FCM, cache hors connexion, cible de partage, import de fichiers via WebChromeClient.onShowFileChooser ou intégration avec l’appareil: ajoutez une fonction qui rend l’application nettement plus utile que l’URL qu’elle charge. C’est ce qui permet de respecter le règlement sur les fonctionnalités minimales.
Si vous ne souhaitez pas écrire le code Android à la main, Capacitor enveloppe votre projet web existant dans une structure WebView native. Il fournit la gestion du bouton Retour, un écran de démarrage natif et un système de plugins pour les notifications push, l’appareil photo et le système de fichiers. C’est le passage le plus direct d’une PWA à WebView, sans le comportement Custom Tabs de la TWA. Vous obtenez à la fois l’attribution in-process de WebView et des fonctions natives faciles à ajouter.
Publiez l’application que vous avez testée. Construisez l’application WebView, exécutez cette version dans le test fermé, puis publiez-la en production. Ne testez pas une architecture avant de la remplacer par une application différente. Soumettre une version uniquement pour franchir l’examen puis la remplacer en production enfreint les règles de Google sur les comportements trompeurs et peut entraîner la suspension de l’application ou du compte. Le passage définitif à WebView évite ce risque, car vous publiez exactement ce que vous avez testé.
Comment changer sans remettre à zéro le délai de 14 jours
Si votre test est déjà en cours, vous n’avez pas à repartir de zéro. Le compteur de 14 jours survit à une mise à jour tant que vous conservez le même canal de test et le même package name. Voici la migration sûre:
Conservez exactement le même applicationId que la TWA actuelle. Un package name différent crée une nouvelle fiche d’application et impose un nouveau cycle de 14 jours.
versionCode d’au moins 1 par rapport à la version TWA, sinon Play Console refusera l’import comme doublon.Assurez un chargement fiable, une bonne gestion du bouton Retour d’Android, des états hors connexion et d’erreur adaptés et aucun écran vide. C’est aussi ce qui protège votre application lors de l’examen des thin wrappers.
Ouvrez votre canal de test fermé, créez une nouvelle version et importez l’AAB WebView. Ne créez pas un nouveau canal ni une nouvelle application.
Vos testeurs inscrits passent simplement à la version WebView et poursuivent le test. Le délai continue de courir tant qu’au moins 12 testeurs restent actifs.
L’envoi d’une mise à jour dans votre canal de test fermé ne remet pas à zéro le compteur de 14 jours. Le délai continue, et Google considère les itérations pendant le test comme une partie normale du processus. Vous pouvez donc passer de TWA à WebView au milieu du cycle sans perdre les jours déjà accumulés.
Une application WebView reste-t-elle un "thin wrapper"?
C’est le piège des développeurs qui voient WebView comme une solution magique. Passer de TWA à WebView corrige le problème des signaux d’engagement, mais ne vous dispense pas du règlement de Google relatif au spam et aux fonctionnalités minimales. Un WebView qui se limite à encadrer votre page d’accueil peut encore être refusé comme thin wrapper, c’est-à-dire comme simple enveloppe d’un site sans véritable valeur native, tout comme une TWA rudimentaire.
Considérez ces contrôles comme deux portes distinctes. Un service de test ou une reconstruction avec WebView peut vous aider à franchir la première, mais pas la seconde.
L’exigence de test fermé
Un contrôle du nombre et de la durée: au moins 12 testeurs inscrits et actifs pendant 14 jours sans interruption. WebView rend l’engagement plus lisible, et PrimeTestLab fournit les testeurs.
Nombre + duréeFonctionnalités minimales, thin wrapper
Une décision de qualité et de conformité: l’application apporte-t-elle une véritable valeur, ou encadre-t-elle simplement un site? Seule une application substantielle franchit cette porte. Aucun service ni changement d’architecture ne peut le faire à votre place.
Règles + qualitéL’objectif n’est donc pas simplement de choisir WebView plutôt que TWA. Il faut une application WebView suffisamment utile et dotée d’un vrai comportement natif. En pratique:
Retour doit parcourir l’historique web, puis fermer proprement l’application, sans laisser le testeur devant un écran vide ni interrompre brutalement l’application.
Affichez un véritable écran hors connexion avec une option de nouvelle tentative. Une page blanche lorsque le réseau tombe est le moyen le plus rapide de ressembler à un thin wrapper.
Notifications push, expérience adaptée à l’écran d’accueil, intégration avec l’appareil, cache hors connexion: ajoutez une fonction qui rend l’application nettement plus utile que l’URL qu’elle charge.
La règle contre la substitution trompeuse
Ne testez pas une application substantielle avant de la remplacer en production par une application fondamentalement différente ou plus rudimentaire. C’est exactement le comportement trompeur pour lequel Google suspend des comptes.
Choisissez plutôt l’architecture WebView, construisez une application substantielle, testez cette version et publiez exactement la même. Conservez-la pendant le test et en production.
Vous souhaitez une liste complète des motifs de refus liés à la qualité? Notre guide explique pourquoi un test fermé est refusé et détaille les problèmes de conformité et d’examen qui dépassent l’engagement.
Vous ignorez si votre application est une TWA? Nous la contrôlons dès la commande
Vous n’avez pas à exécuter de commandes adb ni à fouiller dans votre APK. PrimeTestLab peut confirmer pour vous si votre application est une TWA. Dès que vous commandez notre service de test, notre équipe inspecte votre version, détermine s’il s’agit d’une TWA ou d’un wrapper PWA et, le cas échéant, vous indique précisément ce qu’il faut corriger avant de perdre 14 jours sur une architecture susceptible d’être signalée pour son engagement.
Nous avons inspecté et conseillé plus de 200 applications TWA au cours des derniers mois. Après nos recommandations et les corrections apportées, ces applications ont pu poursuivre leur cycle de test de manière fiable. Lorsque nous détectons une TWA, vous recevez un plan de reconstruction clair et directement applicable, pas un vague "réessayez".
Ce qui se passe dès votre commande
Dès que vous partagez votre canal de test fermé ou votre version avec nous, l’application entre dans notre file d’examen. Aucune demande supplémentaire n’est nécessaire.
Notre équipe repère les empreintes classiques: DelegationService, le lanceur androidbrowserhelper, le comportement de Custom Tabs et l’absence de code natif. Ce sont les mêmes indices que ceux présentés dans la section de détection.
Vous recevez une recommandation concrète, généralement la reconstruction avec WebView décrite ici, afin de corriger l’architecture avant de perdre un cycle de 14 jours sur une version qui échouerait à l’examen de l’engagement.
Avec la bonne architecture et 12+ testeurs vérifiés actifs pendant 14 jours consécutifs, les deux portes sont couvertes. C’est ainsi que nous maintenons un taux de réussite de 99.9%.
La plupart des développeurs ne découvrent que la TWA est en cause qu’après un premier cycle de 14 jours refusé, puis doivent recommencer. Comme nous la détectons dès le premier jour, vous corrigez l’architecture une fois, effectuez le test une fois et publiez une fois. C’est la différence entre avancer en deux semaines et subir un mois de refus répétés.
Comment PrimeTestLab vous aide à résoudre l’autre moitié du problème
L’architecture ne représente qu’une moitié du problème. L’autre, qui bloque la plupart des développeurs indépendants, consiste à obtenir 12 testeurs qui s’inscrivent réellement au test et restent actifs pendant 14 jours sans interruption. C’est ce que prend en charge PrimeTestLab.
Nous fournissons des testeurs inscrits et vérifiés sur de véritables appareils Android. Ils maintiennent votre test fermé actif pendant toute la durée requise, afin qu’un seul abandon ne rompe pas la série de 14 jours. Vous partagez le lien partageable; nous gérons les invitations, la confirmation des inscriptions, le suivi quotidien de l’engagement et la présence pendant 14 jours. Plus de 7 400 applications accompagnées, avec un taux de réussite au premier essai de 99.9%.
Prix indiqués plus 5% de frais de service
Un service de test couvre l’exigence relative aux testeurs. Il ne choisit pas l’architecture de votre application et ne franchit pas à votre place l’examen des thin wrappers. La bonne combinaison associe une version WebView substantielle à 12 vrais testeurs pendant les 14 jours complets. Ainsi, aucune des deux composantes n’est la cause du refus.
Plans actuels
- Minimum de Google couvert
- Véritables appareils Android
- Couverture complète de 14 jours
- Marge de sécurité maximale
- Plus grande diversité d’appareils
- Meilleure fiabilité au premier essai
- Marge de sécurité incluse
- Plus grande diversité d’appareils
- Confiance accrue dans le résultat
+5% de frais de service · Nouveau test gratuit ou remboursement intégral
Questions fréquentes
Pourquoi mon application TWA reste-t-elle refusée au test fermé?
D’après notre expérience avec plus de 7 400 applications, les versions TWA et les wrappers PWA reçoivent le refus "testers were not engaged" bien plus souvent que les applications natives classiques, même lorsque les testeurs sont actifs chaque jour. La cause probable est l’affaiblissement des signaux d’engagement lus lors de l’examen de la demande d’accès en production, car le contenu web s’exécute dans la surface Custom Tabs de Chrome et non dans le processus de votre application. Google ne documente pas publiquement les signaux précis, il s’agit donc de notre observation et non d’une règle officielle.
Dois-je passer de TWA à WebView ou simplement essayer de corriger la TWA?
D’après notre expérience, reconstruire l’application avec un WebView standard est beaucoup plus fiable que de tenter de renforcer les signaux d’engagement d’une TWA. Un WebView charge votre site dans votre propre application, de sorte que l’activité est attribuée à votre package comme prévu lors de l’examen. Une fois le passage effectué, conservez WebView et publiez la version testée au lieu de revenir à la TWA en production.
Une application WebView réussit-elle automatiquement le test fermé?
Non. Passer à WebView élimine le problème de signaux d’engagement que nous observons avec les versions TWA, mais ne vous dispense pas du règlement de Google relatif au spam et aux fonctionnalités minimales. Un WebView qui se contente d’encadrer votre site peut encore être refusé comme thin wrapper. Créez donc une véritable application avec une valeur native, une bonne gestion du bouton Retour et des états hors connexion et d’erreur adaptés.
Mettre à jour mon application pendant le test fermé remet-il à zéro le délai de 14 jours?
Non. Importer une mise à jour dans votre canal de test fermé ne remet pas à zéro le compteur de 14 jours. Le délai continue de courir: vous pouvez remplacer une version TWA par une version WebView au milieu du cycle sans repartir de zéro, à condition de conserver le même package name. Google considère les itérations pendant le test comme normales.
Pourquoi ma TWA affiche-t-elle peu d’utilisateurs actifs dans Play Console?
Certains développeurs constatent un faible nombre d’utilisateurs actifs pour leurs versions TWA. Google n’en documente pas la cause exacte, mais le phénomène semble lié au fait que le contenu web s’exécute dans la surface Custom Tabs de Chrome plutôt que dans l’application. Une version WebView comptabilise généralement l’activité plus fidèlement, car les écrans s’exécutent dans votre propre processus.
Puis-je tester une TWA puis publier une application WebView à la place?
La méthode sûre consiste à tester et à publier la même version. Reconstruisez d’abord l’application avec WebView, exécutez cette version dans le test fermé, puis publiez exactement cette version en production. Soumettre une application uniquement pour réussir l’examen avant de la remplacer par une autre, fondamentalement différente, expose votre compte à une suspension au titre des règles de Google sur les comportements trompeurs.
Un wrapper TWA ou PWA peut-il être accepté sur Google Play?
Oui. Un wrapper peut être accepté s’il respecte le règlement sur les fonctionnalités minimales et remplit l’exigence de test fermé. Toutefois, pour les comptes de développeur personnels soumis au test fermé de 14 jours avec 12 testeurs, nous constatons régulièrement qu’une version WebView franchit l’examen de l’engagement plus sûrement qu’une TWA. C’est pourquoi nous recommandons WebView dans cette situation.
Une TWA utilise-t-elle le composant WebView d’Android?
Non, c’est l’idée reçue la plus courante. Une TWA n’utilise pas le WebView d’Android. Elle s’appuie sur le moteur de Custom Tabs et confie l’URL au navigateur complet installé sur l’appareil, généralement Chrome, afin de l’afficher en plein écran sans interface. Elle bénéficie ainsi du moteur de rendu, du moteur JavaScript et du bac à sable de sécurité de Chrome, ainsi que de ses cookies et de son stockage partagés. À l’inverse, un WebView Android est un navigateur intégrable contrôlé par l’application et exécuté dans son processus. C’est pourquoi reconstruire avec WebView corrige l’attribution de l’engagement.
Pourquoi ma TWA affiche-t-elle une barre d’adresse en haut?
Cela signifie que la relation de confiance Digital Asset Links n’a pas été validée. Chrome ne masque la barre d’adresse que si votre site fournit un fichier /.well-known/assetlinks.json valide qui indique le package de l’application et l’empreinte SHA-256 du certificat de signature. Si le fichier manque, renvoie une erreur 404 ou contient une empreinte différente de la clé utilisée par Google Play avec Play App Signing, l’application s’ouvre quand même, mais Chrome affiche sa barre d’adresse. Corriger assetlinks.json rétablit le plein écran, mais ne résout pas le refus lié à l’engagement pendant le test fermé. Pour cela, il faut reconstruire avec WebView.
Comment savoir si une application est une TWA?
Inspectez la version. L’indice le plus fiable est un DelegationService qui déclare l’action TRUSTED_WEB_ACTIVITY_SERVICE, propre aux TWA. Vous verrez aussi généralement un LauncherActivity issu de com.google.androidbrowserhelper et aucune bibliothèque native Flutter ou React Native. Sur un appareil connecté, exécutez adb shell dumpsys package <package> | grep -i DelegationService pour trouver le service, puis adb shell pm get-app-links <package> pour déterminer si Digital Asset Links est validé ("verified") ou en échec ("1024").
PrimeTestLab peut-il me dire si mon application est une TWA?
Oui. Dès que vous commandez notre service de test, notre équipe inspecte votre version, confirme s’il s’agit d’une TWA ou d’un wrapper PWA et, le cas échéant, vous adresse une recommandation précise avant que le délai de 14 jours ne soit perdu. Nous avons examiné plus de 200 applications TWA ces derniers mois et, après nos recommandations et les corrections apportées, elles ont pu poursuivre leur cycle de test de façon fiable. Vous n’avez pas à exécuter adb ni à inspecter vous-même l’APK.
Sous quel délai PrimeTestLab peut-il fournir des testeurs pour mon test fermé?
Lorsque votre canal de test fermé est actif et accessible, les testeurs de PrimeTestLab commencent généralement à s’inscrire au test dans un délai de 4-6 heures. Les tarifs commencent à $19.99 pour 12 testeurs, plus 5% de frais de service, avec un taux de réussite de 99.9% sur plus de 7 400 applications.
Conclusion
À retenir
Si une version TWA continue d’échouer au test fermé Google Play à cause d’un refus lié à l’engagement, la correction la plus propre consiste à la reconstruire avec un WebView standard, puis à publier cette version sans revenir ensuite à la TWA. Conservez le même package name afin que la mise à jour ne remette pas à zéro le délai de 14 jours. Rendez l’application assez substantielle pour franchir l’examen des fonctionnalités minimales, puis laissez PrimeTestLab couvrir l’exigence de 12 testeurs pendant 14 jours afin que le test ne soit pas la cause du refus. WebView résout le problème d’engagement, une véritable application répond à l’examen des thin wrappers, et PrimeTestLab fournit les testeurs. Voir les plans →
