Monetization requirements
Monetization runs through FRVR’s modules. Channels that disallow it report ads / IAP as unsupported.
Use FRVR for ads and IAP
Section titled “Use FRVR for ads and IAP”- SHOULD show ads through
FRVR.ads. - SHOULD offer purchases through
FRVR.iap. - MUST NOT bundle a third‑party ad SDK (AdSense, AdMob, IronSource, AppLovin, Unity Ads, etc.). If FRVR doesn’t support a provider you need, ask FRVR to add it.
- MUST NOT ship a third‑party payment SDK or webview redirect (Stripe, PayPal, native billing called directly).
- MUST NOT call out to off‑platform monetization from the canvas (affiliate links, “buy on our site”, tip jars).
Gate on isReady / isSupported
Section titled “Gate on isReady / isSupported”- MUST NOT show “Watch ad” / “Buy” buttons when the capability isn’t available. Use
FRVR.ads.isReady(type),FRVR.ads.isSupported(type),FRVR.iap.isReady(). Hide the entry point; don’t show a disabled button. Reviewers treat disabled buttons as broken features. - MUST NOT retry ad or IAP calls in a tight loop.
Rewarded ads
Section titled “Rewarded ads”- The reward MUST only be granted on
AdShowResult.COMPLETED. - MUST NOT offer rewards that materially change game balance (energy refills are fine; permanent stat upgrades are not).
IAP catalog
Section titled “IAP catalog”- MUST drive titles, descriptions, and prices from
FRVR.iap.getCatalog(). Hard‑coded prices cause refund disputes. - MUST support restoring purchases on fresh install / new device. See Recovering from crashes.
- MUST persist consumable balances in
FRVR.cloudStorage. - MUST NOT ship IAP without cloud storage. If
FRVR.cloudStorageisn’t available on the channel, don’t enable IAP.