数据统计里CDM&RDM探讨

目录

 

一、WEB端数据采集的格式

1、数据样例

2、数据格式说明 

二、APP数据采集格式

1、要采集的内容

2、APP数据格式

3、格式样例

4、渠道号分配标准

5、业务产品编号标准

6、埋点数据格式

6.1 埋点的问题与经验

6.2 埋点管理

三、数据分析

1、敏感度属性

2、公共属性

3、场景还原


一、WEB端数据采集的格式

1、数据样例

{"message":"{\"site_id\":\"workbench\",\"cookie_id\":\"h75ZMvBSyw7vqwIvyemM6PojWLfgVHH08ZEr2aXqRyRwvSRHkp\",\"domain\":\"xx.com.cn\",\"url_path\":\"/v1/task/bid\",\"url_params\":\"id=2501027&customer_id=6611\",\"operating_system\":\"Windows\",\"operating_system_version\":\"7\",\"browser\":\"Chrome\",\"browser_version\":\"55\",\"uid\":\"991002209\",\"element_id\":\"\",\"type\":\"page_view\",\"extra\":{},\"ip\":\"182.92.253.72\",\"created_at\":\"2018-06-25 00:01:58\"}"}

{
    "message":{
        "siteid":"workbench",
        "cookie_id":"h75ZMvBSyw7vqwIvyemM6PojWLfgVHH08ZEr2aXqRyRwvSRHkp",
        "domain":"xx.company.com.cn",
        "url_path":"/v1/task/bid",
        "url_params":"id=2501027&customer_id=6611",
        "operating_system":"Windows",
        "operating_system_version":"7",
        "browser":"Chrome",
        "browser_version":"55",
        "uid":"991002209",
        "element_id":"",
        "type":"page_view",
        "extra":{

        },
        "ip":"182.92.253.72",
        "created_at":"2018-06-25 00:01:58"
    }
}

2、数据格式说明 

采集项 采集项举例 说明 备注
site_id workbench等 代表哪个应用。数据组进行同一的定义和分配  
created_at 2017-01-01 10:00:00 请求时间  
cookie_id      
domain      
url_path      
url_params      
operating_system 操作系统    
operating_system_version 操作系统版本    
browser 浏览器    
browser_version 浏览器版本    
ip ip地址    
uid 用户id 根据登录判断 只有用户登录之后才会有该字段
type page_view-浏览行为,page_op-操作行为    
element_id 按钮或者链接 元素的 id 具体点击某个页面按钮或者某个链接  
extra 扩展字段 业务根据自己需要添加 用户自定义的json结构,key和value 业务可以根据自己的具体业务场景来进行添加

二、APP数据采集格式

1、要采集的内容

  • 屏幕尺寸:手机屏幕分辨率,高x宽,如:1024x768,2340x1080
  • 运营商:中国移动、中国联通、中国电信、Wifi
  • 接入点:Wifi接入点名称、CMNET、CMWAP之类的。
  • 系统:移动设备系统,iOS、Android
  • 系统版本:移动设备系统版本号,如:8.0(与系统结合表示,如 iOS 8.0)
  • 机型:如OPPO Find X,iPhone 6S
  • mac地址:也存在取不到的情况
  • 设备标识:设备id,设备标识的组成待确认
  • 渠道标识:渠道号,表示APP下载的渠道,如蒲公英、下崽器、XXX应用市场、AppStore
  • 业务标识:区分产品
  • imei:手机串号,山寨机存在重复问题或者为0
  • uid:用户id,该用户在业务系统里面的id
  • 使用时长:APP从启动到关闭的时间,从后台切换都前台算一次启动。屏幕熄灭30秒后再次打开算一次新的启动。
  • 页面时长:进入页面到离开页面的时间,APP重新打开的计时也重新计算。
  • 事件:用户操作事件,滑动、点击等。
  • GPS坐标:经纬度

2、APP数据格式

注:

