Skip to content

Store policy

Published

Four stores matter for a PWA, and each one answers a different question: Google Play and the Microsoft Store accept a PWA when it is packaged in the store’s own container and passes a written policy, the Apple App Store has no PWA route at all, and the Galaxy Store takes a bare URL by email. This page records the policy sections that decide acceptance; the dated per-store verdicts live in the policy dimension.

A store does not read your service worker or manifest directly. It sees a package (an Android App Bundle, an MSIX bundle) or a URL, and it applies the same review text it applies to native apps. The sections below name the text that bites for a PWA.

The package is a Trusted Web Activity: an Android app whose single activity opens your origin in the user’s Chrome (72 and later) without browser UI. Ownership is proven by a Digital Asset Links statement at /.well-known/assetlinks.json that names the app’s package and signing-certificate fingerprint. Two policy texts decide acceptance:

  • The Spam policy, section “Webviews and Affiliate Spam”: “We don’t allow apps whose primary purpose is to drive affiliate traffic to a website or provide a webview of a website without permission from the website owner or administrator.” A TWA of your own origin carries that permission in the asset-links file; a TWA of someone else’s site does not.
  • The Payments policy, section 2: apps “requiring or accepting payment for access to in-app features or services” must use Google Play’s billing system “unless Section 3, 8, or 9 applies”. Section 3 excludes physical goods, physical services, bills, peer-to-peer payments, and gambling. The web side of this requirement is the Digital Goods API, available in Chrome 101 and later.

Chrome 86 added quality criteria that turn three web failures into native crashes recorded in Android Vitals: Digital Asset Links verification failing at launch, an offline request that does not receive an HTTP 200, and a 404 or 5xx response inside the app. The first is a signing problem; the other two are handled by a service worker that answers offline navigations and error responses from cache.

The Store takes the PWA itself, not a wrapper. In Partner Center you reserve a name under New product > MSIX or PWA app, read Package ID, Publisher ID, and Publisher display name from Product management > Product Identity, and paste them into PWABuilder, which returns a .zip holding an .msixbundle and a .classic.appxbundle. Microsoft states review “typically within 24 to 48 hours”. Microsoft Store Policies version 7.20 (published 2026-09-15, effective 2026-10-22) carries two sections that touch a PWA:

  • 10.1.1: “Products submitted as web apps must be published by the domain or website owner.”
  • 10.8.1: only games and products offered on Xbox consoles must use the Store in-product purchase API; “non-game products made available on PC devices may either use a secure third-party purchase API or the Microsoft Store in-product purchase API”.

Code changes ship through your web server with no resubmission. A manifest change (icon, name, file_handlers, protocol_handlers, share_target) requires a new package, because the manifest is copied into the Windows package.

There is no PWA packaging route. Guideline 4.2 (Minimum Functionality) reads: “Your app should include features, content, and UI that elevate it beyond a repackaged website”, and 4.2.2 rules out apps that are “web clippings, content aggregators, or a collection of links”. The guidelines were last revised on 2026-06-08 (Apple Developer News). The iOS route for a PWA is Safari’s Add to Home Screen, outside the store; a native shell around a WKWebView is reviewed as a native app against 4.2.

Samsung announced web app listings on 2019-10-24: “To add your web app to the Samsung Galaxy Store send us the URL to [email protected]”, with listings “only visible in the US Galaxy Store” at launch. No public developer documentation beyond that post was found in 2026-10, so treat the route as manual onboarding, not self-service submission.

Store What you submit Ownership proof In-app digital goods rule
Google Play AAB with a TWA assetlinks.json fingerprint match Play billing (Payments policy §2) via Digital Goods API
Microsoft Store .msixbundle + .classic.appxbundle Policy 10.1.1: domain owner publishes Store API only for games and Xbox (10.8.1)
Apple App Store No PWA route n/a n/a
Galaxy Store URL by email Licensing agreement for logo use Not documented

Microsoft also documents the opposite side of the Store route: a Store-installed PWA has a hard-coded start_url on the principal domain, and a redirect to a locale domain such as contoso.co.ke is treated as out of scope, so Edge shows the URL and page title at the top of the window. A browser-installed PWA installs from whichever domain the user landed on and does not show that bar.

← Back to the Ecosystem overview.