# 数据埋点

本文档构建于2019年3月26日,有SDK使用上的疑问请联系alanzhai

Gitlab (opens new window)

# 功能

数据埋点SDK,把后台需要的数据合成一个对象通过接口上报给后台。现阶段开发的还是基础,还需要日后完善

# 上报地址

WARNING

测试环境上报地址:http://118.89.62.120:7364/v1/log

(不支持https,在https测试环境下会报错,访问http测试环境可解决)

现网环境上报地址:https://dp.xiaoeknow.com/v1/log

SDK中根据当前URL自动选择,无须手动操作,当有新项目要使用SDK时需要在SDK中增加对应的URL。

目前已有URL

  • 官网
  • H5
  • B端管理台

# 如何引入

<script>
(function() {
  /* SDK根据内部配置的URL列表来区分正式测试环境和项目类型,
   * 导致使用本地域名(phpstudy)或ip地址(分支测试)进行测试时无法识别。
   * 因此当需要本地测试或分支测试时增加下面这行代码,直接指定当前项目类型。
   * 合并至主干时必须删除!!!否则有人拉取分支会导致测试代码上线影响上报
   */  
  window.LOCAL_TEST_TYPE = '';
  /* LOCAL_TEST_TYPE取值如下
   * 店铺小程序:'MP'
   * 店铺H5:'H5'
   * 店铺PC WEB: 'PC'
   * 打卡小程序: 'CM'
   * 官网: 'HP'
   * 管理台: 'BE'
   */

  // 以下代码正式测试环境均正常引入即可
  var _YS_report = _YS_report || [];
  var dp = document.createElement("script");
  dp.src = "https://sdk.xiaoeknow.com/ds/xiaoeStatistics.js";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(dp, s);
})();
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

将以上代码添加到</head>标签前。

# 自动上报事件

以下事件无需手动上报

  1. 启动(et===2)
  2. 页面跳转(et===8)

# 使用教程

  1. 确定事件类型(et),可从核心参数中或是数据上报文档(v0.8) (opens new window)中查阅得知不同事件的对应值
  2. 当上报自定义事件时(et===1),首先需要确定自定义动作(actn),也就是这个事件的名字
  3. 当需要同时上报子动作(actsn)时,例如 “搜索 - 要搜索的内容” 这个场景,此时actn=搜索,actsn=要搜索的内容
  4. 自定义事件默认为按记录数量累计,一条记录为一次触发,当上报的事件需要通过某个数值进行累计时,例如要记录 “设置金额” 时,就可把自定义动作值(actv)设置为金额的数值
  5. 将要上报的数据存储为一个对象数组传入_YS_report.push(),具体使用方法如下:
/**
  * 注意:_YS_report.push()传入的参数必须为一个数组
  */

//arr为上报记录的数组,一条记录对应数组中的一个元素,示例如下:
arr = [
  {
    et: 1,
    sc: 1,
    sc2: 2,
    actn: 'test',
    ...
  },
  {
    et: 2,
    sc: 3,
    sc2: 1,
    actn: 'coupon',
    actv: 3
    ...
  }
];
_YS_report.push(arr); 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 页面别名

如果需要自定义页面跳转事件中的页面名称(cpg、fpg),按下面的方法添加页面别名,

如果需要在特殊位置设置页面别名,请确保在pageshow事件触发之前完成页面别名的设置,并自行检查上报字段是否正确。

# Blade

//在页面头部JS中增加下面这行代码
window._YS_PAGE_ALIAS = "你想要的名字";
// 效果: 当前页面上报 cpg: "你想要的名字", 跳转页面上报 fpg: "你想要的名字"
1
2
3

# Vue

// 效果: 当前页面上报 cpg: "你想要的名字", 跳转页面上报 fpg: "你想要的名字"
beforeCreate() {
  window._YS_PAGE_ALIAS = "你想要的名字";
  //...
}
1
2
3
4
5

WARNING

Vue使用时,页面别名设置会导致当前单页面的所有页面跳转上报事件内的字段都被修改。

如果页面别名要精确到每个前端路由页,请确保每个页面都设置了别名,不要造成错误上报。

# 核心参数

简单使用时只需关注核心参数,涉及到复杂需求时可能需要阅读数据上报文档(v0.8) (opens new window)来处理其它参数。(有需要时请从数据平台组获取最新文档)

参数 说明 类型 可选值
et 事件:用于标记当前记录的类型 Number 1:自定义事件;2:启动; 3:展示;4:点击;5: 时长;6:完成度;7:显示全文;8:页面跳转;10:下单;11:付款;12:下发;13:分享;14:收藏;15:点赞;17:评论; 18:举报; 19:取消收藏; 21:登录; 22:登出; 23:监控;
sc 一级场景(需要和产品定义) Number 目前已定义的如下 1:首页;2:详情页;101:官网;102:管理台
sc2 二级场景(需要和产品定义) Number -
actn 自定义动作 String -
actsn 自定义子动作(统计上,如果actv存在,按actv累加,否则做计数处理) String -
actv 自定义动作值(统计上做累加处理) String -

# 以下为支付事件特有字段

参数 说明 类型 可选值
price 标价(单位分) String -
real_price 实付(给渠道方) String -
payment_type 付费类型 String -
order_id 订单id String -
order_status 订单状态 String -
content_real_price 实付(给内容方) String -

# 以下为完成度事件特有字段

参数 说明 类型 可选值
co 完成度(图文类为阅读的页面比例,视频类为退出时播放位置占视频总时长比例) String -

# 以下为时长事件特有字段

参数 说明 类型 可选值
dwt 时长类型 String -
dw 时长(单位用s) Number -