掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及埋点技术领域,特别涉及一种基于AOP编程的埋点数据采集方法、装置及存储介质。

背景技术

埋点技术是一种用于监控和数据采集的技术,通过在应用程序中嵌入代码,实现对用户行为和应用程序状态的监控和数据采集。在移动互联网领域,埋点技术广泛应用于应用程序开发、运营和推广中。

目前,市场上常用的iOS系统埋点数据采集方法,采集能力比较粗糙,覆盖功能范围局限,可动态自定义配置空间不大,做不到因需可配的程度,并且开发者需要配置的代码量过大,集成比较繁琐,没有完整的埋点方案和计划,埋点工具的可拓展性还有灵活性远远不够,不能满足不同的需求和各种使用场景,缺少埋点数据采集的控制能力,数据识别率较低。

发明内容

为了解决至少一个上述相关技术中存在的技术问题,本申请实施例提供了一种基于AOP编程的埋点数据采集方法、装置及存储介质,旨在实现覆盖范围广,数据识别率高,可以进行远程动态配置和控制的埋点数据采集,满足iOS系统中埋点技术的各种使用场景。

本申请实施例的第一方面提出了一种基于AOP编程的埋点数据采集方法,包括:

在服务端对埋点工具组件进行动态配置,获得埋点信息配置列表;

注册所述埋点工具组件,根据所述埋点信息配置列表初始化埋点;

响应于触发事件的发生,采用全埋点事件采集策略,底层拦截事件触发信号,利用所述埋点工具组件获得埋点采集数据;

将所述埋点采集数据录入数据库;

触发埋点数据上传周期,将所述埋点采集数据上传至服务端。

在一些实施例,所述方法还包括:

通过远程控制平台对所述埋点工具组件进行动态控制;所述动态控制至少包括控制所述埋点工具组件的启停、控制所述埋点工具组件的数据上传以及控制所述埋点工具组件的内存占用。

在一些实施例,所述响应于触发事件的发生,采用全埋点事件采集策略,底层拦截事件触发信号,利用所述埋点工具组件获得埋点采集数据这一步骤,具体包括:

响应于所述触发事件的发生,进行事件数据采集,获得第一埋点数据;

解析所述触发事件对应的事件属性信息;

组合所述事件属性信息和所述第一埋点数据,获得第二埋点数据;

获取公共预置属性;所述公共预置属性通过所述埋点工具组件进行配置;

根据所述公开预置属性与所述第二埋点数据,执行数据合并加工操作,获得所述埋点采集数据。

在一些实施例,所述在服务端对埋点工具组件进行动态配置,获得埋点信息配置列表这一步骤,具体包括:

配置多个预设埋点对应的埋点使用信息;所述埋点使用信息包括埋点预置属性、埋点对应的触发事件类型以及触发埋点时的数据采集方式;

提供数据加密选项,确定在触发各所述埋点时是否对获得的所述埋点采集数据进行加密处理。

在一些实施例,在执行所述响应于触发事件的发生,采用全埋点事件采集策略,底层拦截事件触发信号,利用所述埋点工具组件获得埋点采集数据这一步骤时,还包括步骤:

将在底层拦截到的所述事件触发信号返还给业务层,对所述触发事件进行事件处理。

在一些实施例,在执行所述触发埋点数据上传周期,将所述埋点采集数据上传至服务端这一步骤之后,还包括步骤:

对存储在所述数据库中已上传至服务端的埋点采集数据,执行数据清理操作,清理所述已上传至服务端的埋点采集数据。

在一些实施例,所述方法还包括:

定义所述触发事件,对所述触发事件进行埋点内部事件加工后,录入数据库。

在一些实施例,所述触发事件至少包括APP启动事件、APP退出事件、页面浏览事件、页面停留事件、页面关闭事件、控件点击事件以及异常闪退事件。

本申请实施例的第二方面提出了一种基于AOP编程思想的埋点数据采集装置,包括:

第一模块,用于在服务端对埋点工具组件进行动态配置,获得埋点信息配置列表;

第二模块,用于注册所述埋点工具组件,根据所述埋点信息配置列表初始化埋点;

