一种实现轻量级应用埋点的系统和方法与流程

文档序号:25586230发布日期:2021-06-22 17:01阅读:86来源:国知局
一种实现轻量级应用埋点的系统和方法与流程

本发明涉及计算机应用领域,具体而言,涉及一种对轻量级应用进行埋点的系统和方法。



背景技术:

埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个图标点击次数、观看某个视频的时长。常见的埋点方式主要有三种:代码埋点、全埋点和可视化埋点。

然而,这些埋点方式的存在一些问题:

1)代码埋点:实施埋点的开发者将埋点代码结合到业务代码中,虽然这种方式能够灵活应对绝大部分的场景,但是业务代码和埋点代码杂糅,增加了代码的可阅读性和开发难度,同时也大大增加了后期维护业务代码和埋点代码的开发成本。

2)全埋点:只能覆盖基本的点击、展示等用户行为;同时其采集的数据量非常大,即使全部行为数据都被收集回来了,具体分析时也不能避免二次梳理和加工,无法采集用户身份信息和行为附带的属性信息。

3)可视化埋点:需要定制一套规则,比如说特定的元素类名,id等作为埋点的依据才能应用在快应用、微信小程序等轻量级应用平台,且对事件、生命周期等不可见的事件不能进行埋点。



技术实现要素:

本发明在全埋点和可视化埋点的基础上优化,开发了一套适用于快应用、微信小程序等轻量级应用埋点的可视化的系统,用于解决业务代码和埋点代码杂糅、埋点灵活性差的问题;同时在轻量级应用和可视化系统中搭建一个数据通讯桥梁,以配置文件和页面路径相匹配的原则,精确地将埋点嵌入到需要埋点的地方,不仅仅是页面的pv(页面访问量),uv(独立访问用户数),自定义事件,甚至是全局的生命周期,页面自定义组件等,都可以进行定制化埋点,大大提高了埋点方式的灵活性和减低了开发时间和成本。

第一方面,为实现上述目的,本申请提供了一种实现轻量级应用埋点的系统,包括:

用户接入模块,用于在用户对软件安装包进行埋点的操作时,提供可视化的操作界面;

埋点规则管理模块,包括:埋点配置组件和操作选择组件,其中,埋点配置组件,用于配置可进行埋点的对象及与该对象对应的埋点方式,埋点方式包括:可嵌入的埋点信息和对应的函数、方法;操作选择组件,用于在用户埋点操作时从埋点配置组件中选择需要埋点的对象;

埋点操作准备模块,用于响应用户通过可视化的操作界面执行的操作,根据操作选择组件选择的需要埋点的对象,提取对应的埋点方式,生成埋点操作需要的配置文件;

埋点操作执行模块,用于对软件安装包的指定文件进行文件提取,根据配置文件在指定文件中嵌入埋点信息;

嵌入埋点信息的软件安装包安装运行后,通过用户接入模块,可以读取相关统计结果。

另一方面,本发明提供了一种实现轻量级应用埋点的方法,包括以下步骤:

配置可进行埋点的对象,及该对象所对应的埋点方式,其中,埋点方式包括需要嵌入的埋点信息和该埋点信息对应的函数、方法;

响应用户对可视化操作界面的操作,选择埋点对象,提取该埋点对象对应的埋点方式,生成埋点配置文件,其中,埋点配置文件中包括本次埋点操作执行时需要的函数、方法;

执行埋点操作,提取需要埋点的软件安装包的相关文件,根据配置文件嵌入所述埋点信息,生成新的软件安装包。

根据本发明,避免了在业务代码中编写非业务性质的埋点代码,提高代码的可阅读性和降低开发难度;同时基于配置文件的埋点方式,通过可视化埋点系统产出配置文件这种方式,可以更加灵活地添加埋点配置,同时更好将埋点嵌入到轻量级应用任意页面、组件、生命周期、全局app方法等,提升了埋点方案的兼容性、可扩展性和可维护性。

附图说明

图1是根据本发明实施例的实现轻量级应用埋点系统的结构图;

图2是根据本发明实施例的实现轻量级应用埋点系统使用的逻辑流程图;

图3是根据本发明实施例的实现轻量级应用埋点系统的实现步骤流程图;

图4是根据本发明实施例的实现轻量级应用埋点方法的流程图。

具体实施方式

下面结合说明书附图对本发明的具体实现方式做一详细描述。

首先,本发明中公开的方案应用于快应用、微信小程序等轻量级的应用(以下简称应用),在进行埋点之前,需要进行以下准备:

sdk:软件开发工具包,提前导入应用程序的安装包文件中;在进行埋点准备时,对安装包文件进行检测,确认是否已导入sdk,如果没有导入,则提供提示、引导的方式在软件安装包中导入sdk。

config.js:确定埋点规则的配置文件,在本方法中根据需求生成,加入应用的项目文件中;

app.vue:应用的项目文件中启动入口。

在本发明中,提供了一系列方法函数,为应用的软件安装包进行埋点进行准备,见下表所示:

