微信小程序SDK接入指南
前置条件
配置request合法域名:进入微信小程序后台→设置→开发者设置,添加request 合法域名:https://cdp.linkflowtech.com。
小程序基础库支持:版本不低于2.4。
绑定开放平台:小程序与其他公众号、小程序绑定到同一开放平台(非必须,如无法绑定开放平台,需要重新设计identify逻辑)。
配置环境
引入SDK
鼠标右键点击小程序SDK 【另存为】文件:lf-wx-miniapp.min.js下载最新, 然后拷贝到小程序项目的utils文件夹中。
引入js
在app.js文件顶部(其他代码之前)添加如下代码:
var linkflow = require("./utils/lf-wx-miniapp.min.js");
var sdk = linkflow.setup({
name: 'lfsdk', //SDK 使用的一个默认的全局变量名,会注册在 App 全局函数中,默认为 LFAPP
token: 'MS1mYzE3ODQxYS1h**********QxMC03YTQ3ODFlMjY5OTA=', //必填,用于识别埋点小程序的连接
defaultPath: 'pages/index/index',
server_url: 'https://cdp.linkflowtech.com', //必填,埋点数据收集的后端服务器地址
utm_stractegy:'OVERWRITE', //'OVERWRITE' | 'SESSION' | 'MAX_AGE' 默认 OVERWRITE
//OVERWRITE: 一直使用前一次存储的utm直到新的utm进来
//SESSION: utm值只在本次launch的过程中有效,下次重新初始化SDK时,不会从存储中获取utm
//MAX_AGE: 一个组utm值进来的时候,记录当时的时间戳,等到下次SDK初始的时候,从存储中获取utm的值,并且比较时间戳是否在有效范围内,如果在有效范围内这使用该utm,该有效性检查只在SDK初始化时候进行,在本次launch中间不会再次检查这组utm的有效性
utm_max_age:720 , //默认720h
auto_anonymous_id:true , //默认值 true,如果为false的话,SDK不会自动生成anonymouseId,如果没有identitiy被设置,SDK则不会发送message到后台
auto_track: {
app_launch: true, //自动追踪onAppLaunch事件,默认值为true
app_show: true, //自动追踪onAppShow事件,默认值为true
app_hide: true, //自动追踪onAppHide事件,默认值为true
page_show: true, //自动追踪onPageShow事件,默认值为true
page_share: true, //自动追踪onPageShare事件,默认值为true
page_leave: true, //自动追踪离开页面事件,此事件会记录页面的停留时长,默认值为false
}
});
开始开发(埋点)
识别联系人(identify)
作用
实名联系人,标识该用户是谁,带有何种标识、特征等,例如:姓名、性别等。
更新用户属性。
与同一开放平台下其他公众号或者小程序打通:同一开放平台下,小程序用户进入之后,setIdentities传入unionId,会根据它查找其他该平台下同一unionId的用户,查到则发生合并。
调用时机
【进入小程序】:用户进入小程序,判断localStorage是否存有用户信息;
——如果有,调用identify;
——如果没有,获取用户信息,再调用identify,并且用户信息存入localStorage。
【更新用户信息】:包括但不限于用户授权、完善用户信息等所有可能获取到用户信息的时候,例如:用户授权手机号、在用户信息页完善个人信息时。
如果存在切换账号的情况需要在调用 identites 之前清空 缓存
var app = getApp()['lfsdk']
app.
cleanIdentities();
示例代码
var identities = [{
type:'wxa.openId', // 小程序的openeid
id:'oaDgs5TUy6Cxs***0K4A2n1jdnYk'
},{
type:'wechat.unionId',
id:'ovfdf6ny6Ko****fyecRqVNw' // 开放平台的unionid
}
];
var profile = {
nickname:'昵称',
mobilePhone:'13888888888',
avatar:'头像地址',
gender:'male', // male:男 female:女 unknown:保密
props:{// 自定义用户属性
udc_props1:'test'
}
}
// 在 `app.js` 中
sdk.setIdentities(identities
)
sdk.setProfile(profile
)
// 在页面文件 `page.js` 中
var app = getApp()['lfsdk']
app.setIdentities(identities
)
app.setProfile(profile
)
发送事件(sendEvent)
前置条件
示例代码
var app = getApp()['lfsdk']
app.track({
event:'事件ID',
props:{
props_1:'创建订单',
props_2:88
}});
参数说明
字段名 | 属性名称 | 数据类型 | 是否必传 | 备注说明 |
nickname | 昵称 | 字符串 | ||
mobilePhone | 手机号 | 字符串 | ||
avatar | 头像 | 字符串 | ||
gender | 性别 | 字符串 | male 男 ; female 女 ; unknown 保密 | |
dateOfBirthday | 出生年月 | 日期 | 如:1990-11-01 | |
name | 姓名 | 字符串 | ||
country | 国家 | 字符串 | ||
state | 省 | 字符串 | ||
city | 市 | 字符串 | ||
street | 街道 | 字符串 | ||
props | 自定义属性 | 对象 |
验证
SDK配置验证
小程序SDK正常初始化之后,用户打开小程序之后,SDK会自动追踪如下事件:
- 启动小程序——首次打开小程序,或者关闭后打开小程序。(关闭小程序的情形包括:小程序崩溃,关闭微信进程)。
- 展示小程序——解除锁屏或重新打开微信,将之前隐藏的小程序重新展示(非页面展示)。
- 隐藏小程序——手机锁屏、小程序页面最小化时、最小化微信、离开小程序页面(看不到小程序了)。
- 打开小程序页面——进入小程序页面。
- 分享小程序页面——通过微信转发或其他形式将小程序页面分享。
可登录linkflow连接云,在主页右侧时间轴查看是否收到这些事件。如正常收到,则SDK配置无问题;否则,可查看
识别联系人
发送事件
wepy、Taro框架
wepy 框架
wepy 框架触发打开小程序页面(onPageShow) 以及分享小程序页面(onPageShare)示例如下:
let app = getApp()['lfsdk']
wepy.page({
//打开小程序页面
onShow(options){
app.linkflow.onPageShow(getCurrentPages());
},
//分享小程序页面
onShareAppMessage(options){
app.linkflow.onPageShare('pages/index');
}
})
Taro 框架
Taro 框架触发打开小程序页面(onPageShow) 以及分享小程序页面(onPageShare)示例如下:
//打开小程序页面
Taro.useDidShow(
app.linkflow.onPageShow(getCurrentPages())
)
//分享小程序页面
Taro.useShareAppMessage(
app.linkflow.onPageShare("/pages/index")
)