菜单

基础 API 介绍(其他小程序)

SDK 初始化参数

参数 类型 默认值 含义 备注
name String sensors SDK 使用的一个默认的全局变量,会注册在 App 全局函数内,在 Page 中可以通过 getApp()[name] 来获得 SDK 实例  
server_url String 数据接收地址  
  • 请在小程序管理平台 > 开发设置 > 服务器域名中,把这个地址添加上。
autoTrack Object 是否开启自动采集
  • 六个属性参数(appLaunch、appShow、appHide、pageShow、pageShare、mpClick、pageLeave
  • 其中 mpClick、pageLeave 默认是 false 关闭的,需要手动配置成 true,其他默认是 true
  • init:{
      autoTrack:{
        appLaunch: true,
        appShow: true,
        appHide: true,
        pageShow: true,
        pageShare: true,
        mpClick: false,
        pageLeave: false
      }
    }
show_log Boolean true 是否打印 log
  • 设置 true 后会在模拟器控制台打 log,会显示发送的数据,设置 false 表示不显示。
max_string_length Number 300 通用字符串最大长度,超过部分会被截取丢弃(url 太长可能会导致数据发送失败,所以限制长度)  
batch_send Boolean true 小程序中是否使用批量发送数据功能
  • 默认都是批量发送。
datasend_timeout Number 3000 请求发送取消时间
  • 单位为毫秒,请求发送后,在规定时间内未返回结果,则取消请求。

全埋点采集逻辑

事件名称 生命周期 采集时机 说明
$MPLaunch(小程序启动) App.onLaunch 小程序冷启动。小程序进程被杀死,重新打开时会触发
  • 小程序初始化完成时,全局只触发一次;
$MPShow(小程序显示) App.onShow 小程序热启动。或从后台进入前台显示,首次触发也会显示
  • 启动小程序时;
$MPHide(小程序进入后台) App.onHide 点击小程序右上角退出按钮、微信进入后台、手机锁屏、小程序进程被杀死时
  • 小程序从前台进入后台;
$MPViewScreen(小程序页面浏览) Page.onShow 小程序启动打开页面、小程序内打开页面、从后台进入前台打开页面时触发
  • 每次打开页面都会调用一次;
$MPShare(小程序分享) Page.onShareAppMessage 设置这个函数后,点击分享按钮触发
  • 暂时只能获取到用户触发分享,无法监听是否分享成功的反馈;
$MPClick(小程序元素点击) 在 Page 中定义的事件处理函数 当 Page 中定义的事件处理函数被触发时采集
  • 目前只支持 tap/ longtap / longpress 三类事件;
$MPPageLeave(小程序页面离开) page.onHide 或 page.onUnload 小程序页面隐藏或卸载时触发  

各小程序全埋点支持情况

小程序 $MPLaunch $MPShow $MPHide $MPViewScreen $MPClick $MPPageLeave $MPShare
支付宝 / 钉钉 支持 支持 支持 支持 支持(默认关闭) 支持(默认关闭) 不支持
百度 支持 支持 支持 支持 支持(默认关闭) 不支持 不支持
字节 / 抖音 支持 支持 支持 支持 支持(默认关闭) 不支持 不支持
飞书 支持 支持 支持 支持 支持(默认关闭) 不支持 不支持
淘宝 支持 支持 支持 支持 支持(默认关闭) 支持(默认关闭) 不支持
小红书 支持 支持 支持 支持 支持(默认关闭) 不支持 不支持
京东 支持(默认关闭) 支持(默认关闭) 支持(默认关闭) 支持(默认关闭) 支持(默认关闭) 不支持 不支持
快手 不支持 不支持 不支持 不支持 不支持 不支持 不支持
QQ 支持 支持 支持 支持 支持 不支持 不支持

标记为默认关闭的需要手动配置为 true 开启(配置方式参考 autoTrack),不支持的配置为 true 了也无效。

设置事件公共属性

设置事件静态公共属性

// 注册事件公共属性
sensors.registerApp({
    userLever: 'VIP3',
    userSex: '男'
}); 
sensors.init();

设置事件动态公共属性

当设置动态公共属性的时候,注意使用函数类型作为属性值,函数的返回值应当是神策支持的类型,请参考 数据格式,否则会被过滤掉。

var i=0
sensors.registerApp({
  index: function() {
    return ++i; // 返回数字
  },
  istrue: function() {
    return i<10 ? true : false; // 返回bool
  },
  isEmptyString: function() {
    return ""; // 返回字符串
  },
  isDate: function() {
    return new Date('December 17, 1995 03:24:00'); // 返回日期类型
  },
  isArrayOfStr: function() {
    return ["1","2","3"] // 返回元素是字符串的数组
  }
})

另外如果函数在异步回调中返回值,这种情况也是会被过滤掉。

sensors.registerApp({
    num:function(){
        setTimeout(()=>{
            return 100
        },500)
    }
})

用户属性设置

保留初次属性

对于需要保证只有首次设置时有效的属性,如用户首次充值金额、首次设置的昵称等,可以使用 setOnceProfile 接口进行记录。与 setProfile 方法不同的是,如果被设置的用户属性已存在,则这条记录会被忽略而不会覆盖已有数据,如果属性不存在则会自动创建。

// 设置用户属性 subscribers 为 7277
sensors.setOnceProfile({
	email:'xxx@xx',
	favoriteFruits: ['苹果', '油桃'],
	subscribers: 7277
});

// 再次设置用户属性 subscribers 为 7278 不生效,属性值仍然是 7277
sensors.setOnceProfile({
    subscribers: 7278
});

获取预置属性

某些情况下可能需要在前端获取 SDK 预置属性,SDK 支持使用 getPresetProperties 方法获取部分事件预置属性。

// 获取事件预置属性
sensors.getPresetProperties();

清除公共属性

对于调用 registerApp 设置的公共属性,SDK 提供 clearAppRegister 接口清除这些属性。

// 清除设置的 current_url 和 referrer 公共属性
sensors.clearAppRegister(['current_url', 'referrer']);

获取匿名 ID

小程序 SDK 提供了 getAnonymousID 接口来获取匿名 ID。

sensors.getAnonymousID();

本地用户信息加密

注意:暂不支持京东、快手、QQ。

目前 SDK 保存在 storage 中的信息主要是用户信息,可以对 storage 中的数据进行加密,保证安全性。功能配置:

// app.js
sensors.init({
	name: 'sensors',
	server_url: '数据接收地址',
	encrypt_storage : true // 是否开启本地加密存储
});
上一个
其他小程序 SDK
下一个
淘宝小程序 SDK 发送
最近修改: 2025-03-11