App数据埋点模块设计

简介: 通过数据埋点来提取运营数据

前言

一款App的运营离不开数据的支撑,数据可以直观的体现产品力。运营需要的数据非常多,所以会设计大量的埋点采集数据,甚至某些指标需要一系列的的埋点才能提供可供分析的结果。

埋点模块设计的重点:

  1. 作为运营人员,需要设计与配置埋点足够的快捷。所以需要设计一套埋点规则,使他们可以根据需求来制作数据埋点规则。
  2. 作为运营人员,需要频繁的修改埋点规则。所以需要做好埋点规则配置文件的下发管理。
  3. 作为运营人员,需要获得时效性更强的数据。所以需要对埋点数据的上传进行管理。
  4. 作为开发人员,需要简便的代码实现方式。所以需要提供高封装程度的API,以及容易理解的配置方式。

何为埋点

埋点是用来记录用户触发的某一个动作,或者程序流程中的某一个状态。埋点需要从运营的角度来设计,埋点中记录的数据要足够描述它的定义,这样才能在分析时产生价值。

为了还原事件本身,埋点至少需要包含人物,时间,地点,三个要素,如果是属于流程中的埋点,还需添加事件信息。

人物:触发埋点时的用户身份。

时间:触发埋点的时间。

地点:触发埋点的设备信息、网络条件、App版本等。

事件:事件的唯一ID,存在则表示有相关流程。

常规的埋点类型,可以分为五种。

  1. 页面类型,用于统计客户端页面打开与关闭的信息,按时间线串联页面埋点数据,可以拼凑出用户的使用路径。
  2. 事件类型,用于统计特定的事件触发次数,通常为流程中的一系列动作。比如从App打开,到用户发起Socket连接,再到用户登录IM,最后到用户完成数据获取,这一系列的事件埋点可以分析出用户完成登录的冷启动耗时。
  3. 状态类型,用于统计用户的某些状态,会在埋点数据上报时实时获取,比如用户当前是否开启推送,是否开启消息提示音等。
  4. 计数类型,用于统计事件的触发次数,区别与事件类型,计数类型在上报时会整合一个时间段的埋点数据,而不会上报所有事件,减小上传数据量,减轻服务端分析压力。比如用户打开相册,用户使用了首页搜索。这些数据可以整理出App的功能热力图,让开发有针对性的进行优化。
  5. 日常类型,用于进行实时性要求特别高的埋点。这类埋点不参与上报逻辑,会在触发时直接上报,保证数据实时性。比如用户登录时上报日活跃数据。

架构设计

埋点规则模型

  1. eventName,埋点事件名称
  2. remark,埋点描述
  3. type,指定埋点的分类(页面类型、事件类型、状态类型、计数类型、日常类型)。
  4. clientType,指定埋点生效的平台,比如PC、PAD、Phone,类型为位枚举,可以同时生效。
  5. vcClassName,页面类型埋点使用,用于指定iOS平台中关联的页面。
  6. data,用于指定埋点中需要的参数,同时参与参数校验,类型为Map。
  7. groupKeys,用于对计数类型埋点进行分组,类型为包含String的数组。

埋点数据模型

  1. eventName,埋点事件名称。
  2. remark,埋点描述。
  3. type,指定埋点的分类(页面类型、事件类型、状态类型、计数类型、日常类型)。
  4. displayMode,页面类型埋点使用,分为页面显示与页面消失两种类型。
  5. uploaded,用于判断该条埋点记录是否完成上传。
  6. triggerId,关联事件ID,用于串联埋点。
  7. triggerTime,事件的触发时间。
  8. dataJsonStr,埋点采集的数据,用JSON String存储。

埋点规则配置

埋点规则是多平台一起使用的,使用JSON文件进行整理是比较好的方案。

再将文件放入客户端预埋,或者通过服务端下发更新都可以。

{
   
    "version":"1.0.0",
    "commonData":{
   
        "OSVer":"",
        "appVer":"",
        "deviceModle":"",
        "clientType":0,
        "network":0,
        "areaId":"",
        "numId":"",
        "userId":"",
        "triggerTime":0,
        "triggerId":""
    },
    "rules":[
        {
   
            "iOSVCClassName":"IMSessionVC",
            "AndroidPageClassName":"IMSessionVC",
            "remark":"进入/离开聊天会话界面",
            "eventName":"IMSessionPage",
            "type":0,
            "client":13,
            "data":{
   

            }
        },
        {
   
            "iOSVCClassName":"",
            "AndroidPageClassName":"",
            "remark":"打开消息管理器",
            "eventName":"IMMsgManagerPage",
            "type":0,
            "client":8,
            "data":{
   

            }
        }
    ]
}

埋点记录上传

上传间隔超过1小时,就会上传一次数据。

每次上传数据需要控制数据包大小,比如每次只上传100条,防止过度占用网络资源。

上传后的记录需要标记,防止重复上传。

目录
相关文章
|
1月前
|
JSON API 网络安全
App数据的爬取
App数据的爬取
|
3月前
|
JavaScript IDE 开发工具
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
这篇文章介绍了在Vue 3 + TypeScript + Vite开发环境中解决找不到`.vue`文件模块或其类型声明错误的两种方法:使用VSCode的TypeScript Vue Plugin (Volar)插件或手动在`env.d.ts`文件中声明`*.vue`模块类型。
421 0
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
|
3月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
3月前
|
缓存
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
|
3月前
|
Go 开发者
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
|
3月前
【Azure 事件中心】在Azure Function App中消费Event Hub数据,时常出现EventReceiveError
【Azure 事件中心】在Azure Function App中消费Event Hub数据,时常出现EventReceiveError
|
3月前
|
关系型数据库 Linux PostgreSQL
【Azure 应用服务】Azure Function App Linux环境下的Python Function,安装 psycopg2 模块错误
【Azure 应用服务】Azure Function App Linux环境下的Python Function,安装 psycopg2 模块错误
|
3月前
【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
|
4月前
|
小程序 安全 数据挖掘
陪玩语聊APP小程序定制开发模块功能
随着电竞行业的规范化,游戏陪玩软件兴起,提供专业陪玩服务。核心功能包括:多样化注册登录、用户资料展示、智能匹配筛选陪玩、语音互动(多人/私聊)、订单交易管理、陪玩入驻审核、数据分析、客服系统及社交功能。旨在融合游戏、语音聊天与社交,构建综合娱乐平台。
|
5月前
|
安全 测试技术 网络安全
APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器
APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器
下一篇
无影云桌面