第三模块,用于响应于触发事件的发生,采用全埋点事件采集策略,底层拦截事件触发信号,利用所述埋点工具组件获得埋点采集数据;

第四模块,用于将所述埋点采集数据录入数据库;

第五模块,用于触发埋点数据上传周期,将所述埋点采集数据上传至服务端。

本申请实施例的第三方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在被处理器执行时用于实现上述第一方面所述的埋点数据采集方法。

本申请提供的一种基于AOP编程的埋点数据采集方法、装置及存储介质,其通过埋点工具组件,根据埋点信息配置列表初始化埋点,响应于触发事件的发生,采用全埋点事件采集策略,利用埋点工具组件获得埋点采集数据,将埋点采集数据录入数据库以及上传至服务端。本申请能够基于AOP编程,动态按需配置埋点工具组件,增加埋点数据采集的可拓展性还有灵活性,实现覆盖范围广,数据识别率高,可以进行远程动态配置的埋点数据采集,适配各种使用场景,最大程度实现需求多样化,提高埋点数据采集效率,采用先将埋点采集数据录入数据库再上传至服务端的方式,大大提高了数据的完整性。

附图说明

图1是本申请实施例提供的一种基于AOP编程的埋点数据采集方法的流程图;

图2是本申请实施例中触发事件类型的示意图;

图3是采用本申请实施例提供的基于AOP编程的埋点数据采集方法进行埋点数据采集的流程图;

图4是本申请实施例提供的一种基于AOP编程思想的埋点数据采集装置的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

首先,对本申请中涉及的若干名词进行解析:

AOP:中文名为面向切面编程,是一种编程思想,通过使用AOP设计埋点框架,开发人员可以将关注点从用户行为数据收集和处理中分离出来,并将它们作为切面进行处理,使得代码更加清晰和可维护,并且可以轻松地扩展和修改。同时,AOP还提供了更好的可测试性和可重用性,使得埋点框架更加灵活和适应性强。

Rutime:iOS运行时机制,指程序在执行时所处的状态和环境,是一种抽象的概念,它指的是程序在运行时所遵循的一系列规则、机制和环境,用于支持程序的执行、调度和管理。

业务层:业务层属于APP功能开发层,用于事件处理。

全埋点:也称无埋点、无码、无痕、自动埋点,通过在应用程序中嵌入代码,在无需写代码或者写少量的代码的情况下,就能实现对用户行为和应用程序状态的全面监控和数据自动采集。

参照图1,图1是本申请实施例提供的一种基于AOP编程的埋点数据采集方法的一个可选的流程图,该方法可以包括但不限于包括步骤S101至步骤S105:

步骤S101,在服务端对埋点工具组件进行动态配置,获得埋点信息配置列表;

步骤S102,注册埋点工具组件,根据埋点信息配置列表初始化埋点;

步骤S103,响应于触发事件的发生,采用全埋点事件采集策略,底层拦截事件触发信号,利用埋点工具组件获得埋点采集数据;

步骤S104,将埋点采集数据录入数据库;

步骤S105,触发埋点数据上传周期,将埋点采集数据上传至服务端。

在一些实施例中,步骤S101可以包括但不限于包括步骤S201至步骤S202:

步骤S201,配置多个预设埋点对应的埋点使用信息;

步骤S202,提供数据加密选项,确定在触发各埋点时是否对获得的埋点采集数据进行加密处理。

在一些实施例的步骤S201中,埋点使用信息包括埋点预置属性、埋点对应的触发事件类型以及触发埋点时的数据采集方式。

在一些实施例的步骤S102中,可选地,埋点工具组件为埋点SDK,其可以提供丰富的配置API(应用程序编程接口),在注册埋点SDK(如本实施例的埋点工具组件)后,可以通过调用API实现以下功能:

埋点链路化:在需要配置的起点新增标记并配置预置属性,结束时清空配置的预置属性,当进行数据统计时,根据标记抽取埋点数据,实现链路化;

按用户信息分离埋点数据:业务层配置用户信息等,当进行数据统计时,可以通过用户信息进行相关埋点数据的分离和归类;

动态配置指定单一触发场景、单一触发事件的一次或多次的埋点使用信息;

