For an affiliate funnel that sends a user to an offer, a PWA beats an APK on almost every operational measure: it is live in minutes, works on both Android and iOS from one URL, needs no store, no signing and no sideload warning, and attributes installs, launches and pushes to the click with no SDK. An APK only pulls ahead when a Play Store listing is itself your acquisition channel or when you need native device features a browser cannot offer.

This article compares the two formats the way a media buyer experiences them: how the install actually goes on a phone, how far each reaches, how push and re-engagement work, how installs are tracked and attributed, where the operational risks sit, what each costs to run, and where each is the right call.

Quick answer

PWA (progressive web app) APK (Android package, usually a WebView wrapper)
Platforms Android and iOS Android only
Distribution A URL on your domain Play Store, or sideload with security warning
Time to live Minutes Hours to days (build, sign, review)
Install friction One tap (Android), share-menu steps (iOS) Store install, or download plus "unknown sources"
Push notifications Web push, permission on first launch Native push via FCM
Install attribution Click ID baked into the app at serve time Install Referrer or MMP SDK
Updates Publish a new page version, instant New build, new review or new download
Kill risk Domain flagged App removed, developer account banned
Cost to operate Tracker and domains Developer accounts, builds, signing, hosting, often an MMP

What each format actually is

A PWA is a web page served over HTTPS with a manifest, a service worker and an install flow. Installed, it gets an icon, opens full screen without the browser bar, can show a splash, and can receive web push. For affiliates it is an app-style landing page: the installed icon opens the page, which routes the user through the tracker to the offer. The complete PWA guide covers the mechanics in depth.

An APK in this context is almost never a real native app. It is a WebView wrapper: a thin Android shell that loads your landing page or the offer inside an embedded browser, often with a push SDK and sometimes a "cloak" that shows a neutral page to reviewers. It is signed with a developer key and distributed through the Play Store or as a direct download.

Both end up doing the same job: icon on the phone, open, redirect to offer. The differences are in how they get on the phone and what happens when the platform notices.

Reach: who can install what

Android runs both. Chrome and Samsung Internet, the browsers that carry most Android traffic, support PWA installation with a native prompt. Sideloaded APKs trigger the "install unknown apps" permission and a Play Protect scan; store APKs install cleanly but only after review.

iOS runs only the PWA. There is no APK on iPhone, and a native iOS app for gambling or dating goes through App Store review that most affiliates cannot pass or cannot afford to lose. A PWA on iOS requires the user to tap Share and "Add to Home Screen", which is more friction than Android, but it is a path that exists.

In-app browsers hurt both. Traffic from Facebook, Instagram and TikTok opens inside their embedded browsers, which cannot install a PWA and cannot start an APK download in a useful way. A PWA page can detect this and open itself in Chrome or guide the user to Safari, which is a one-tap recovery. An APK download link from an in-app browser is usually a dead end.

The practical result: a PWA campaign reaches Android and iOS from one URL, while an APK campaign is Android only and often Android-with-sideload only.

The install moment

This is where most of the conversion difference lives.

PWA on Android. The user taps Install on your page. Chrome shows a small bottom sheet with the app name and icon. One more tap and the icon is on the home screen. Total: two taps, no download bar, no warning.

PWA on iOS. The page shows a guide: tap the Share icon, scroll, tap Add to Home Screen, tap Add. Four taps, and the user has to find the Share button. Expect a lower install rate than Android, which is normal and should be judged by launches and revenue per install rather than by install rate alone.

APK from the Play Store. Tap Install on the listing, wait for the download, open. Clean, familiar, and the listing's rating and screenshots do some of the selling. This is the one scenario where the APK's install experience is as good as or better than a PWA's.

APK sideloaded. Tap a download link, accept the download, open the file, get the "For your security, your phone is not allowed to install unknown apps" screen, go to settings, allow the source, come back, install, pass Play Protect. Every step loses users, and the security warning kills trust at exactly the wrong moment.

If you cannot be in the Play Store, the PWA wins the install moment outright. If you can be in the store, the store listing competes, but then you inherit the store's rules.

Push and re-engagement

Both formats can send push notifications, and both show the app's name and icon in the notification. The differences:

  • Permission. A PWA asks for notification permission in the browser's or OS's dialog, best done on first launch from a real tap. An APK can ask at first open as well; on Android 13 and later both go through the same OS runtime permission.
  • Delivery. APK push uses Firebase Cloud Messaging through your SDK. PWA push uses the browser's push service, which on Android Chrome is also FCM under the hood. Delivery reliability is comparable on Android.
  • iOS. Only the PWA can push on iPhone, and only when added to the home screen on iOS 16.4 or later.
  • Attribution. A PWA push opens the app, which routes through the tracker with the original click ID, so push-driven revenue lands on the campaign and sub IDs that bought the install. APK push attribution depends on how the SDK and your tracker are wired.
  • Header. On Android, a web push shows the sending domain in the notification header, which Chrome adds and which cannot be removed. A native APK push does not show a domain. Pick a brand-style domain for PWAs for that reason.

For a detailed look at consent flows, opt-in rates and iOS behaviour, read push notifications for affiliate marketing with PWAs.

Tracking and attribution

