Skip to content

Channels reference

A channel is the platform you’re distributing on — Facebook Instant, Google Play, iOS, the open web, Samsung Instant Play, etc. Each channel has its own backend for ads, billing, auth, etc., and FRVR SDK hides those differences behind one API.

ChannelDistribution targetNotes
webOpen web, embed partners (portals)Most games ship this for web/mobile‑web.
facebook-instantFacebook Instant GamesEnables Shield overlays, Facebook friends, native IAP.
facebook-roomsFacebook Rooms (video‑calls)Extends Instant with room‑context features.
google-playGoogle Play (TWA / hybrid wrapper)Play Billing, Play Games, Play achievements.
iosiOS native app (WebKit bridge)Apple IAP, Game Center, StoreKit.
samsung-galaxySamsung Galaxy StoreSamsung Account, Galaxy IAP.
samsung-instant-playSamsung Instant Play (cloud)Session length‑aware, no device storage.
xiaomiXiaomi QuickGameXiaomi account, Mi Pay.
devLocal development onlyStubs providers so demos and tests run without a live host. FRVR never ships this to production.

Not every module works on every channel. Use the runtime check shown on each row before showing feature UI — the channel bundle FRVR injects for a given platform will simply report “no” for unsupported features, so guarding your UI with these checks keeps your code portable.

ModuleSupport checkWebFB InstantiOSGoogle PlaySamsung
AdsFRVR.ads.isSupported(AdType.INTERSTITIAL) · FRVR.ads.isReady(type)
IAPFRVR.iap.isReady() — also FRVR.iap.onReady(cb)
Auth (FRVR)FRVR.auth.isPlatformAvailable('FRVR') · FRVR.auth.isLoggedIn()
Social (friends)FRVR.social.platform.getSupportedAPIs().length > 0
LeaderboardsFRVR.leaderboards.isSupported()
TournamentsFRVR.tournaments.platform.isSupported()
Challenges(await FRVR.challenges.getPossibleOpponents()).length > 0
Notificationsawait FRVR.notifications.canScheduleMessages()
Shortcutawait FRVR.shortcut.canCreateShortcut()
Crossplayawait FRVR.crossplay.canMoveToMobile()
NavigationFRVR.navigation.canNavigate() · FRVR.navigation.canOpenChannelAppStore()
Score (native)typeof FRVR.score !== 'undefined'
Shield overlays(await FRVR.shield.createOverlay(…)) !== null
Community CTAsawait FRVR.community.canFollowOfficialPage() · await FRVR.community.canJoinOfficialGroup()

Treat the ticks above as a starting point — channel capabilities change as platforms update. The runtime isSupported / can… checks are always authoritative.

Some channels accept channel‑specific keys under FRVR.config.channels:

FRVR.config.channels = {
  'facebook-instant': { /* … */ },
  'google-play':      { /* … */ },
};

Only keys for the channel currently in use are read. You can ship the same FRVR.config across every release — FRVR’s build pipeline determines which branch gets read when.