1. node版sdk使用说明
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;
});