先讲解一下基础代码的部署。在部署代码之前,你需要注册一个小程序的账号,然后在账号后台添加合法域名,每个监测工具的域名不一样,具体域名可以咨询你使用的工具厂商。
添加完域名后要引入JS,将下载的SDK文件放入 util 目录下,然后在 app.js 第一行添加js代码。SDK文件和JS代码在工具厂商那都能下载到。其次是来源数据监测,这里先说下小程序都有哪些入口,有哪些能直接监测,有哪些不行。小程序的入口接近70个,包含发现栏小程序主入口、顶部搜索框的搜索结果页、朋友圈广告、搜一搜结果页、发现栏小程序主入口搜索框的搜索结果页、聊天会话中的小程序消息卡片等,详细入口列表,可以查看小程序开发文档的链接:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html。这些入口中,有些是我们可以加参数监测的,比如小程序的二维码,这里说的二维码也是用一段url生成的,和网站监测原理一样。在做网站来源监测的时候,我们会在url上添加link tag来区分不同的流量渠道和广告类型等。比如投放到新浪上的banner广告,我们可能就会加上参数?utm_source=sina&utm_media=banner&utm_campaign=cwa(这是谷歌分析的标准格式),同样在小程序里也能用这种方式实现,只是每个工具的参数标识不一定一样,有些是兼容utm的,有些有自己的标识。比如nEqual的及策用md标识来源类型,用pl标识来源详情,这个链接pages/index?md=Qr_code&pl=mendian_a代表的是来自A门店的二维码。和网站来源参数另一个共同点是这些参数可以只写一个,也可全都不写。有些是无法加参数监测的。无法添加参数的来源类型需要工具从微信那调取场景值。前面提到小程序有接近70个入口,每个入口都有相对应的场景值,监测工具可以通过调用小程序定义好的场景值来判断各种来源带来的用户数据。
第三个常规监测是分享的监测,这也是小程序数据监测区别于网站数据监测的地方,在微信的生态里让分享监测成为可能。分享监测主要是要获取三个数据:分享的位置、分享页面的标题和分享路径。这样我们能够看到某个页面被分享到群里还是发给朋友了。 有些朋友问,我想监测页面A被某人分享出去后带来多少人访问,是否能实现。这种场景是可以实现的,需要我们做一些自定义事件监测。 以及策这个工具为例,在 path 后动态加上用户动作名称的昵称,这样就可以统计该分享者最终带来多少用户了。
Page({onShareAppMessage: function () {jice.track(“onshare”, {title: “自定义分享标题”,path: “/page/user” + “md=share&pl=” + app.globalData.userInfo.nickName})}})
一个需要介绍的字段是$share_depth,这个属性值会记录分享的层级:如果某个小程序页面被A、B和C三人依照 A -> B -> C 的顺序进行分享,则 A 的分享会被标记为1级分享,B的分享会被标记为2级,C 则为3级。 如果某用户打开自己分享的页面不会增加 $share_depth 的值。通过这个字段可以看到某个页面被分享的层级有多深。 另一个常规监测就是用户属性的数据,当用户打开你的小程序并且使用微信登录,会调用以下方法回传用户数据。
this.getUserInfo(function(userInfo){jice.addUserIdentifier({openid: openid, // openididunionid: unionid, // unionidnickname: userInfo.nickName, //昵称wxgender: userInfo.gender, //性别wxcity: userInfo.city, //微信设置城市wxprovince: userInfo.province, //微信设置省份wxcountry: userInfo.country, //微信设置国家avatarurl: userInfo.avatarUrl //头像url})})
关于用户id打通,因为涉及到用户id,这里延伸介绍下监测小程序的工具根据哪些id来判断用户,当用户在未登录的情况下,工具会给用户随机生成一个id,相当于网站监测里的cookie,只是每家工具的叫法不一样,神策的叫uuid,易观方舟的叫originallid等。(是否有官方叫法)这种id极不稳定,如果你换了设备或者删除小程序,这个id随之重新生成或者消失。 当用户用微信登录小程序的时候,我们会获得用户的open id,有可能的情况下会获得union id,在之前我讲公众号用户运营的文章里有详细讲过这两种id的区别,如果你有多个公众号、小程序的时候(在同一认证主体下),假设有一个用户关注了你三个公众号并且登录过一个小程序,每个公众号和小程序都会给这个用户记录一个open id,并且都不一样,这对于你来说是不符合你的业务需求的,你还是希望能把这个用户识别为一个人,这时候微信就提供另一个id叫union id来将这个用户的open id进行统一标识,所以在你的平台上,一个用户对应一个union id。 除了用户登录后的open id或者union id,还有一个id是你收集到的用户手机号或者邮箱,通过这个用户id你可以将用户访问你网站、APP等平台的数据统一整合进来。