1)、每次launch为一个session,launch指开启客户端或者把客户端激活到手机前台

2)、body里launch session_id为当前会话,terminate及event里的session_id为上次会话

下面是iOS示例,标红部分为讨论后需要增加的:

        说明 类型 示例(iOS平台示例) 备注
header       header标签 dictionary   header对象,一个数据包只有一个header对象
  resolution     屏幕尺寸:高x宽 String 1136x640 header对象属性
  carrier     运营商 String 中国移动
  access     网络接入状态 String 一共有三种:
WiFi
WWAN
NotReachable
  chn     渠道号 String 3023_0001
  os     移动设备系统 String iPhone OS
  os_version     移动设备系统版本号 String 7.0.3
  pn     业务产品标识 String 6040093012
  stat_version     统计SDK版本号 String 3.0.1
  mac     mac地址 String 2:0:0:0:0:0
获取不到赋值空
  device_id     设备id String 40位md5后字符串同uid
  imei     imei String iOS没有此属性,赋值为空
  uid     用户uid String  
  model     机型 String iPhone 6S  Nginx日志可以读取到
  longitude         经度  
  latitude         纬度  
  app_version         APP版本:APP版本  
  screening_marker     筛选标志 dictionary

筛选标志扩展字段k-v对,如:

“是否封装客户”:“是”;“任务类型”:“竞价”

 
body       body标签 dictionary   body对象
  terminate     会话结束标签 array   body对象的terminate属性,数组存放terminate对象
    session_id   会话id,唯一标示从使用客户端
到不使用客户端的一个时间段
规则为:1位随机数+uid+date+time
String 4ab85631b0d4f5b0adcc4a56237d727c2f782bab62013-12-19 14:00:21 terminate对象属性
activities是一个数组,存放页面停留时间
    date   格式YYYY-MM-DD String 格式为:2013-12-5
    time   格式HH:MM:SS String 格式为: 14:00:33
    duration   本session使用时长单位毫秒 NSUInteger 1799
    activities   会话页面流    
      页面 页面名称String String article

页面流按顺序排列

      停留时间 本页面停留时长,单位毫秒 NSUInteger 1799
      跳出标记 跳出APP标记   默认0,1表示APP从当前页面跳出(结束当前session)
  event     事件 array   body对象的event属性,数组存放event对象
    session_id   会话id 同上 String 4ab85631b0d4f5b0adcc4a56237d727c2f782bab62013-12-19 14:00:21 event对象属性
    tag   标签,扩展字段    
    date   格式YYYY-MM-DD String 格式为:2013-12-5
    time   格式HH:MM:SS String 格式为: 14:00:33
    event_id   事件id String SN_0002
    attributes   事件属性扩展 dictionary  "article_id" : "124-10733294-news-cms"
  launch     会话启动标签 array   body对象的launch属性,数组存放launch对象
    session_id   会话id 同上 String 4ab85631b0d4f5b0adcc4a56237d727c2f782bab62013-12-19 14:00:21 launch对象属性
 
    date   格式YYYY-MM-DD String 格式为:2013-12-5
    time   格式HH:MM:SS String 格式为: 14:00:33

3、格式样例

{
    "body":{
        "terminate":[
            {
                "activities":[
                    [
                        "ThreePage",
                        9
                    ],
                    [
                        "OnePage",
                        1
                    ]
                ],
                "session_id":"7A0F3618B56A388F35E65393C1B0F00D",
                "date":"2013-04-08",
                "time":"11:57:45",
                "duration":20
            }
        ],
        "event":[
            {
                "session_id":"7A0F3618B56A388F35E65393C1B0F00D",
                "event_id":"MacBook",
                "tag":"Mac_Category",
                "date":"2013-04-08",
                "time":"11:57:36"
            },
            {
                "session_id":"7A0F3618B56A388F35E65393C1B0F00A",
                "event_id":"Feature 2",
                "du":1632,
                "date":"2013-04-08",
                "tag":"MacBook",
                "time":"11:57:38"
            }
        ],
        "launch":[
            {
                "time":"11:57:53",
                "session_id":"1561EE8E20F2EC2C8D7DFAEE0CD398C3",
                "date":"2013-04-08"
            }
        ]
    },
    "header":{
        "resolution":"960x640",
        "carrier":"",
        "access":"WiFi",
        "chn":"App Store",
        "os":"iOS",
        "os_version":"8.0",
        "pn":"",
        "mac":"3C:07:54:06:36:DD",
        "device_id":"97f39d2d0662a2a7654da3cc4481f784491e2e2c",
        "imei":"",
        "uid":""
    }
}

