一种用户行为数据采集方法

文档序号:8282194阅读:1876来源:国知局
一种用户行为数据采集方法
【技术领域】
[0001]本发明涉及数据采集技术领域,尤其涉及一种用户行为数据采集方法。
【背景技术】
[0002]通过采集和分析用户的行为数据,能够了解用户的使用习惯和使用体验,便于软件开发人员进行软件改进,同时通过了解用户的使用习惯,也可以定向推送一些服务。
[0003]移动电子设备自身的操作系统内部提供大量的API (Applicat1n ProgrammingInterface,应用程序编程接口),以方便软件开发人员编程时调用。一般可调用相关的API直接记录用户操作id到文件再上传到服务器,但这样能采集到的信息有限,同时存在因记录文件过大造成上传较慢的风险,而且不利于服务器的数据挖掘,容易造成服务器接口压力过大,同时监控行为也会加大移动设备的能耗。

【发明内容】

[0004]针对现有技术中的用户行为数据采集方法存在的上述技术问题,本发明公开了一种新的用户行为数据采集方法。
[0005]本发明的发明目的通过下述技术方案来实现:
一种用户行为数据采集方法,其具体包括以下的步骤:步骤一、程序启动后,监控线程启动,所述监控线程用于在用户操作程序时,将用户的行为数据放入到队列中;其中行为数据包括用户操作id以及相关的操作信息;步骤二、从队列中获取一条用户的行为数据,然后按照定义好的词表以及语义将该行为数据组装成一个有意义的语句,所述词表为事先定义好的所有有可能的用户行为;步骤三、将步骤二组装的有意义的语句保存到记录文件中,然后在队列中删除本条记录。通过该方法将用户的行为数据进行有效的采集。
[0006]更进一步地,上述方法还包括当存在新的语句需要保存时,判断记录文件的阈值是否大于设定的阈值,是则创建新的记录文件,否则将语句保存在原来的记录文件中。
[0007]更进一步地,上述方法还包括当步骤三执行时,添加一个全局的锁保护步骤三的执行。防止在保存记录到本地的同时上传记录模块也去操作该记录文件,从而造成冲突。
[0008]更进一步地,上述方法还包括当用户没有操作时,监控线程处于休眠状态,执行操作时才唤醒。通过这样的方法在最大程度上节省能耗。
[0009]更进一步地,上述在用户操作程序时,将用户的行为数据放入到队列中具体为:在需要统计用户操作行为的地方预埋统计点。
[0010]更进一步地,上述词表包括用户操作id子表、软件功能模块子表、用户操作行为子表和操作结果子表。
[0011]更进一步地,上述方法还包括判断队列中是否还有数据,若有,则继续从队列中获取用户的行为数据,若无,则继续监控,等待用户操作。
[0012]更进一步地,上述方法还包括当程序终止时,监控线程也结束。
[0013]更进一步地,上述方法还包括将记录的用户行为数据定时上传到服务器。其中定时可以为固定的时间点,比如哦O点,7点,12点,也可以是固定的时间差,比如间隔4个小时等。
[0014]通过采用以上技术方案,本发明的有益效果是:用户的行为数据是基于词表组成的有意义的操作,方便服务器端进行数据挖掘。设置上传的时间间隔与最小上传记录文件大小的阀值,便于减轻服务器的压力,节省成本。考虑移动设备的性能问题,设置记录文件的最大阀值。使用运行循环及信号技术,只有用户操作时才会唤醒监控线程,以达到该线程的最低能耗。
【附图说明】
[0015]图1为本发明的用户行为数据采集的流程图。
[0016]图2为本发明的将用户行为数据上传到服务器的流程图。
【具体实施方式】
[0017]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细的说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0018]本发明公开了一种用户行为数据采集方法,其具体包括以下的步骤:
步骤一、事先根据需要采集的用户行为定义好词表,所述词表包括用户所有可能的操作行为;所述词表可以按照以下的方式设定,其包括用户操作id子表、软件功能模块子表、用户操作行为子表和操作结果子表。所述用户操作id子表用于记录每个id代表的含义,例如表示用户取景界面拍照;所述软件功能模块子表用于记录实现功能的软件模块,例如:Camera表不相机模块;所述用户操作行为子表用于记录用户的行为,例如:Click_Camera_Button表示点击了拍照按钮;所述操作结果子表用于统计操作结果,例如:GetUserInfo_Requst_Result表示获取用户请求的结果。
[0019]步骤二、在需要统计用户操作行为的地方预埋统计点;例如:我们需要统计用户的拍照行为,则在拍照操作的响应函数中取出用户操作id子表中的id_l_l,由于该行为是相机模块产生的,贝1J又取出Camera,再取出用户的操作行为Click_Camera_Button等信息。
[0020]步骤三、当程序启动时,开启两个线程,一个用于监控用户行为,获取行为数据,一个用于上传记录到服务器。
[0021]步骤四、当用户操作时,将对应预埋点的用户操作id以及相关的操作信息(例如:id_l_l, Camera, Click_Camera_Button 等)组成一个字典结构,如下所不:
{
EventId = “id_l_l,,,
In = “Camera,,,
Act1n = “Click_Camera_Button,,,
Userid = “A792C1D15AEF”,
}
并将其放入到一个安全队列中。
[0022]步骤五、从队列中获取一条字典数据,然后从字典中取出对应信息的值,再将对应的值按照语义格式化成一个串(例如:EventId:1d_l_l Userid:A792C1D15AEFAct1n:Click_Camera_Button In:Camera 即是说发生了事件用户 A792C1D15AEF在相机模块点击了拍照按钮)。
[0023]步骤六、检查本地最新记录文件的大小,如果大于设定的阀值(可设置为50KB,但不限定于50KB),则创建一个新的记录文件,如果小于设定的阀值,则保存记录到本地最新的记录文件中。
[0024]步骤七、将本次记录(即步骤六中已保存的记录)从队列里删除。并判断队列中是否还有数据,若有,则回到步骤五,若无,则继续监控,等待用户操作。若程序终止,则监控也结束。
[0025]具体的一个优选例
在将行为数据放入到安全队列时,添加一个全局的锁,用于保护本段代码的执行,防止在保存记录到本地的同时上传记录模块也去操作该记录文件,从而造成冲突,若成功锁住,则执行下一步:从队列中获取一条数据,取出此次用户操作相关的信息结构,然后按照语义将该结构中的信息组装成一个有意义的语句。
[0026]如图1所示的本发明的用户行为数据采集的流程图。
[0027]I)首先定义好词表,其中,词表分为用户操
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1