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. Also covers frvr.com, where the page around the game owns the loader, login, share button, and audio toggles.
youtubeYouTube PlayablesStrictest channel. See YouTube requirements.
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, Sign in with Apple, FRVR titlebar.
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()—✓✓✓—
Local notificationsFRVR.notifications.supportsLocalNotifications()——✓✓✓
Host login UI(await FRVR.auth.getLoginCapabilities()).hostLoginUI✓—✓✓✓
Host titlebar(await FRVR.hostUI.titlebar.getState()).supported——✓✓✓
Host audio controlsFRVR.channelCharacteristics.hasNativeAudioControlsfrvr.com————
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.