Skip to content

游戏模块

本页介绍如何通过 Playol SDK 对接游戏核心行为事件(如加载、运行、暂停)、同步排行榜与成就数据。适用于所有基于 JS 的 H5 游戏,无需引入第三方框架或自建后端。

Playol SDK 提供一套完整的游戏行为上报机制,用于支持平台的用户行为分析、排行榜、成就系统等。调用方式简单、自动关联玩家身份,所有数据自动同步至平台,无需开发者手动构建后端数据库。游戏开发者只需专注于业务逻辑,接入成本极低,适合所有基于 JavaScript 的 Web 游戏场景。

📌 一、使用场景

  • 游戏资源加载页 中埋点加载起止行为,便于分析“页面加载效率”和“用户流失点”;
  • 上报用户在游戏内的运行行为(进入、暂停等),平台可用于优化广告策略或行为分析;
  • 同步用户的得分、成就等数据,平台据此生成排行榜、奖励成就;
  • 所有行为均与当前登录用户自动绑定,支持 多端同步、断点续玩、跨设备云记录

🧩 二、方法与调用方式

🌀 页面资源加载阶段(Loading)

loadingStart()

标记“游戏资源开始加载”——仅用于游戏尚未进入的加载页场景

此方法用于标记从页面打开开始进入游戏资源加载环节的时间节点,主要用于分析加载耗时、加载期间流失等指标。

window.playolSDK.game.loadingStart()

loadingStop()

标记“游戏资源加载完成”——游戏正式进入运行前的时间点。

window.playolSDK.game.loadingStop()

📌 说明:

  • 不应在每个关卡加载时调用,仅用于页面首次加载进入游戏前的场景;
  • 在加载界面展示完毕、游戏准备好运行前立即调用 loadingStop()
  • 可结合首帧时间统计、流失点分析使用。

▶️ 游戏运行状态埋点

playStart()

标记“游戏进入运行状态”或“从暂停恢复”,如:进入关卡、继续游戏等。

window.playolSDK.game.playStart()

playStop()

标记“游戏中断/暂停状态”,如:跳转到菜单、设置、广告弹窗等。

window.playolSDK.game.playStop()

📌 建议调用时机:

  • playStart() 用于记录用户实际进入游戏内容的时间起点;
  • playStop() 用于记录用户停止游戏交互(非关闭页面)的中断节点;
  • 可辅助平台识别“活跃时段”“游戏粘性”等行为模型。

🏆 同步成就数据

syncAchievement(achvKey, achvData)

提交用户在某项成就上的达成状态,用于构建成就展示/解锁功能。

参数名类型是否必填说明
achvKeystring成就唯一标识(平台需预设)
achvDatastring | number成就进度值或完成状态

根据成就类型的不同,achvData 应采用不同格式:

成就类型说明
一次性成就达成某个任务即完成
进度成就完成百分比展示(0-100%)
累计成就有明确进度数值(如 30/100)
// 一次性成就示例(通关第一关)
window.playolSDK.game.syncAchievement('CLEAR_STAGE_1', 1)

// 进度成就示例(游戏完成度 50%)
window.playolSDK.game.syncAchievement('GAME_COMPLETION', 50)

// 累计成就示例(收集了 80 枚金币)
window.playolSDK.game.syncAchievement('COLLECT_COINS', 80)

📌 说明:

  • 自动绑定
    成就数据自动关联当前用户(userId)和游戏(gameId),无需额外标记身份。当用户切换账号、退出登录或身份变更时,系统会自动处理数据隔离与切换。
  • 前置要求
    必须先在开发者平台配置成就信息(成就key、类型、最大值等),否则上报无效
  • 状态计算
    平台根据配置自动计算成就状态(0:未达成/1:达成)
    一次性成就: 上报值匹配完成标识时,状态更新为"达成"
    进度成就: 上报值大于或等于配置最大值时,状态更新为"达成"
    累计成就: 上报值大于或等于配置最大值时,状态更新为"达成"
  • 数据更新
    多次上报以最新值为准
    已达成成就的状态保持为"已达成"
    首次达成时间会被记录并保留
  • 使用场景
    可用于触发前端成就解锁动画、奖励提示、服务器回调等逻辑。
  • 调用时机
    建议在关键节点(通关、获得物品、任务完成)调用

📊 同步排行榜数据

syncRankData(rankData)

上报用户的得分或表现指标,供平台进行排行榜排序与展示。

参数名类型是否必填说明
rankKeystring排行榜唯一标识(平台需预设)
rankDatastring | number用户得分、通关时间等数值

根据排行榜类型的不同,rankData 应采用不同格式:

排行榜类型说明
数量类型根据数值大小排行(积分、宝石数等)
时长类型根据时间长度排行(通关时间、生存时间等)
时间类型根据时间点排行(最早通关、最晚达成等)
// 积分排行榜示例(数量类型)
window.playolSDK.game.syncRankData('TOTAL_SCORE', 9850)

// 速通排行榜示例(时长类型- mm:ss.SSS格式)
window.playolSDK.game.syncRankData('SPEED_RUN', '01:55.500')

// 首通排行榜示例(时间类型)
window.playolSDK.game.syncRankData('FIRST_CLEAR', '2025-01-06 12:30:45')

📌 说明:

  • 自动绑定
    排行榜数据自动关联当前用户(userId)和游戏(gameId)。当用户切换账号、退出登录或身份变更时,系统会自动处理数据隔离与切换。
  • 前置要求
    必须先在开发者平台配置排行榜信息(排行榜key、排序规则等),否则上报无效
  • 排序规则
    倒序: 数值越大排名越靠前
    正序: 数值越小排名越靠前
  • 使用场景
    可用于展示全服排名、个人最佳记录、赛季排行榜等。
  • 调用时机
    建议每次关卡结束或得分变化后上报,保持数据准确性。

🛠️ 三、推荐实践场景

场景描述推荐调用方式
游戏加载页开始loadingStart()
游戏加载页结束,进入主逻辑loadingStop()
进入实际游戏内容playStart()
跳转菜单 / 广告弹窗playStop()
成就解锁 / 任务完成syncAchievement()
更新分数 / 通关时间syncRankData()

📦 四、常见问题解答

Q: loadingStart()playStart() 有什么区别?

A: loadingStart() 只用于记录页面首次加载资源时的埋点;playStart() 表示玩家进入实际可交互游戏的阶段。

Q: sync 系列方法会覆盖旧数据吗?

A: 会实时更新记录值,如多次调用以最后一次为准;排行榜系统自动取最大值/最新值。

Q: 方法调用失败有回调吗?

A: 当前版本为静默上报,若遇网络中断平台会重试,未来版本将支持 Promise 形式结果回传。

🔗 相关文档推荐

👉 用户模块 | 数据模块 | 支付模块 | 邀请模块

基于 MIT 许可证发布