根据需要动态配置是否加密因触发事件的发生而采集到的埋点数据;

动态配置页面触发事件或者单一触发事件的忽略等。

在一些实施例的步骤S103中,上述全埋点事件采集策略,运用OC运行时机制,动态获取事件响应链,完成全埋点事件(如本实施例的上述触发事件)的统计,具体地,在全埋点事件采集过程中,使用Objective-C底层运行时机制,动态交换各种事件触发的响应方法,实现底层事件源的事件触发信号拦截。在拦截到事件触发信号之后,优先将该信号返还给业务层,进行事件处理,避免影响业务层的相关操作流程,实现无缝采集。

上述触发事件至少包括APP启动事件、APP退出事件、页面浏览事件、页面停留事件、页面关闭事件、控件点击事件以及异常闪退事件等,具体地,参照图2,图2是本申请实施例中触发事件类型的示意图,其中,APP触发事件包括APP启动事件和APP退出事件,页面触发事件包括页面浏览事件、页面停留事件和页面关闭事件,点击事件包括控件点击事件,异常触发事件包括异常闪退事件。

触发事件的事件详解和触发机制如下:

APP启动事件:应用启动或者应用进入后台后,下一次进入前台时判断,如果超过设定的时间间隔时,采集启动事件;

APP退出事件:应用杀死进程,APP异常闪退,以及APP从后台进入前台时,如果超过设定的时间间隔时,采集应用退出事件;

页面浏览事件:当前页面进入屏幕时,都采集页面浏览事件;

页面停留事件:当前页面离开屏幕时,采集页面停留事件,并且在页面进入屏幕时,记录页面开始时间,退出页面后,根据记录的时间,计算当前页面停留时长,并且通过SDK视图遍历算法,计算当前页面浏览进度,一起生成页面停留事件;

页面关闭事件:当页面完全从运行缓存中被移除,被释放时,采集页面关闭事件。此事件需要通过业务层配合,在页面的声明周期-dealloc方法中,调用由SDK提供的API,触发页面关闭事件;

控件点击事件:当可具备点击事件的视图,点击后,采集点击事件。如继承与UIControl基类的视图控件、通过给UIView控件添加点击手势的视图控件、由UIBarButtonItem创建的按钮、UITableViewCell点击,UIcollectionViewCell点击等,100%覆盖常用控件的点击事件;

异常闪退事件:在应用运行过程中,发生异常导致应用闪退时,在内存被回收之前,采集用户闪退日志,录入闪退事件。

在一些实施例中,上述基于AOP编程的埋点数据采集方法还包括步骤S106和步骤S107:

步骤S106,通过远程控制平台对埋点工具组件进行动态控制;

步骤S107,定义触发事件,对触发事件进行埋点内部事件加工后,录入数据库。

在一些实施例的步骤S106中,动态控制至少包括控制埋点工具组件的启停、控制埋点工具组件的数据上传以及控制埋点工具组件的内存占用,具体地,通过远程控制平台的配置,控制埋点SDK的启用和停用,控制SDK数据上传单元大小,控制SDK数据上传触发场景,控制数据本地内存最大占用等,最大程度实现需求多样化,能力多样化的设计,减轻业务层开发过程中的使用难度以及App应用程序上线后仍然具备远程动态控制SDK的能力,实现SDK可控化。

在一些实施例的步骤S107中,支持由业务层自定义录入触发事件,经过埋点内部事件加工后,录入数据库,拓展埋点采集触发事件的操作数据的多样性。

在一些实施例中,步骤S103可以包括但不限于包括步骤S301至步骤S305:

步骤S301,响应于触发事件的发生,进行事件数据采集,获得第一埋点数据;

步骤S302,解析触发事件对应的事件属性信息;

步骤S303,组合事件属性信息和第一埋点数据,获得第二埋点数据;

步骤S304,获取公共预置属性;

步骤S305,根据公开预置属性与第二埋点数据,执行数据合并加工操作,获得埋点采集数据。

在一些实施例的步骤S304中,上述公共预置属性通过埋点工具组件进行配置。

在一些实施例中,上述基于AOP编程的埋点数据采集方法支持多端交互使用。

