跳转到内容

数据分析(tracker)

FRVR.tracker 是数据分析流水线。它把事件分发给所有已配置的 provider(FRVR 自家后端、Meta Pixel、你接入的 AppsFlyer 适配器等),并自动给每条事件附上玩家 ID、应用版本、渠道、地区。

顺序跟踪每一步新手引导。重复上报较早的步骤会被忽略。

FRVR.tracker.ftue(1, 'opened_inventory');
FRVR.tracker.ftue(2, 'crafted_first_item');

如果你的引导不是线性的 —— 比如商店和战斗各走各的漏斗 —— 用 ftueUnordered 加一套编号方案:

FRVR.tracker.ftueUnordered(201, 'opened_shop');
FRVR.tracker.ftueUnordered(104, 'finished_match');
FRVR.tracker.levelStart('level_1');
// ... 玩
FRVR.tracker.levelEnd('level_1', { stars: 3, deaths: 0 });
FRVR.tracker.logEvent('bought_skin', { skin: 'red_hat', slot: 'head' });

带数值的事件(LTV、分数、时长):

FRVR.tracker.logValuedEvent('session_length', 142.3, {});

事件名建议用 snake_case;字段尽量扁平。

如果每条事件都要带相同的额外字段 —— 当前关卡、构建变体等 —— 注册一个返回这些字段的函数:

FRVR.tracker.addExtraFieldFunction(fields => {
  fields.current_level = game.currentLevel;
  fields.build_variant = BUILD_VARIANT;
});

每条事件都会跑一次;就地修改 fields 即可。

存在设备上、并附在后续事件里的小计数器:

FRVR.tracker.set('preferred_hand', 'left');
FRVR.tracker.inc('total_deaths');      // +1
FRVR.tracker.inc('coins_earned', 50);  // +50

在玩家的同意状态确定之前,最多排 100 条事件。同意状态明确后,队列要么被发出去(允许),要么被丢弃(拒绝)。你不必自己控制 —— 正常上报就好。

FRVR.config.tracker = {
  appVersion: '1.2.3',
  appBuild:   '4567',
  analyticsProviders: {
    metapixel: { pixelId: 'YOUR_PIXEL_ID' },
    // …其他按渠道配置
  },
};
  • page_loading —— init() 开始时
  • game_loaded —— 引导完成时
  • device_info —— 引导后,带 GPU/CPU 提示

可以按渠道关闭其中任何一个;有需要联系你的 FRVR 对接人。

在线数据分析

loading SDK…
 
方法作用
logEvent(name, fields)上报一条自定义事件。
logValuedEvent(name, value, fields)带数值的事件。
ftue(step, name, fields)顺序的引导步骤。
ftueUnordered(step, name, fields)非线性漏斗里的引导步骤。
levelStart(name, fields?)关卡开始。
levelEnd(name, fields?)关卡结束。
set(name, value)持久键值,会附在事件上。
inc(name, by?)给持久计数器加值。
addExtraFieldFunction(fn)用动态字段丰富每条事件。
loaded()派发 game_loaded(引导器会自动帮你做)。