image.png

1. 埋点数据基本格式

用户行为数据传输:
如果对每一次用户行为都传输一条日志数据,会产生大量的网络IO。因此采用批处理的形式,将一段时间的用户行为缓存起来,统一传输给后台。

数据格式:JSON

日志内容

  1. 公共字段(与事件本身无关
  2. 业务字段

    1. 1506047606708 | { // 接收时间
    2. "ap": "xxxx", // 项目数据来源 app pc
    3. "cm": { // 公共字段
    4. "mid": "", // 设备唯一标识
    5. "uid": "", // 用户标识
    6. "vc": "1", // versionCode
    7. "vn": "1.0", // versionName
    8. "l": "zh", // language
    9. "sr": "", // 渠道号,应用是从哪个渠道来的
    10. "os": "7.1.1", // 操作系统版本
    11. "ar": "CN", // area
    12. "md": "", // model 手机型号
    13. "ba": "", // brand 手机品牌
    14. "sv": "", // sdkVersion
    15. "g": "", // gmail
    16. "hw": "1620 * 1080", // height x width 屏幕宽高
    17. "t": "1506047606608", // 客户端日志产生的时间
    18. "nw": "WIFI", // 网络模式
    19. "ln": 0, // 经度
    20. "la": 0 // 纬度
    21. },
    22. "et":[ // 事件
    23. {
    24. "ett": "1506047606608", // 客户端时间产生的时间
    25. "en": "display", // 事件名称
    26. "kv": { // key-value
    27. }
    28. }
    29. ]
    30. }

    2. 事件日志数据

    1. 商品列表页(loading

    1. {
    2. "ett": "1506047606608", // 客户端时间产生的时间
    3. "en": "loading", // 事件名称
    4. "kv": { // key-value
    5. action: 1, // 动作: 1开始加载, 2加载成功, 3加载失败,
    6. loading_time: 1 , // 加载时长
    7. loading_way: 1, // 加载类型:1读取缓存,2从接口拉新数据
    8. extend1: null, // 扩展字段
    9. extend2: null,
    10. type: 1, // 加载类型: 1自动加载,2用户下拉加载,3底部加载
    11. type1: null // 加载失败码
    12. }
    13. }

    2. 商品曝光(display

    1. {
    2. "ett": "1506047606608", // 客户端时间产生的时间
    3. "en": "display", // 事件名称
    4. "kv": { // key-value
    5. action: 1, // 动作: 1曝光商品, 2点击商品,
    6. goodsid: 1 , // 商品ID
    7. place: 1, // 顺序,第几条商品容易被点击(广告位
    8. extend1: null, // 曝光类型:1首次曝光,2重复曝光
    9. category: 1 // 分类id
    10. }
    11. }

    3. 商品详情页(newsdetail

    1. {
    2. "ett": "1506047606608", // 客户端时间产生的时间
    3. "en": "newsdetail", // 事件名称
    4. "kv": { // key-value
    5. entry: 1, // 页面入口来源:首页推荐=1push=2,详情页相关推荐=3,
    6. action: 1, // 动作: 1开始加载, 2加载成功, 3加载失败,
    7. goodsid: 1 , // 商品ID
    8. show_style: 1, // 页面停留时长
    9. news_staytime: 1200, // 曝光类型:1首次曝光,2重复曝光
    10. loading_time: 1, // 加载时长
    11. type1: null, // 加载失败码
    12. category: 1 // 分类id
    13. }
    14. }

    4. 购物车(cart

    1. {
    2. "ett": "1506047606608", // 客户端时间产生的时间
    3. "en": "cart", // 事件名称
    4. "kv": { // key-value
    5. itemid: 1, // 商品
    6. action: 1, // 动作: 1添加购物车, 2改变商品数量, 3移除商品,
    7. change_num: 1 , // 加减数量
    8. before_num: 1, // 更改前数量
    9. after_number: 10, // 更改后数量
    10. price: 1, // 商品单价
    11. }
    12. }

    5. 广告(ad

    1. {
    2. "ett": "1506047606608", // 客户端时间产生的时间
    3. "en": "ad", // 事件名称
    4. "kv": { // key-value
    5. entry: 1, // 入口:商品列表页=1,应用首页=2,商品详情页=3,
    6. action: 1, // 动作: 1请求广告, 2取缓存展示, 3广告位展示, 4广告展示,5广告点击
    7. content: 1, // 状态:1成功,2失败
    8. detail: null , // 失败码
    9. newstype: 1, // Type: 1图文,2图集,3段子,4GIF5视频,6纯文
    10. // ....
    11. }
    12. }

    6. 消息通知(notification

    1. {
    2. "ett": "1506047606608", // 客户端时间产生的时间
    3. "en": "notification", // 事件名称
    4. "kv": { // key-value
    5. action: 1, // 动作:
    6. type: 1, //
    7. }
    8. }

    7. 评论(comment

    8. 收藏(favorites

    9. 点赞(praise

    10. 错误日志(error

  • 错误摘要
  • 错误详情

    11. 启动日志(start

  • 入口

  • 开屏广告
  • action
  • loading_time

3. 数据生成脚本

TODO:video 11跟着做