FRVR.config 是一个普通对象,你必须在 FRVR.init() 之前设置好。只有 gameId 是严格必填,其余都是模块相关、可选的。
FRVR.config = {
gameId: string, // REQUIRED. Your FRVR game identifier.
ads?: AdsConfiguration,
iap?: IAPProviderConfig,
auth?: AuthProviderConfig,
tracker?: TrackerConfig,
consent?: ConsentProviderConfig,
storage?: StorageConfiguration,
cloudStorage?: CloudStorageConfiguration,
social?: SocialConfig,
navigation?: NavigationConfig,
crossplay?: CrossplayConfiguration,
channels?: Record<string, unknown>, // per‑channel overrides
shield?: { xmlPath: string, cssPath: string }, // Facebook Instant only
};
你的游戏在 FRVR 上的标识。它被数据分析、排行榜、锦标赛、商店、特性、通知等几乎所有模块使用。在顶层设一次即可;某个模块若需要覆盖,可以在自己的配置里再写一个 gameId。
FRVR.config.gameId = 'basketball';
详见 数据分析。典型结构:
FRVR.config.tracker = {
appVersion: '1.2.3',
appBuild: '4567',
analyticsProviders: {
metapixel: { pixelId: 'PIXEL_ID' },
},
};
详见 广告。多数渠道会自动配 provider,你一般顶多写到这种程度:
FRVR.config.ads = {
autoInit: true,
throttling: { [FRVR.ads.AdType.INTERSTITIAL]: { minInterval: 60 } },
};
详见 内购。商品目录是必给的:
FRVR.config.iap = {
catalog: {
COINS_100: { label: '100 coins', storeId: 'com.mygame.coins_100' },
COINS_500: { label: '500 coins', storeId: 'com.mygame.coins_500' },
},
};
详见 登录。多数游戏给个空对象就够 —— 当前激活的渠道会替你挑合适的 provider:
详见 同意。Web 上一般要选一个 CMP:
FRVR.config.consent = {
providerName: 'tcfv2', // or 'cookiepro'
config: {},
};
详见 云端存储:
FRVR.config.cloudStorage = {
playerStorage: { env: 'production' },
};
部分渠道接受嵌套在 channels 下的渠道专属字段:
FRVR.config.channels = {
'facebook-instant': { /* … */ },
'google-play': { /* … */ },
};
哪些字段会被读取,见 渠道参考。
永远在 SDK 加载完成之后、FRVR.init() 之前。本地用 dev 渠道;生产渠道包由 FRVR 在每次发版时帮你注入:
<script src="https://cdn.frvr.com/sdk/frvr-sdk.min.js"></script>
<script src="https://cdn.frvr.com/sdk/frvr-channel-dev.min.js"></script>
<script>
FRVR.config = { gameId: 'my-game', /* … */ };
FRVR.init();
</script>
init() 之后再设 FRVR.config 不会生效。