How to Configure manifest.json for a PWA
Configuring manifest.json for a PWA decides whether users ever see the “Add to Home Screen” prompt — and what the app looks like once installed. Below: the required fields, the mistakes that quietly break installability, and what APEX already generates for you.
What a Web App Manifest Actually Does
manifest.json is the JSON file that tells the browser how to present your site as an app: its name, icons, colors, and display mode. Without a valid manifest, the browser never offers the install prompt, so your PWA stays a regular webpage with no home-screen icon and no free return visits. For traffic arbitrage that matters directly for retention — an installed icon is a repeat touchpoint that doesn't cost another click.
Required Fields: name, short_name, start_url, display
name is the full label shown during install; short_name is what appears under the icon on the home screen. start_url must point to your landing page with the right parameters (sub ID, click ID) attached, or the installed app will keep opening the wrong entry point. display: standalone or fullscreen removes the browser address bar entirely — for gambling and betting offers that alone makes the experience feel more legitimate.
Icons and the Maskable Format
icons needs at least two sizes — 192×192 and 512×512 — and ideally a purpose: “any maskable” entry for Android. A maskable icon adapts to the system's shape (circle, squircle); a regular one can get clipped awkwardly at the edges. The icon is the first thing a user sees on their home screen, and it directly affects whether they ever open the app again.
Colors, Orientation, and Scope
background_color sets the splash-screen fill shown before the app finishes loading — if it doesn't match your prelander, users get a jarring white or black flash. theme_color tints system UI, like the status bar on Android. orientation: portrait fits most mobile offers, and scope defines which URLs count as “inside” the installed app.
How the Manifest Drives the Install Prompt
Chrome and other Chromium browsers only surface the install prompt when a checklist is met: HTTPS, a valid manifest with correctly sized icons, and a registered service worker. Miss any one of those and the beforeinstallprompt event simply never fires — no “Install” button appears. This is the most common reason a PWA “won't install,” and it's almost never the ad network's fault.
Common Mistakes in Manual Setup
A manifest.json served with the wrong MIME type (not application/json) can get silently ignored by the browser. A relative start_url without the right parameters drops the sub ID at install time, which breaks postback matching later. Icons hosted on a different domain sometimes hit CORS issues, and an overly long name gets truncated into something unreadable by the launcher.
What APEX Generates for You
APEX builds a manifest.json for every PWA automatically — correctly sized and maskable icons, the right MIME headers, colors pulled from your prelander, and a start_url that carries the sub ID and click ID through to install. You don't hand-edit JSON and risk breaking installability over a stray comma.
FAQ
- Do I need to edit manifest.json by hand if my PWA is built in APEX?
- Usually not — APEX generates a valid manifest automatically. Manual edits are only needed for edge cases, like a custom orientation for a specific offer.
- Why does an installed app still look outdated after I update the manifest?
- Browsers cache the manifest and don't refresh it instantly — it usually updates on the next open or reinstall. That's expected behavior, not a misconfiguration.
- How do I check that a manifest is set up correctly?
- Chrome DevTools has an Application → Manifest tab that lists every field and flags errors. Running the page through Lighthouse also checks the PWA install criteria specifically.
- Can one manifest serve multiple offers?
- Technically yes, but it's not a good idea — a distinct start_url and scope per domain keeps install tracking clean and avoids mixing stats between offers.
- What happens if an icon isn't maskable?
- On Android it can get cropped unevenly by the system mask — part of the logo may simply be cut off. For a PWA that's supposed to feel like a real app, that's a visible downgrade.
Cloaking, anti-bot, push, split tests and your own domains — in one service.
Get started free