日志采集之移动端日志采集

移动端日志采集:
1)除了web页面日志采集的相关内容来提升用户体验外,还需要采集各种设备信息,以及各种设备的运行情况,协助开发者分析各类设备特有问题

2)移动端日志采集通过采集SDK完成,根据不同的用户行为分成不同的事件,事件是移动端日志采集的最小单位,基于常用的分析,把事件分为页面事件和控件点击事件等。

页面事件:
日志采集之移动端日志采集
1)SDK提供三个接口,三种接口配合使用:

①页面展现接口,在进入页面时调用,记录相关状态信息

②页面扩展信息接口,给记录添加相关参数

③页面退出接口,在点击详情页 / 点击返回 / 退出软件时调用,用于发送日志给采集服务器

2) 渗透参数:把当前页面的某些信息传递到之后浏览的页面,用于用户行为路径的还原。

控件事件:
1)采集用户交互信息,只需要把控件相关信息告诉采集SDK即可,具体包括:

日志采集之移动端日志采集
2)用户自定义埋点类:包含事件名称、事件时长、事件携带的属性、事件对应的页面

3)采集SDK默认埋点:包含自动捕捉应用崩溃、自动捕捉应用退出、自动捕捉应用前后台切换等与业务不相关但对于分析存在价值的数据捕捉

特殊场景:
在日志数据量巨大时,为了减少采集请求次数、采集服务器的压力以及网络压力,常常在采集SDK利用页面的生命周期进行聚合并选择适当的时机向采集服务器发送聚合请求。

案例说明:购物主会场页面 >> 女装分会场 >> 女装店铺A >> (返回)女装分会场 >> 女装店铺B

存在问题:第二次女装分会场的来源会被识别为女装店铺A,干扰用户行为分析

解决方法:利用页面生命周期,识别页面复用,配合栈来识别是否是回退行为

H5 & Native 日志:

1)app分两种:

① Native app:纯app页面

② Hybrid app: 既有Native app页面,也有H5嵌入app

2)由于Native页面与H5页面的采集方式、采集的内容以及采集服务器均分离开,需要对两种数据进行关联后在统一分析

3)考虑到采集SDK可以采集更多移动设备信息;采集SDK 采集到数据后先还存在本地再择机请求,选择把H5日志归一到Native页面的方式

H5 & Native 日志统一流程:
1)H5特面中的日志采集与浏览器页面采集完全相同

2)浏览器把javascript脚本采集到的数据打包成对象,调用WebView框架的JSBridge接口,把数据对象当作参数传入移动端采集SDK

3)采集SDK把传入的对象数据转换成移动端日志格式,在app端统一进行日志处理缓存到本地然后择机上传

日志传输:
1)采集SDK日志收集完日志之后,进行日志择机上传:

日志采集之移动端日志采集
2)移动端数据通过post请求发送给服务器,服务器对数据进行验证后,以Nginx的access_log方式存储

3)考虑到后续数据处理以及特定时期的日志级别保障,根据应用、日志类型对日志数据进行分流。分流的好处在于双十一等日志数据量巨大的时期,可以集中资源处理日志级别高的日志数据。