微信小程序自定义埋点版 SDK 使用说明

最后更新于:2019-05-11 15:41:16

1 自定义埋点版小程序 SDK 说明

全埋点版本的 SDK 是通过代理小程序的 App 和 Page 方法实现的自动采集,但是因为代理这两个方法存在风险,另外可能某些用户不需要自动采集,这时候就强烈建议使用自定义采集的方法。
自定义埋点版小程序 SDK 提供了 quick() 方法来采集 $MPLaunch $MPShow $MPHide 三个预置事件,效果跟全埋点版本一致。

2 使用方法

2.1 下载文件

从 github 上下载 微信小程序 sdk ,sensorsdata.custom.min.js 。

2.2 引入并配置参数

将 sensorsdata.custom.min.js 文件放到项目中,在 app.js 中通过 require() 方法引入,调用 setPara() 方法设置初始化参数; 调用 setPara() 方法设置初始化参数;
注意:必须在 require() 之后,立即调用 setPara() 方法设置,server_url 需在 setPara() 中配置。

------app.js

    var sa= require('./utils/sensorsdata.min.js');
    sa.setPara({
        server_url: '数据接收地址'
    });

2.3 标志初始化完成

调用init() 方法完成初始化。

------app.js

    var sa = require('./utils/sensorsdata.min.js');
    sa.setPara({
        server_url: '数据接收地址'
    });
    sa.init();

2.4 赋值全局变量

在 onLuanch 生命周期函数中,将引入的 sa 赋值给一个全局变量,以便在小程序页面中可以调用。

------app.js

    var sa = require('./utils/sensorsdata.min.js');
    sa.setPara({
        server_url: '数据接收地址'
    });
    sa.init();
    App({
        onLaunch : function( options ){
            this.sensors = sa;
        }
    });

2.5 设置预置事件采集

如需采集预置事件,可在小程序相应生命周期函数中调用 quick() 方法来采集预置事件。

------app.js
    var sa = require('./utils/sensorsdata.min.js');
    sa.setPara({
        server_url: '数据接收地址'
    });
    sa.init();
    App({
        onLaunch : function( options ){
            this.sensors = sa;
            sa.quick('appLaunch', options, {
                appName : '神策分析小程序'
            });
        },
        onShow : function( options ){
            sa.quick('appShow', options, {
                showTime : new Date()
            });
        },
        onHide : function(){
            sa.quick('appHide', {
                eventDuration : 5000
            });
        }
    });

3 方法说明

  1. quick(option, args, [props])
    说明:用来触发预置事件,为预置事件增加自定义属性
    参数:
    option : string ,预置事件配置名称,可选值 'appLuanch' | 'appShow' | 'appHide' ;
    args : object ,小程序生命周期函数原生参数,没有原生参数时可以设置为要添加的自定义属性对象;
    props : object ,要添加的自定义属性对象,该参数可选填;
    示例:
------app.js
    var sa = require('./utils/sensorsdata.min.js');
    sa.setPara({
        server_url: '数据接收地址'
    });
    sa.init();
    App({
        onLaunch : function( options ){
            sa.quick('appLaunch', options, {
                appName : '神策分析小程序'
            });
        }
        onHide : function(){
            sa.quick('appHide', {
                eventDuration : 5000
            });
        }
    });
  1. track(eventName,[props])
    说明:用来采集自定义事件
    参数:
    eventName : string ,自定义事件名称;
    props : object ,自定义事件属性对象;
    示例:
------index.js
    var app = getApp();
    Page({
        click : function(){
            // sensors 为在 app.js onLaunch 中设置的全局变量
            app.sensors.track('bannerClick',{
                bannerName : '顶部banner'
            });
        }
    });

4 使用示例

------app.js
    var sa = require('./utils/sensorsdata.min.js');
    sa.setPara({
        server_url: '数据接收地址'
    });
    sa.init();
    //采集预置事件 $MPLaunch $MPShow $MPHide
    App({
        onLaunch : function( options ){
            this.sensors = sa;
            sa.quick('appLaunch', options, {
                appName : '神策分析小程序'
            });
        },
        onShow : function( options ){
            sa.quick('appShow', options, {
                showTime : new Date()
            });
        },
        onHide : function(){
            sa.quick('appHide', {
                eventDuration : 5000
            });
        }
    });

------index.js 等 js 文件中
    var app = getApp();
    Page({
        onShow : function(){
            //通过 track() 方法发送小程序页面浏览事件
            app.sensors.track('$MPViewScreen',{
                pageName : '首页'
            });
        }
    });