数据打点 API:genui.sendLog

GenUI 提供了一组轻量的数据打点能力,让你在工具上线后能看到真实的使用情况。接口只有一个:window.genui.sendLog。

API 形态

window.genui.sendLog({ area: "operation" });   // 核心操作事件
window.genui.sendLog({ area: "custom" });      // 自定义事件

area 只接受两个取值:

  • "operation":用户触发了工具的核心操作(如切换纠错等级、点击重置、切换分类)。
  • "custom":其他你关心的自定义行为(如成功生成一次二维码、复制一次链接)。

调用前必须判存在性

这是最关键的工程细节:不能直接裸调,因为 window.genui 只在平台运行时注入,本地预览或平台外打开时它不存在。裸调会抛错、中断脚本。正确写法是先判存在:

function sendLog(area) {
    if (window.genui && typeof window.genui.sendLog === 'function') {
        window.genui.sendLog({ area: area });
    }
}

两个实战工具都封装了这样一个 sendLog 守卫函数,再在交互回调里调用它。

实战埋点示例

二维码生成器

  • 用户切换纠错等级(L/M/Q/H)时,调用 sendLog('operation');
  • 用户点击「重置」时,调用 sendLog('operation');
  • 输入稳定后成功生成一次二维码(带 700ms 防抖)时,调用 sendLog('custom')。

万象云档速查

  • 用户切换分类 chips 时,调用 sendLog('operation');
  • 用户搜索输入稳定后(700ms 防抖)调用 sendLog('custom');
  • 用户点击某本图书、成功复制直达链接时,调用 sendLog('custom')。

为什么要埋点

提交审核后,工具进入搜索分发,你无法直接观察用户行为。打点数据就是你的「眼睛」:

  • 看哪些操作被高频触发,判断功能价值;
  • 看自定义事件转化,优化核心路径;
  • 为后续迭代、新工具点子提供数据支撑。

小结

genui.sendLog 是连接「上线工具」与「运营洞察」的桥梁。记住两条:area 只有 operation / custom 两值;调用前务必判 window.genui 存在性。封装一个守卫函数再到处复用,最稳。