1.2.1.8 Node SDK使用说明

优质
小牛编辑
136浏览
2023-12-01

1.1. 获取和引入 HubbkeData SDK

下载后,解压包,源码目录:src/index.js ; 打包后目录: lib/hubble-sdk-node.js ,打包并没有转为es5,请自行处理。

引入sdk

// 例子里 hubble-sdk-node.js 路径是在 lib文件夹下,请自行修改; 
var DATracker = require('../lib/hubble-sdk-node');

1.1.1. 使用

// 引入sdk
var DATracker = require('../lib/hubble-sdk-node');

// 初始化sdk
//sdk 初始化配置, 其中 88888 替换对应的 appkey
DATracker.init('88888');

初始化的其它属性配置方式

//sdk 初始化配置, 其中 88888 替换对应的 appkey
DATracker.init('88888', {});

1.2. API说明

sdk分为三个功能模块:用户行为事件模块、用户属性模块、A/B 实验模块。

1.2.1. 用户行为事件模块相关API

track

用户行为事件上报调用该方法。比如用户:hzwangyang1 触发了一个购买的行为,事件id定义为:buy;事件的自定义属性 商品种类:category: 大米; 事件的系统(hubble)属性 用户的 ip:123.123.123.123;

使用如下:

DATracker.track('hzwangyang1', 'buy', {category: '大米'}, {ip:'123.123.123.123'});

参数说明:

第一个参数 String :用户id ,必填;第二个参数 String:事件id, 必填;第三个参数 Object:事件自定义属性, 选填({},'');第四个参数 Object:事件的系统(hubble)属性,选填({},''); ip(用户客户端ip)、costTime(触发到该事件的耗时) 等

signup

该api用来设置匿名用户的真实用户id。比如当前匿名用户id(假设是session id)是:'zz-xxx-ffff-kk',此时获取到了该用户真实id:'hzwangyang1'。 需要将这两个账户关联起来,调用该方法。

使用如下:

DATracker.signup('zz-xxx-ffff-kk', 'hzwangyang1');

register_attributes

有个自定义属性,需要在每个用户行为事件加上,请调用该方法。重复设置相同属性字段,会覆盖上一次值。

使用如下:

DATracker.register_attributes({'用户行为事件共同的自定义属性':'这是测试行为'});

register_attributes_once

有个自定义属性,需要在每个用户行为事件加上,请调用该方法。重复设置相同属性字段,不会覆盖上一次值。

使用如下:

DATracker.register_attributes_once({'用户行为事件共同的自定义属性':'这是测试行为'});

current_attributes

想查看当前用户行为事件共同的自定义属性,请调用该方法。返回的是一个Object

使用如下:

const currentAttributes =  DATracker.current_attributes();

unregister_attributes

想删除一个用户行为事件共同的自定义属性,请调用该方法。

参数(String),是属性的名称

使用如下:

DATracker.unregister_attributes('用户行为事件共同的自定义属性');

clear_attributes

想清空所有用户行为事件共同的自定义属性,请调用该方法。

使用如下:

DATracker.clear_attributes();

1.2.2. 用户属性模块相关API

当想设置某个用户的属性时,调用下面的api。比如 有个用户 hzwangyang1,上报了用户事件行为后,还想标记下该用户的年龄、姓名、身份证、生日、性别、家庭情况、城市等等,请使用以下api。

可调用系统提供的api设置的属性有:性别、生日、城市、国家、省份、账户、姓名;其它自定义属性设置请调用 DATracker.people.set;

people.set

想给用户设置一个属性,请调用该方法。参数1(String): 用户id (必须);参数2(Object): 用户属性(必须);

使用如下:

DATracker.people.set('hzwangyang1', {'家庭情况': '有个独立狗窝,年收入只有xx万,在杭州属于困难户'});

people.set_realname

想设置用户真实姓名,请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性的值(必须);

使用如下:

DATracker.people.set_realname('hzwangyang1', '白云飘飘');

people.set_country

想设置用户所属国家,请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性的值(必须);

使用如下:

DATracker.people.set_country('hzwangyang1', '中国');

people.set_province

想设置用户所属省份(地区),请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性的值(必须);

使用如下:

DATracker.people.set_province('hzwangyang1', '浙江省');

people.set_city

想设置用户所属城市,请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性的值(必须);

使用如下:

DATracker.people.set_city('hzwangyang1', '杭州市');

people.set_gender

想设置用户的性别,请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性的值(必须)-- 性别 0-女,1-男,2-未知;

使用如下:

// 该用户性别:男
DATracker.people.set_gender('hzwangyang1', 1);

people.set_birthday

想设置用户生日,请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性的值(必须),日期格式:yyyy-MM-dd -- 2016-09-01 ;

使用如下:

DATracker.people.set_birthday('hzwangyang1', '2016-09-01');

people.set_populationWithAccount

若不想一个一个设置(账户 + 姓名 + 生日 + 性别)属性,请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性-- 账号-的值(必须);参数3(String): 用户属性-- 姓名-的值(必须);参数4(String): 用户属性-- 生日-的值(必须),日期格式:yyyy-MM-dd -- 2016-09-01; 参数5(String): 用户属性-- 性别-的值(必须),性别 0-女,1-男,2-未知;

使用如下:

DATracker.people.set_populationWithAccount('hzwangyang1', "hzwnagyang1@corp.netease.com", "白云飘飘","2016-09-01", 1);

people.set_location

若不想一个一个设置(国家 + 省份 + 城市)属性,请调用该方法。参数1(String): 用户id (必须);参数2(String): 用户属性-- 国家-的值(必须);参数3(String): 用户属性-- 省份-的值(必须);参数4(String): 用户属性-- 城市-的值(必须);

使用如下:

DATracker.people.set_location('hzwangyang1', "中国", "浙江省","杭州市");

1.2.3. A/B 实验模块相关API

要使用sdk的A/B实验模块,sdk初始化时必须先开启该功能。

//sdk 初始化配置, 其中 88888 替换对应的 appkey
DATracker.init('88888', {
  abtest: {
    enable_abtest: true
  }
});

开启后,可使用以下的api。

abtest.get_variation

在Hubble abtest平台上开启了一个实验后,要在客户端拿到实验数据,请调用该方法。该方法返回的是一个 Promise。

比如:创建了一个实验,实验目的是主题颜色,哪种颜色更受欢迎。此时实验变量 bgcolor,默认颜色 黑色

参数1(String): 用户id (必须);参数2(String): 实验变量名(必须);参数3(String): 默认变量值(非必须),当拉取失败后返回的默认值;

使用如下:

    DATracker.abtest.get_variation('hzwangyang1', "bgcolor", "黑色").then(val => {
       const bgcolor = val;
    });