本发明提供的用于轻量级应用埋点的系统,首先在应用的项目中引用sdk,其次,为轻量级应用埋点的系统为可视化系统,可在界面中读取应用安装包的文件,同步在界面上显示对应的页面以及一些抽象的事件、生命周期、用户信息等数据,当需要添加埋点数据时候,点击可视化系统弹出埋点配置,然后刷新应用页面,在应用每个页面初始化的时候,读取埋点信息,对页面路径和配置文件的路径配置进行匹配,处理埋点信息,根据埋点信息的规则,上报指定数据。

图1是本发明实施例中一种实现轻量级应用埋点系统的结构图,如图所示,埋点系统的结构详细描述如下:

1、用户接入模块10:是为操作人员对软件安装包进行埋点的操作时,提供可视化的操作界面,其中包括对需要进行埋点的轻量级应用的软件安装包操作提示界面、对软件安装包进行sdk检测后的相关提示、以及安装了嵌入埋点信息的应用的软件安装包后读取相关统计结果界面。

轻量级应用埋点系统的架构可以包括多种形式,如b/s方式的网站系统、用于智能终端的app应用、c\s方式的应用程序,用户接入模块10对应的是管理员操作的web页面,app终端、应用程序操作界面,同时,一个埋点系统也支持多数量、多种类的用户接入模块,并进行角色的分配、配置和权限控制。例如,埋点操作以网站系统页面的页面完成、统计数据在手机app端查看;埋点操作以c\s的应用程序完成、统计数据在网站系统的页面查看、配置在手机终端实现等等。

在埋点系统中,操作人员通过接入模块提供的接口界面进行登录,从已配置的埋点数据中选择本次埋点操作的对象和具体方式,进行埋点配置准备。并且可以通过接口界面读取应用安装程序中的项目文件,同步在界面上显示对应的页面以及一些抽象的事件、生命周期、用户信息等数据,页面路径和埋点配置文件上的配置一致时,点击界面中对应的功能按键,在安装程序对应文件的对应代码中插入埋点信息。其中,埋点对象和具体的埋点方式,也可以在用户接入模块10中实现。

如图2所示,操作人员通过直接的用户接入模块,将应用软件安装包引埋点系统中进行直接的可视化的操作,生成带埋点信息的应用软件安装包。

2、埋点规则管理模块20,包括埋点配置组件201和操作选择组件202:

轻量级应用中的对象,如页面、组件、元素、应用都可以进行埋点,而每一个对象的埋点方式都有其特别之处,因此,需要在埋点规则管理模块20的埋点配置模块201中进行管理,埋点规则中确定的埋点方式,包括需要嵌入的埋点信息和实现这种埋点信息对应的函数、方法,这些函数、方法配置在埋点系统中,供埋点操作时调用,在应用的代码文件中确定合适的位置并写入对应的埋点代码。

针对埋点对象对sdk全局插入的兼容情况,埋点系统提供的埋点方式包括sdk全局插入和sdk函数封装;

当埋点对象不兼容sdk全局插入时,采用sdk函数封装的方式:即使用sdk函数wrap包裹开发页面。此方案是为了兼容各大厂商对不同的接口进行兼,使用wrap进行包裹能最大程度保证程序的正确性,最终在打包过程中,对原业务代码进行埋点封装,具体实现如下:

其中global.track.wrap方法,是将页面的生命周期进行包装,在oninit生命周期插入埋点判断机制,判断该文件是作为页面还是作为组件渲染,如果是页面文件,则进行数据采集,如是页面进入时间以及一些自定义操作;如果是组件,进行组件封装操作。同理,其他生命周期函数以相同的方式进行包装后,在页面实际触发生命周期函数,即被封装后的生命周期函数。

支持全局插件的应用可以通过插件的文档,插入sdk,以快应用为例子,则是将sdk在app.vue进行如下配置:

操作选择组件202用于在为用户在埋点操作时从埋点配置组件中选择需要埋点的对象;

用户通过操作选择组件202指定需要埋点的软件安装包,从埋点配置组件201中选择需要埋点的对象,配置组件根据不同的对象匹配不同的埋点方式。需要注意的是,操作选择组件中提供的操作,是为了生成埋点配置文件进行准备。

3、埋点操作准备模块30,用于根据在操作选择组件中选择需要埋点的对象,提取对应的埋点方式,生成埋点操作需要的配置文件;

埋点配置文件中定义需要采集的埋点信息,包括:埋点对象、对应的生命周期、数据内容;还包括嵌入埋点信息时需要调用的函数和方法;其表现形式包括:json、xml。

例如:需要为某个元素添加点击次数统计,点击在埋点系统中提供的该元素的接口,在弹出的配置窗口填上需要埋点的数据,等所有埋点都设置好之后,就会生成一个配置文件,这个文件以json形式存在,配置文件结构:

其中pagetracks是采集页面数据,globallifecycles是采集全局生命周期的数据,componenttracks是采集组件的数据,applifecycles是采集应用生命周期数据,eltracks是采集元素点击数据。

