在神策分析(Sensors Analytics)中,$lib 是预置属性之一,用于标识数据采集所使用的 SDK 类型(如 Web 端默认值为 js,移动端可能为 android 或 ios 等)。通常情况下,预置属性不建议直接修改,但若业务场景确实需要调整 $lib 的值(例如区分不同版本的 SDK 或自定义采集源),可通过以下方式实现:
方法:通过 registerPage 或 track 时的属性覆盖
神策 JS SDK 允许在事件触发时,通过参数覆盖预置属性(部分预置属性支持)。$lib 支持在初始化后,通过事件属性覆盖的方式修改,具体操作如下:
1. 初始化 SDK 后,在发送事件时指定 $lib
在调用 track(追踪事件)或 registerPage(页面注册)等方法时,将 $lib 作为自定义属性传入,覆盖默认值。
示例代码:
// 初始化 SDK(正常配置,无需修改默认 $lib)
sensors.init({
server_url: '你的数据接收地址',
siteId: '你的项目 ID',
// 其他配置...
});
// 追踪事件时覆盖 $lib 的值
sensors.track('event_name', {
$lib: 'custom_js_lib', // 自定义 $lib 的值
// 其他事件属性...
});
// 注册页面时覆盖 $lib 的值
sensors.registerPage({
$lib: 'custom_page_lib', // 自定义 $lib 的值
// 其他页面属性...
});
2. 全局统一修改:通过 beforeTrack 钩子函数
如果需要全局统一修改所有事件的 $lib 值,可利用 SDK 提供的 beforeTrack 钩子,在事件发送前拦截并修改 $lib 属性。
示例代码:
sensors.init({
server_url: '你的数据接收地址',
siteId: '你的项目 ID',
beforeTrack: function(eventName, properties) {
// 覆盖 $lib 的值为自定义内容
properties.$lib = 'global_custom_lib';
return properties; // 返回修改后的属性
}
// 其他配置...
});
通过 beforeTrack 钩子,所有事件(包括页面事件、点击事件等)的 $lib 值都会被统一修改,无需在每个事件中单独设置。
注意事项
- 预置属性的意义:
$lib用于神策后台识别数据来源的 SDK 类型,修改后可能影响后台对数据的分类统计(如 SDK 版本分布分析),需谨慎评估业务影响。 - 兼容性:确保所使用的 JS SDK 版本支持
$lib的覆盖(神策 JS SDK v1.10.0 及以上版本均支持)。 - 其他预置属性:类似的预置属性(如
$lib_version表示 SDK 版本)也可通过相同方式修改,但建议仅在必要时调整,避免破坏数据的标准格式。
如果需要进一步验证修改结果,可通过神策后台的「事件分析」查看事件属性 $lib 的值,或在浏览器控制台通过 sensors.log() 打印事件数据进行确认。