Build my web app

Publishing a PWA to Google Play as a Trusted Web Activity: the checklist

Everything between "my site installs from Chrome" and "my app is live on Google Play": PWA readiness, assetlinks.json, the AAB, listing assets, Data safety, closed testing and the review points that catch TWAs specifically.

1. Is the PWA actually ready?

A Trusted Web Activity is a thin Android shell that opens your web app in Chrome, full-screen, with no browser UI. Anything wrong with the web app is wrong with the Play app. Before you touch the Play Console:

2. A Google Play developer account

US$25 one-time. Google asks for identity verification, and organisations need a D-U-N-S number. Personal accounts created since late 2023 must run a closed test with at least 12 testers opted in for 14 continuous days before they can apply for production access — budget for that in your launch date. Organisation accounts skip this requirement.

This is the step that makes a TWA "trusted". You host a JSON file at https://yourdomain.com/.well-known/assetlinks.json that lists your Android package name and the SHA-256 fingerprint of the signing certificate. Chrome checks it on launch; if it fails, the app still opens but shows a browser bar, which defeats the purpose.

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.myapp",
    "sha256_cert_fingerprints": ["AA:BB:CC:…"]
  }
}]

The fingerprint that matters is the one Google Play signs with, not your upload key. After your first upload, open Play Console → Test and release → Setup → App signing and copy the SHA-256 from the App signing key certificate section. The PWA Builder writes an assetlinks.json for you with the upload key; replace the fingerprint with Play's once you have it, and you can list both while testing.

4. Build the App Bundle

Google Play accepts new apps only as an Android App Bundle (.aab), not an APK. The PWA Builder's Android option gives you a signed TWA APK for on-device testing plus the starter assetlinks.json; for the AAB itself, run Bubblewrap or PWABuilder against the same manifest (free, local tooling), or — if a WebView-based listing is acceptable — use the Android app builder's APK + AAB bundle (US$5). Whichever produces the bundle, the same rules apply:

5. Store listing assets

AssetSpecTool
App icon512×512 PNG, 32-bit, under 1 MB, no transparency neededIcon resizer
Feature graphic1024×500 JPG or 24-bit PNG; shown when you add a promo videoFeature graphic maker
Phone screenshots2 to 8; JPG or 24-bit PNG; 320–3840 px on each side; max 2:1 aspectScreenshot frames
Title30 charactersListing text writer
Short description80 characters
Full description4,000 characters
Privacy policy URLRequired; must be a live page on your domain

Screenshots should show the app as it looks installed — full-screen, no browser bar. Take them from the TWA build, not from Chrome.

6. Data safety, content rating and policy declarations

Three questionnaires in Play Console, all mandatory:

7. Closed testing

Create a closed testing track, upload the AAB, add testers by email or Google Group, and share the opt-in link. Testers must install from Play, not from an APK. During the 14 days:

8. What review looks at on a TWA specifically

9. After launch

Because the app is your website, content changes ship instantly with no Play update. You only release a new AAB when you change the icon, colours, package configuration or need a new target SDK level — Google raises that bar every year, so expect one maintenance release annually. Keep assetlinks.json in place forever; removing it turns every installed copy into a browser tab overnight.

Ready to build the bundle? The PWA Builder generates the manifest, service worker, icons, a TWA test APK and a starter assetlinks.json in one pass.