示例性地,在APP中加载的WEB页面,由于页面本身运行环境不稳定,加之无法具备采集设备信息、APP动态信息等,因此,本实施例通过采集自身页面基础属性(如本实施例的上述事件属性信息)后,将属性信息和上述第一埋点数据通过JS与OC混编的方式,生成上述第二埋点数据再传给APP,APP接收到第二埋点数据后,对第二埋点数据和公共预置属性进行数据合并加工等操作,获得埋点采集数据,然后录入数据库,等待上传至服务端。

在埋点采集数据上传至服务端的过程中,埋点SDK提供预设的埋点预置属性,APP在接口请求时,将对应的埋点预置属性追加到接口请求参数中,服务端通过已配置完成的埋点预置属性列表,根据上述追加到接口请求参数的埋点预置属性和接口请求,实现采集在APP端或WEB端中获得的埋点采集数据的功能。

在一些实施例的步骤S305之后,获得埋点采集数据后,根据对应的上述埋点使用信息中的数据加密选项,判断是否对埋点采集数据进行数据加密再录入数据库中。

在一些实施例中,执行上述步骤S105时,还包括步骤S401:

步骤S401,对存储在数据库中已上传至服务端的埋点采集数据,执行数据清理操作,清理已上传至服务端的埋点采集数据。

在一些实施例的步骤S401中,具体地,每一条触发事件的发生,对应的埋点采集到的埋点采集数据都会第一时间归档,存储至数据库中,若触发事件的发生没有被配置成忽略事件,在触发埋点数据上传周期时,会将该存储至数据库中的埋点采集数据再上传到服务端,服务端接收成功后,再对数据库中的埋点采集数据进行数据清理,避免了在数据传输的过程中,由于各种外界不稳定因素的影响,导致APP异常退出等不可控情况,造成埋点采集数据的丢失,从而有效提高了数据的完整性。

在一些实施例中,参照图3,图3是采用本申请实施例提供的基于AOP编程的埋点数据采集方法进行埋点数据采集的一个可选的流程图,其中,包括以下步骤:

启动应用程序,注册埋点SDK;

通过埋点SDK激活全埋点采集策略;

触发按钮点击事件;

底层拦截事件触发信号,获得第一埋点数据;

将事件触发信号返还给业务层;

解析按钮控件属性信息,将按钮控件属性信息与第一埋点数据组装获得第二埋点数据;

获取公共预置属性;

合并第二埋点数据和公开预置属性,获得埋点采集数据;

对埋点采集数据进行数据加密;

将加密后的埋点采集数据录入数据库;

将数据库中的埋点采集数据上传至服务端。

参照图4,图4是本申请实施例提供的一种基于AOP编程思想的埋点数据采集装置的一个可选的结构示意图,该装置包括:

第一模块,用于在服务端对埋点工具组件进行动态配置,获得埋点信息配置列表;

第二模块,用于注册埋点工具组件,根据埋点信息配置列表初始化埋点;

第三模块,用于响应于触发事件的发生,采用全埋点事件采集策略,底层拦截事件触发信号,利用埋点工具组件获得埋点采集数据;

第四模块,用于将埋点采集数据录入数据库;

第五模块,用于触发埋点数据上传周期,将埋点采集数据上传至服务端。

该基于AOP编程思想的埋点数据采集装置的具体实施方式与上述基于AOP编程思想的埋点数据采集方法的具体实施例基本相同,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述基于AOP编程思想的埋点数据采集方法。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本申请实施例提供的一种基于AOP编程的埋点数据采集方法、装置及存储介质,其通过埋点工具组件,根据埋点信息配置列表初始化埋点,响应于触发事件的发生,采用全埋点事件采集策略,利用埋点工具组件获得埋点采集数据,将埋点采集数据录入数据库以及上传至服务端。本申请能够基于AOP编程,动态按需配置埋点工具组件,增加埋点数据采集的可拓展性还有灵活性,实现覆盖范围广,数据识别率高,可以进行远程动态配置的埋点数据采集,适配各种使用场景,最大程度实现需求多样化,提高埋点数据采集效率,采用先将埋点采集数据录入数据库再上传至服务端的方式,大大提高了数据的完整性。

本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。

以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

技术分类

06120116506055