支付宝小程序 SDK 使用说明

最后更新于:2019-05-23 16:57:31

在使用前,请先阅读数据模型的介绍。

更新日志

1. 获取和引入神策分析 SDK

1.1. 安装方法

1.1.1. 下载 SDK

从 github 上下载 支付宝小程序 sdk ,sensorsdata.min.js 和 sensorsdata_conf.js;

1.1.2. 配置参数

配置 sensorsdata.conf.js 文件中的数据接收地址 server_url 参数;

1.1.3. 引入 SDK 并设置全局变量

把这两个文件放在小程序项目中,然后在 app.js 中通过 import 引入;
在 App 函数中设置一个值为 sensors 的全局变量

------app.js
    import sa from './util/sensorsdata.min.js'
    App({ 
        onLaunch : function(){ 
            this.sensors = sa 
        }
    })

1.1.4. 预置事件采集

如需采集预置事件,可在注册小程序时的 onLaunch、 onShow、 onHide 生命周期函数中分别调用 quick(‘appLaunch’)、 quick('appShow')、 quick('appHide') 方法来采集预置事件。 其中,quick(‘appLaunch’)、 quick('appShow') 第二个参数需要填入相应生命周期回调函数使用的参数;quick('appHide') 不需要传入生命周期回调函数使用的参数。

------app.js
    import sa from './util/sensorsdata.min.js'
    App({
        onLaunch : function( options ){
            this.sensors = sa;
            sa.quick('appLaunch', options);
        },
        onShow : function( options ){
            sa.quick('appShow', options);
        },
        onHide : function(){
            sa.quick('appHide');
        }
    });

1.1.5. 页面采集自定义事件

现在在其他 Page 里就可以通过 getApp 来使用神策的追踪了

------index.js
    var app = getApp();
    Page({
        onShow: function(){

        },
        click: funciton(){
            // 第一个参数事件名 字符串类型,第二个参数 属性值 对象类型
            app.sensors.track('clickBanner', {
                productName: 'xxx'
            })
        }
    });

1.2 sensorsdata_conf.js 参数配置

  • server_url: 数据接收地址; 注意: 请在“小程序详情/设置”中添加 httpRequest 接口请求域名白名单,把这个地址加上。

2. 标识用户

在进行任何埋点之前,都应当先确定如何标识用户。distinct_id 是神策用来标识用户的一段唯一的字符串。

在小程序中,会有下面 2 种 id

  1. 默认情况下,我们会生成一个随机数 uuid ,保存在本地缓存中,我们暂时称这个为 uuid
  2. 数据库中保存的,用户真实 id 。我们暂时称为 "你们服务端分配给用户具体的登录 ID"

如果不做任何操作,小程序会使用 uuid 作为 distinct_id ,注意: uuid 在换了设备,或者删除小程序后,会重新生成。

2.1 修改匿名 ID

默认情况下,是把 uuid 作为 distinct_id 的。如果想使用其他匿名 id(比如你们自己生成的 uuid),可以用 identify(id,true) 方法来改变当前的distinct_id

------app.js
    import sa from './util/sensorsdata.min.js'
    sa.identify('匿名ID', true);
    App({
       onLaunch: function( options ){
           this.sensors = sa;
           sa.quick('appLaunch', options, {
               appName : '神策分析小程序'
           })
       }
    });

2.2 用户关联

1.可以通过调用login("userID") 方法来标识真实用户;
2.通过 login("userID") 来把 SDK 自动生成的 uuid 与现在传入的 userID关联。且以后会一直使用这个 userID

------app.js
    import sa from './util/sensorsdata.min.js'
    sa.login('userID');
    App({
       onLaunch: function( options ){
           this.sensors = sa;
           sa.quick('appLaunch', options, {
               appName : '神策分析小程序'
           })
       }
    });

3. 自定义事件追踪

3.1 track(eventName,[properties])

采集自定义事件。

  • eventName:string,必填,事件名称;

  • properties:object,选填,为该事件设置的事件属性;

第一次接入神策分析时,建议先追踪 3~5 个关键的事件,只需要几行代码,便能体验神策分析的分析功能。例如:

电商产品,可以追踪用户注册、浏览商品和下订单等事件。

------index.js
    // 追踪浏览商品事件。  
    var app = getApp();
    app.sensors.track('ViewProduct', {
        ProductId: '123456',
        ProductCatalog: "Laptop Computer",
        ProductName: "MacBook Pro",
        ProductPrice: 12345
    });

3.2 registerApp(properties)

事件公共属性:可以在 app.js 文件引入 sensorsdata.min.js 文件之后, 使用 registerApp() 方法设置公共属性。

  • properties:object,必填,要为该方法调用后的所有事件设置的公共事件属性;
------app.js
    // 注册事件公共属性。  
    import sa from './util/sensorsdata.min.js'
    sa.registerApp({
        userLever: 'VIP3',
        userSex: '男'
    });

4 设置用户属性

4.1 setProfile(properties)

直接设置用户的属性,如果存在则覆盖。

  • properties:object,必选。
    sa.setProfile({
        email:'xxx@xx',
        favoriteFruits: ['苹果', '油桃'],
        subscribers: 7277
    });

4.2 setOnceProfile(properties)

如果不存在则设置,存在就不设置。

  • properties:object,必选。
    sa.setOnceProfile({
        email:'xxx@xx',
        favoriteFruits: ['苹果', '油桃'],
        subscribers: 7277
    });

5 实际案例使用

------app.js
    import sa from './util/sensorsdata.min.js'
    //设置公共属性
    sa.registerApp({
        platform: 'AliPayMini'
    });
    //做用户关联
    sa.login('13390987783');
    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
    var app = getApp();
    Page({
        onShow: function(){
            //使用 track()  方法采集自定义页面浏览事件
            app.sensors.track('MPViewScreen',{
                pageTitle: '首页'
            });
        }
    });

6 预置属性

6.1 所有事件都有的预置属性:

字段名称 类型 说明 版本
$lib 字符串 SDK 类型
$lib_version 字符串 SDK 版本
$user_agent 字符串 'SensorsAnalytics AlipayMini SDK' 1.0.1 版本之后不再采集
$screen_height 数值 小程序屏幕高度
$screen_width 数值 小程序屏幕宽度
$model 字符串 设备型号
$manufacturer 字符串 设备制造商
$network_type 字符串 网络类型
$os 字符串 操作系统
$os_version 字符串 操作系统版本 1.0.1 版本之后新增
$is_first_day 布尔类型 是否首日访问
$ip 字符串 SDK 发送数据请求携带的属性
$country 字符串 由 IP 解析得到
$province 字符串 由 IP 解析得到
$city 字符串 由 IP 解析得到
$browser 字符串 由 UA 解析得到 1.0.1 版本之后新增
$browser_version 字符串 由 UA 解析得到 1.0.1 版本之后新增