Open ajccom opened 4 years ago
萌推项目的采集上报规范在立项之初基本已经定义完备,在后续业务迭代过程中也得到了充分的验证。
萌推的采集上报基于集团的采集上报工具,为了区分集团采集上报的预留字段,所有萌推项目上报的字段都以字母 x 开头。比如 type 字段,在原始报表中是 xtype 字段。
x
type
xtype
萌推所有业务上报字段的值,均为字符串格式或者 NULL。这个的缘由是原始数据落库处理时会将值根据其数据类型放入不同的字段,比如 a= 123,最终落库的数据为 a={int_type=123, long_type=0, float_type=0.0, string_type=0},如果是 a="xyz",落库后成了 a={int_type=0, long_type=0, float_type=0.0, string_type=xyz}。为了清洗数据方便,我们规定所有上报字段都用字符串格式。
a= 123
a="xyz"
萌推项目每次上报都使用一些通用字段,通用字段中部分来自集团使用的字段,部分来自项目自定义字段,枚举如下:
pv
mt
res.imp
goods_detail
NULL
test
关于 kuid,kuid 在 iOS 和安卓下可以被解析为有效的 tuid,在其他非 APP 环境下皆无法正确解析为 tuid。
另外,萌推 H5 页面在 APP 环境下是使用 APP kuid 进行上报,所以无需区分 APP 下是 H5 还是原生上报。
集团上报 SDK 是收集上报机制,会在一个时间跨度之后将收集的上报一次性全部发送,即 N 条上报信息到达服务器的时间相同,所以上报产生时间需要通过 xe_time 字段记录。
上报的类型种类比较繁多,理论上是可以无限扩展的,常用的有 pv、action.click 等,这里先枚举一些常用的类型:
action.click
还有一些常用上报类型下面细述。
pv 上报一般指用户访问一个页面之初的上报,用来记录该页面的 page view,进而可以得到 user view 等数据。
pv 上报的 xtype 字段值为 pv。每个页面都设有独有的 page name 值。
可以查阅 km 文档:http://km.innotechx.com/pages/viewpage.action?pageId=76903202
另,每一次 pv 上报都使用不同的 page id。为了防止 page id 重复,其生成规则采用了时间和空间维度双重保障,具体规则如下:
page_name + 时间戳 + 10 位随机字符串
page id 的生命周期可以理解为页面访问到页面退出,可以合理用在比如路径查找、订单归因等数据清洗过程中。
在 qe 平台上有清洗的实时 pv 表:mengtuidw.dwd_bhv_pv_rt
mengtuidw.dwd_bhv_pv_rt
曝光上报包含商品曝光上报、页面模块曝光上报等,其 xtype 值为 res.imp。
曝光上报一般伴随两个特别字段 pos_id 和 res_id。其含义如下:
pos_id
res_id
可以通过这两个字段精确到页面具体位置的上报,其知晓上报内容。比如 pos_id = 'recommend.1',res_id = 'goods?id=1002832',表示来源于页面的推荐列表,曝光的商品 id 是 1002832。
1002832
相关 pos_id 及 res_id 定义可以查看文档:http://km.innotechx.com/pages/viewpage.action?pageId=40140937
在 qe 平台上有清洗的实时曝光表:mengtuidw.dwd_bhv_exposure_rt
mengtuidw.dwd_bhv_exposure_rt
tdata 字段是推荐这边比较关注的一个字段,它不仅限于一个特定类型的上报中,而是结合在包括 pv、res.imp 等上报中,通常以 xtdata 字段标识其值。
xtdata
xtdata 字段值是一个 JSON String,其中包含了业务方需要的信息。
tdata 上报拥有一条包含曝光到下单,比较完整的上报链路,如下所示:
算法推荐 -> GO 商品列表接口 -> 客户端曝光 -> 用户点击至商详 -> 用户下单
通过这个路径,能够保障 tdata 字段可以最终关联上商品产生的订单。
tdata
在上述路径中,tdata 字段值会被一直透传,直至后续路径断开。该过程中,对 tdata 字段值一律不作处理,所以最终上报内容是等于下发内容的。了解这一点有助于快速排出问题。
另外,tdata 字段目前有 2 个业务在使用,一个是算法推荐,另一个是广告系统。算法推荐使用 5 个 key,分别是 req_id, p_score, o_score, from, s_score,目前除了 req_id 字段,其他几个字段比较鲜见;广告系统使用 1 个 key: ads_report。 所以在调整 tdata 字段时需要注意不影响其他业务,并且及时通知维护文档:http://km.innotechx.com/pages/viewpage.action?pageId=97708332
5
key
req_id
p_score
o_score
from
s_score
1
ads_report
session 上报是在发生和商品相关的上报时,增加的一种冗余上报,
session 上报的 type 值为 session。该上报中使用 xsession 字段表达上报内容,xsession 字段值是一个 JSON String,其中 key 枚举如下:
session
xsession
在任何上报中含有 goods_id 字段时,即产生 session 上报。
goods_id
产生 session 上报的重要来源有:
业务迭代过程中,为了减少清洗数据带来的人力和资源成本,所以增加了字段含义更为抽象的 mt 上报。
mt 上报中,ext1 到 ext10 这 10 个字段都是根据具体上报定其含义。
ext1
ext10
10
这带来的好处是清洗一次表后,任何上报都可以在 mt 上报中得到表达。不便之处是具体上报中 ext 字段含义需要对照文档进行识别。
ext
萌推 APP 在测试版 APP 中增加了一些辅助工具帮助数分及其他同学可以方便查看上报信息。
首页是下载测试版 APP,
下载地址:
iOS 版本的安装需要在 plist 中增加手机设备识别号,需要联系 杰伦、女巫 进行步骤指导和安装
杰伦
女巫
安装完成后需要设置一下 APP,
进入 我的 - 设置
我的
设置
进入 调试工程模式 切换环境 正式环境 开启 H5 DEBUG 模式 开启 强制关闭HTML本地资源包映射 点击顶部 保存重启
调试工程模式
正式环境
H5 DEBUG 模式
强制关闭HTML本地资源包映射
保存重启
如提示 “当前环境,无需切换”,可以手动杀死 APP,再次打开生效
进入 Debug 切换环境 线上环境 开启 是否强制使用远程资源包 开启 是否使用H5Debug 点击顶部 立即生效
Debug
线上环境
是否强制使用远程资源包
是否使用H5Debug
立即生效
如点击 立即生效 无反馈,可以手动杀死 APP,再次打开生效
设置完成后,进入 H5 页面会发现右上角多了一个 toggle 按钮,表示已经生效。
点击 toggle 按钮可以切换可视化数据显示/隐藏。
一般的 PV 信息和曝光信息会在页面上直观呈现。
设置完成后,H5 页面的右下角会多一个绿色的原型按钮。通过该按钮,可以直接查看商品数据。
具体操作是,先点击按钮,按钮此时会变成红色,表示进入选区模式。
在选区模式时,手指滑动屏幕,会出现一个选区。将选区选定一个商品名称,此时会出现一个遮罩层,展示出该商品相关的原始数据。
埋点规则:http://km.innotechx.com/pages/viewpage.action?pageId=34799684 page name 一览:http://km.innotechx.com/pages/viewpage.action?pageId=76903202 mt 上报一览:http://km.innotechx.com/pages/viewpage.action?pageId=72857273 session 上报规则:http://km.innotechx.com/pages/viewpage.action?pageId=69748056 pos_id/res_id 规则及一览:http://km.innotechx.com/pages/viewpage.action?pageId=40140937 字段解释:http://km.innotechx.com/pages/viewpage.action?pageId=69731721 APP 采集上报文档:http://km.innotechx.com/pages/viewpage.action?pageId=82251637
QE 平台:http://dataplatform.qutoutiao.net/qe_vue/#/search
萌推项目的采集上报规范在立项之初基本已经定义完备,在后续业务迭代过程中也得到了充分的验证。
埋点规范
萌推的采集上报基于集团的采集上报工具,为了区分集团采集上报的预留字段,所有萌推项目上报的字段都以字母
x
开头。比如type
字段,在原始报表中是xtype
字段。萌推所有业务上报字段的值,均为字符串格式或者 NULL。这个的缘由是原始数据落库处理时会将值根据其数据类型放入不同的字段,比如
a= 123
,最终落库的数据为 a={int_type=123, long_type=0, float_type=0.0, string_type=0},如果是a="xyz"
,落库后成了 a={int_type=0, long_type=0, float_type=0.0, string_type=xyz}。为了清洗数据方便,我们规定所有上报字段都用字符串格式。通用字段
萌推项目每次上报都使用一些通用字段,通用字段中部分来自集团使用的字段,部分来自项目自定义字段,枚举如下:
pv
、mt
、res.imp
等goods_detail
NULL
和test
,test
表示非生产环境,一般清洗数据需要剔除test
数据kuid 和 tuid 关系
关于 kuid,kuid 在 iOS 和安卓下可以被解析为有效的 tuid,在其他非 APP 环境下皆无法正确解析为 tuid。
另外,萌推 H5 页面在 APP 环境下是使用 APP kuid 进行上报,所以无需区分 APP 下是 H5 还是原生上报。
xe_time 字段
集团上报 SDK 是收集上报机制,会在一个时间跨度之后将收集的上报一次性全部发送,即 N 条上报信息到达服务器的时间相同,所以上报产生时间需要通过 xe_time 字段记录。
类型枚举
上报的类型种类比较繁多,理论上是可以无限扩展的,常用的有
pv
、action.click
等,这里先枚举一些常用的类型:还有一些常用上报类型下面细述。
pv 上报
pv 上报一般指用户访问一个页面之初的上报,用来记录该页面的 page view,进而可以得到 user view 等数据。
pv 上报的
xtype
字段值为pv
。每个页面都设有独有的 page name 值。可以查阅 km 文档:http://km.innotechx.com/pages/viewpage.action?pageId=76903202
另,每一次 pv 上报都使用不同的 page id。为了防止 page id 重复,其生成规则采用了时间和空间维度双重保障,具体规则如下:
page_name + 时间戳 + 10 位随机字符串
page id 的生命周期可以理解为页面访问到页面退出,可以合理用在比如路径查找、订单归因等数据清洗过程中。
在 qe 平台上有清洗的实时 pv 表:
mengtuidw.dwd_bhv_pv_rt
曝光上报
曝光上报包含商品曝光上报、页面模块曝光上报等,其
xtype
值为res.imp
。曝光上报一般伴随两个特别字段
pos_id
和res_id
。其含义如下:可以通过这两个字段精确到页面具体位置的上报,其知晓上报内容。比如 pos_id = 'recommend.1',res_id = 'goods?id=1002832',表示来源于页面的推荐列表,曝光的商品 id 是
1002832
。相关 pos_id 及 res_id 定义可以查看文档:http://km.innotechx.com/pages/viewpage.action?pageId=40140937
在 qe 平台上有清洗的实时曝光表:
mengtuidw.dwd_bhv_exposure_rt
tdata 字段上报
tdata 字段是推荐这边比较关注的一个字段,它不仅限于一个特定类型的上报中,而是结合在包括
pv
、res.imp
等上报中,通常以xtdata
字段标识其值。xtdata
字段值是一个 JSON String,其中包含了业务方需要的信息。上报路径
tdata 上报拥有一条包含曝光到下单,比较完整的上报链路,如下所示:
算法推荐 -> GO 商品列表接口 -> 客户端曝光 -> 用户点击至商详 -> 用户下单
通过这个路径,能够保障
tdata
字段可以最终关联上商品产生的订单。字段透传
在上述路径中,
tdata
字段值会被一直透传,直至后续路径断开。该过程中,对tdata
字段值一律不作处理,所以最终上报内容是等于下发内容的。了解这一点有助于快速排出问题。业务划分
另外,
tdata
字段目前有 2 个业务在使用,一个是算法推荐,另一个是广告系统。算法推荐使用5
个key
,分别是req_id
,p_score
,o_score
,from
,s_score
,目前除了req_id
字段,其他几个字段比较鲜见;广告系统使用1
个key
:ads_report
。 所以在调整tdata
字段时需要注意不影响其他业务,并且及时通知维护文档:http://km.innotechx.com/pages/viewpage.action?pageId=97708332session 上报
session 上报是在发生和商品相关的上报时,增加的一种冗余上报,
上报规则
session 上报的
type
值为session
。该上报中使用xsession
字段表达上报内容,xsession
字段值是一个 JSON String,其中key
枚举如下:上报时机
在任何上报中含有
goods_id
字段时,即产生 session 上报。产生 session 上报的重要来源有:
mt 上报
业务迭代过程中,为了减少清洗数据带来的人力和资源成本,所以增加了字段含义更为抽象的 mt 上报。
上报规则
mt 上报中,
ext1
到ext10
这10
个字段都是根据具体上报定其含义。这带来的好处是清洗一次表后,任何上报都可以在 mt 上报中得到表达。不便之处是具体上报中
ext
字段含义需要对照文档进行识别。辅助工具
萌推 APP 在测试版 APP 中增加了一些辅助工具帮助数分及其他同学可以方便查看上报信息。
首页是下载测试版 APP,
下载地址:
iOS 版本的安装需要在 plist 中增加手机设备识别号,需要联系
杰伦
、女巫
进行步骤指导和安装安装完成后需要设置一下 APP,
进入
我的
-设置
安卓步骤:
进入
调试工程模式
切换环境正式环境
开启H5 DEBUG 模式
开启强制关闭HTML本地资源包映射
点击顶部保存重启
如提示 “当前环境,无需切换”,可以手动杀死 APP,再次打开生效
iOS 步骤:
进入
Debug
切换环境线上环境
开启是否强制使用远程资源包
开启是否使用H5Debug
点击顶部立即生效
如点击
立即生效
无反馈,可以手动杀死 APP,再次打开生效上报内容查看工具
设置完成后,进入 H5 页面会发现右上角多了一个 toggle 按钮,表示已经生效。
点击 toggle 按钮可以切换可视化数据显示/隐藏。
一般的 PV 信息和曝光信息会在页面上直观呈现。
商品信息查看工具
设置完成后,H5 页面的右下角会多一个绿色的原型按钮。通过该按钮,可以直接查看商品数据。
具体操作是,先点击按钮,按钮此时会变成红色,表示进入选区模式。
在选区模式时,手指滑动屏幕,会出现一个选区。将选区选定一个商品名称,此时会出现一个遮罩层,展示出该商品相关的原始数据。
附录
文档
埋点规则:http://km.innotechx.com/pages/viewpage.action?pageId=34799684 page name 一览:http://km.innotechx.com/pages/viewpage.action?pageId=76903202 mt 上报一览:http://km.innotechx.com/pages/viewpage.action?pageId=72857273 session 上报规则:http://km.innotechx.com/pages/viewpage.action?pageId=69748056 pos_id/res_id 规则及一览:http://km.innotechx.com/pages/viewpage.action?pageId=40140937 字段解释:http://km.innotechx.com/pages/viewpage.action?pageId=69731721 APP 采集上报文档:http://km.innotechx.com/pages/viewpage.action?pageId=82251637
数据查询工具
QE 平台:http://dataplatform.qutoutiao.net/qe_vue/#/search
Thanks