注:数据样例里面为什么没有model、ip地址、地域之类的信息呢?因为这些数据完全可以通过上传Log时Http-Header获得,不需要再额外获取。至于说用户经常出差到处跑的情况不需要兼顾。

4、渠道号分配标准

6位数字编号,中间以下划线‘_’分割,编号AAA_BBB,AAA为大分类,目前用于区分内外部渠道,BBB为二级分类。

渠道分类 渠道名称 渠道号(chn) 说明
外部 应用宝 300_001 Android专用
外部 小米商店 300_002 Android专用
外部 百度应用助手 300_003 Android专用
外部 华为市场 300_004 Android专用
外部 360市场 300_005 Android专用
外部 oppo 300_006 Android专用
外部 AppStore 300_007 iPhone专用
外部 蒲公英 300_008 通用
外部 FIR 300_009 通用
       
内部 A端 100_001 通用,目前只支持B、C、S、F、Y
       

渠道号的分配与管理最好是具体到人或系统上申请后按照规则自动分配,目前我们只是采用很有限数量的分发渠道,可以简化处理。

5、业务产品编号标准

编号格式:AABCCCCDDDDEFFGGGH

AA: 代表产品。

01 A端 :  司机端(just for a example)

02 B端 :商户端

03 C端 :车队端

……

B: 代表主版本号。S端最新版本号是3.38.0,B=3。

CCCC: 次版本号,F端最新版本号是2.32.11,CCCC=0032。

DDDD:修订版本号,X端最新版本号是1.0.5,DDDD=0005。

E: 代表操作系统,下面只列主流的

E值 含义
1 Android
2 iOS
3 Android Pad
4 Windows Phone
5 iPad

EFF:代表适配机型系列号

101 Android平台默认机型 

  • 107 Android N,Nougat,牛轧糖
  • 108 Android O,Oreo,奥利奥
  • 109 Android P,Pistachio Ice Cream,开心果冰淇淋

201 iPhone平台默认机型 

  • 207   iOS 7
  • 208   iOS 8
  • 211   iOS 11
  • 212   iOS 12

301 Android Pad通用 

501 iPad通用

GGG:区分是哪个业务线/事业部

100 项目部

200 运力部

300 服务监督部

H:  备用

0 非签名版  
1 签名版  
2 通用版  
3 厂商版  
4 内测版  
5 华为定制版 
6小米定制版
7 SDK版 

举例来说,013003800001012001,表示S端v3.38.0安卓正式版,由运力纵线发布。

业务产品号的分配与管理最好是具体到人或系统上申请后按照规则自动分配,为了防止随意性,要有专人管理,申请时说明业务纵线、产品功能。

6、埋点数据格式

6.1 埋点的问题与经验

埋点是发展调整产品、实施TB测试、个性化推荐服务最重要的数据来源。在纯 Web 和 Native 开发的产品中,埋点从技术的角度来说未必多深奥,但从业务的角度来说要做到埋点设计规范、流程高效和保证质量却是很难。

就需求来源来说,不仅要有PRD,还要有DRD。在DRD 里明确业务目标与埋点缺口之间的关系以及需求的优先级。埋点的需求大多来自于 DRD,整个过程会涉及多个角色,主要包括产品经理、业务运营数据负责人、开发工程师、测试工程师。