PWA. The tracker serves the page, so it can write its click ID into the manifest's start URL and into the page. The installed app carries the click ID. Install beacons, launches, push subscriptions and the conversions that follow all attach to that click, which means to the campaign, traffic source, zone, creative and sub IDs you already report on. No SDK, no device identifiers, no probabilistic matching. In BATracker the app's stats tab shows visits, LP views, installs, launches, conversions and revenue per app, and the click log carries the install and launch fields per click. The how to track PWA installs and launches article walks through it.

APK. The shell needs code to report installs and opens. The usual options are an MMP (AppsFlyer, Adjust and similar, with their own pricing), the Play Install Referrer API to recover the click ID at first open, or a custom call from the WebView to your tracker's postback endpoint. Each works, each is more to build and maintain, and sideloaded installs lose the Install Referrer path entirely because there is no Play Store to carry the referrer.

For a redirect-style funnel the PWA's attribution is both simpler and more complete.

Operational risk: domains versus accounts

Every app-style funnel has a single point of failure. For a PWA it is the domain; for an APK it is the developer account and the listing.

PWA. If the domain is flagged by Safe Browsing or by an ad network, new installs stop and existing users see warnings. Recovery is rotation: publish the same app on a fresh verified domain and point the campaign at it. In BATracker that is a duplicate action that copies page versions, icons and push keys to another domain. Existing subscribers remain on the old domain; new traffic uses the new one. The procedure is in PWA domain rotation.

APK in the store. If Google removes the app, every install stops opening the funnel at once, and a developer account ban takes every other app on the account with it. Recovery means a new account, new identity verification, a new build and a new review, which can take weeks and costs real money. Affiliates who run store APKs typically run many accounts and expect regular losses, which is a business model of attrition.

APK sideloaded. No store risk, but Play Protect can flag the package, hosting can be taken down, and the install friction already described caps the funnel.

The PWA's failure mode is cheaper, faster to recover from, and does not require burning identities.

Cost to run

Cost item PWA APK
Developer account None Play Console registration and identity verification per account
Build and signing None Android build toolchain, signing keys, per-version builds
Review time None Days per submission, risk of rejection
Hosting Your tracking domain APK hosting plus the landing page it loads
Push infrastructure Included in a tracker with PWA support FCM setup plus SDK work, or a push vendor
Attribution Included with the tracker MMP fees or custom development
Replacement after a ban or flag New domain, minutes New account, build, review, days to weeks

A PWA's recurring costs are the tracker and the domains. An APK's costs scale with the number of accounts you expect to lose.

Policy exposure

Neither format changes what you are allowed to advertise. Gambling and dating advertising is licensed by market, and ad networks have their own rules on app-style landers, install language and push consent.

The APK route adds a second policy layer: Google Play's developer policies, which prohibit deceptive behaviour, misrepresentation and most unlicensed gambling, and which Google enforces with removals and account terminations. The common practice of showing reviewers a neutral app and users something else is a direct violation and is the reason APK-based affiliate operations churn through accounts.

A PWA operates under your own domain and the ad network's policies only. That is fewer rules, not no rules. Keep app names, ratings and reviews on the page honest and consistent with the offer, request notification permission transparently, and respect platform rules for the sources you run.

Where the APK still wins

  • Store traffic as a channel. If users search the Play Store for your category and your listing can rank there, the store is an acquisition source a PWA cannot replace.
  • Native features. Background location, contacts, Bluetooth, biometrics, full offline apps. Not relevant to a redirect funnel, relevant to real products.
  • Brand perception in some markets. A small share of users distrust anything that is not "from the store". Test this rather than assume it.
  • Unified native push without a domain in the header. If the domain line in web push notifications is a dealbreaker for your creative, native push avoids it.

How to decide

  1. Is iOS traffic material? If yes, PWA. An APK gives you nothing there.
  2. Can you be in the Play Store with this offer, and is the listing itself a traffic source? If both are yes, an APK can be worth the account risk. If either is no, PWA.
  3. Do you need native APIs? If the funnel is page plus redirect, no.
  4. How fast do you need to change landers, offers or domains? Minutes means PWA.
  5. What does a takedown cost you? A domain versus a developer identity.

For the large majority of gambling, betting, dating, nutra and sweepstakes buyers running push, pop, native and in-app traffic, the answers point at the PWA.

Running the test

Set up one campaign with two paths at equal weight: path A sends to the PWA, path B to your plain lander or the direct link. Same creatives, same zones, same offer. Give it a full week, because the PWA side accumulates launches and push revenue over days while the direct link converts immediately. Compare EPC and ROI per path, then by OS. If you also run an APK, add it as a third path only on Android traffic and compare install rate, launch rate and EPC against the PWA path. Split-testing landing pages explains the setup and how to read significance.

Bottom line

A PWA is the app format that fits how affiliate funnels actually work: one URL, both platforms, instant publishing, push, and attribution tied to the click with nothing to install on the build side. An APK is a heavier, Android-only, account-dependent way to reach a similar icon on the phone, and it only earns its cost when the Play Store itself is sending you users. Build the PWA first, test it against your direct link, and reserve APKs for the cases where a store listing is the point.