4、埋点操作执行模块40,对应用的软件安装包的指定文件进行文件提取,根据在埋点操作准备模块中生成的配置文件的规则,在指定文件中嵌入埋点信息;其中软件安装包与和埋点系统可以在同一台机器上,也可以通过websocket等通讯协议进行远程和本地访问。

具体来说,埋点操作执行模块40包括sdk检测模块401和埋点操作模块402;

sdk检测模块401用于检测指定的软件安装包对应的项目文件是否已导入sdk,若否,提示在软件安装包中导入sdk;否则,埋点操作模块402调用sdk的方法根据埋点操作准备模块中生成的配置文件对软件安装包中对应的代码文件进行埋点,添加对应代码,生成带有埋点信息的软件安装包。

对代码文件进行埋点操作,即包装原页面函数和生命周期。例如,在页面oninit生命周期中,触发sdk的initpagetracks、initcomponenttracks方法,将代码文件中的页面配置和组件配置转化为埋点规则,比如initpagetracks方法,页面配置{path:'/a',lifecycles:{oninit:{disabled:true}}}会转化为{path:‘/a’,virtual:true,query:null,time:{et:0,lt:0,st:0,at:0,bt:0,hn:0},methods:{},lifecycles:{},share:false,performance:{dom:0,blank:0,load:0}},并将此代码埋入安装包对应的文件中,其中每一个参数分别代表了特定的埋点数据,比如time则表示页面的停留时间,活跃时间等。

埋点数据的发送的实现,则通过sdk的getpath方法,获取到当前页面的路径,然后获取转换后的页面配置,如果当前页面路径存在于页面配置里面,则根据页面配置收集自定义组件数据,生命周期数据,然后通过sdk的track方法,上报数据给后台。

当一个用户登录本发明的埋点系统,进行埋点操作,埋点的实现步骤流程,如图3所示:

工作人员,即埋点系统的用户,通过s301步骤进行登录,通过权限认证、角色确认后,进入用户接入模块。通过用户接入模块提供的接口,进行步骤s302的操作添加埋点,确定要进行埋点的操作;然后在步骤s303中选择埋点对象和埋点方式,在埋点操作准备模块中,如步骤s304所示,系统生成配置文件,以上步骤为埋点的配置准备。

接下来,埋点系统需要与轻量级应用的软件安装包进行访问和交互,见步骤s305:埋点系统响应用户的操作,在执行埋点操作时,根据配置要求读取需要埋点的应用的软件安装包,检查安装包的文件是否已导入sdk,即,软件安装包需要提前导入sdk(见步骤s306),符合条件后,从软件安装包中提取需要操作的代码文件,加入埋点代码,生成新的代码文件(步骤s307),与软件安装包中其他的文件一起生成带埋点信息的软件安装包(步骤s309),存放至事先配置的路径。

实现轻量级应用埋点的系统,将埋点的操作从开发的环节中分离出来,减少开发难度,增加埋点的灵活性、可扩展性和可维护性。

与实现轻量级应用埋点的系统相对应,本发明还提供了一种为实现轻量级应用埋点的方法:

如图4所示。本申请的埋点的方法包括以下步骤:

步骤s410:埋点规则配置,确定配置轻量级应用的可进行埋点的对象,及其埋点方式;

埋点方式的内容包括,需要嵌入的埋点信息和要实现埋点时,需要调用的对应的函数、方法;埋点的方式和对象,事先在埋点配置规则中定义,提供给应用时进行选择或提取。

对于不同的埋点对象,如:页面、组件、元素和应用,会对应相同或者不同的埋点的方式;一般来说,在导入了sdk的情况下,采用sdk全局插入的方式进行埋点代码的植入,然而,部分埋点对象,如页面是不兼容sdk全局插入方式的,因此,针对不兼容的环境,采用sdk函数封装的方式作为埋点代码植入的方式。

步骤420:选择埋点对象,根据埋点规则生成埋点配置文件,将选择的埋点对象对应的生命周期、数据内容、需要的函数、方法以一定的协议规则记入对应的配置文件。

生成的配置文件可以json的方式,也可以xml的方式进行结构化的记录。

步骤s430:执行埋点操作,本地或者远程读取需要埋点的轻量级应用的软件安装包的相关文件,在相关文件中嵌入埋点信息后,发送到软件安装包所在的位置,生成新的软件安装包。

在本发明中,将业务开发阶段和埋点阶段分开,在业务开发阶段,在项目文件中引入sdk,打包生成软件安装包,在埋点阶段提供埋点系统生成埋点配置文件,通过之前引用的sdk,将配置文件转换为写入对应页面的埋点代码,在页面浏览时候,触发埋点钩子,收集对应页面的埋点数据,最后上报到后台管理系统。

通过本发明,避免了在业务代码中编写非业务性质的埋点代码,提高代码的可阅读性和降低开发难度;同时基于配置文件的埋点方式,通过可视化埋点系统生成配置文件的方式,可以更加灵活地添加埋点配置,同时更好将埋点嵌入到各种轻量级应用中的任意页面、组件、生命周期中。提升了埋点方案的兼容性、可扩展性和可维护性。

以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1