注:PRD ——Product requirement document;DRD——Data requirement document。

和数据有关角色特点:

  • 运营数据分析人员和产品经理主要是数据的使用者,工作内容是发现和解决业务的问题,不断对产品进行迭代。
  • 工程师对代码的细节和打点时机最为了解,但是对于数据具体的使用不见得很清晰。
  • 数据仓库接口人负责业务数据的生产,和数据仓库团队对接,对埋点的定义需要有深入的理解。

埋点设计不合理或者埋点管理不规范都会带来各种问题,使得统计数据失真从而失去统计平台价值。

Web 端的埋点可以随着新代码上线即时生效,对版本的发布概念相对较弱,即使埋点错漏,修复成本较低。

对客户端而言,如果使用 Native 技术开发的功能埋点有问题,则需要等下一个版本才能修复,并且还有版本覆盖度的问题。修复埋点的这个时间窗口一般都比较长,会对业务的产品快速迭代产生很负面的影响。从业务的角度来说,客户端在发布功能之前,对于要做的数据分析不见得想得全,而如果无计划收集非常多的埋点,对于埋点设计人员、客户端开发、测试人员来说是很大的工作量。反过来说,真正要用数时才发现重要的埋点没有采集,则会 “点”到用时方恨少。因此,如何综合规划一个版本要采集的埋点,也是颇有挑战的事情,颇有“养兵千日,用兵一时”的感觉。

客户端发版往往会遇到新增的埋点打重、打错和打漏老的埋点缺少回归测试业务变化后埋点跟不上变化等等问题,给业务带来了不少困扰。一个易用性高、自动化和智能化的埋点测试平台也是迫在眉睫的事情。需要建立一整套埋点管理和测试系统或机制,测试工程师将埋点测试加入客户端发版流程,完善埋点的元信息,对核心埋点进行回归测试,切实提升埋点的质量。

6.2 埋点管理

1、数据格式

对应APP数据统计里面的event,形式为json-array:

event     事件 array  
  session_id   会话id 同上 String 4ab85631b0d4f5b0adcc4a56237d727c2f782bab62017-12-15 13:50:21
  tag   标签,扩展字段    
  date   格式YYYY-MM-DD String 格式为:2017-12-15
  time   格式HH:MM:SS String 格式为: 14:00:00
  event_id   事件id String SF_0002
  attributes   事件属性扩展 dictionary "article_id" : "124-10733294-news-cms---"

具体例子:

    "event":[ //会话事件
        {
            "session_id":"7A0F3618B56A388F35E65393C1B0F00D",
            "event_id":"MacBook",
            "tag":"Mac_Category",
            "date":"2018-04-08",
            "time":"11:57:36"
        },
        {
            "session_id":"7A0F3618B56A388F35E65393C1B0F00A",
            "event_id":"Feature 2",
            "date":"2018-04-08",
            "tag":"MacBook",
            "time":"11:57:38"
        }
    ]

2、DRD管理

页面位置 功能名称 功能标识 页面级别 说明 3.9.4 3.9.5 3.9.6 iOS Android
底部导航 资讯标签 navi_news 一级页面   add     y y
设置标签 navi_setting   add     y y
设置 头像点击 my_image 二级页面     del   - -
搜索功能 optional_search   rtn     y y
登陆功能 optional_account   rtn     y y
               
  • PM记录每个版本需要增加或删除或发生了调整的统计事件,包括功能发生了变化的
  • iOS和Android开发分别调整
  • 测试验证调整后标记y

三、数据分析

1、敏感度属性

基于用户心理的一种属性判断,如价格敏感型(司机/客户),服务敏感型(客户)、距离敏感型(司机)、活多活少敏感型(司机)等。

2、公共属性

3、场景还原

猜你喜欢

转载自blog.csdn.net/xujunfeng000/article/details/82313885