CN114020589A - 埋点处理方法、装置、计算机设备和存储介质 - Google Patents
埋点处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114020589A CN114020589A CN202010681685.6A CN202010681685A CN114020589A CN 114020589 A CN114020589 A CN 114020589A CN 202010681685 A CN202010681685 A CN 202010681685A CN 114020589 A CN114020589 A CN 114020589A
- Authority
- CN
- China
- Prior art keywords
- control
- target
- page
- identification
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 27
- 230000006399 behavior Effects 0.000 claims description 70
- 238000009877 rendering Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 238000009933 burial Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 239000000284 extract Substances 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种埋点处理方法、装置、计算机设备和存储介质。所述方法包括:进入目标页面;获取与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息;遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息;基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。采用本方法能够提升埋点设置的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种埋点处理方法、装置、计算机设备和存储介质。
背景技术
在APP(Application,应用程序)中设置埋点是很多APP开发商收集用户行为数据的重要手段。目前,在APP中设置埋点有多种方案,如代码埋点、可视化埋点和无埋点等。传统的自动化埋点常常采用无埋点的方式,无埋点的方案是通过对APP界面中的所有控件均进行埋点,将用户与控件的交互行为进行无差别上报,以使后台对上报的交互行为进行数据分析。
然而,对APP中的所有控件进行无差别埋点,会增加不必要的埋点操作,从而降低埋点效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升埋点效率的埋点处理方法、装置、计算机设备和存储介质。
一种埋点处理方法,方法包括:
进入目标页面;
获取与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息;
遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;
当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息;
基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
一种埋点处理装置,装置包括:
配置内容获取模块,用于进入目标页面;获取与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息;
控件标识确定模块,用于遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;
埋点模块,用于当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息;基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
在一个实施例中,配置内容获取模块还包括页面进入模块,用于当发生页面显示指令时,获取待显示的目标页面所对应的页面数据;进入目标页面,并基于页面数据执行页面渲染操作;遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识,包括:当目标页面处于页面刷新阶段时,遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;页面刷新阶段为从执行页面渲染操作之后直至显示目标页面之前的时间段。
在一个实施例中,页面进入模块还用于当目标页面处于页面曝光阶段时,提取配置内容中的页面埋点设置信息;页面曝光阶段为显示目标页面之后至当前时间的时间段;当基于页面埋点设置信息确定允许页面曝光数据上报时,根据目标页面的页面标识生成对应的页面曝光数据并上报。
在一个实施例中,配置内容获取模块还包括解析模块,用于获取与目标页面对应的配置文件;配置文件根据用户行为上报需求并通过脚本自动生成;通过预先注入的代码解析配置文件,得到与目标页面对应的配置内容。
在一个实施例中,解析模块还用于当发生对于配置文件的更新指令时,响应于更新指令对配置文件执行更新操作;当更新后配置文件为最新版本的配置文件时,执行通过预先注入的代码解析配置文件,得到与目标页面对应的配置内容的步骤。
在一个实施例中,控件标识确定模块还用于获取目标页面的控件树;控件树中包括处于不同层级的控件;从控件树的根节点所对应的控件开始,自顶向下遍历控件树中处于不同层级的各控件;确定遍历的各控件的控件标识。
在一个实施例中,埋点模块还用于分别基于目标控件各自所对应的目标操作类型和附加上报内容,对相应的目标控件进行埋点设置;目标操作类型用于判别触发埋点事件的触发操作;附加上报内容用于在发生埋点事件时作为附加内容进行上报。
在一个实施例中,埋点处理装置还包括数据上报模块,用于当发生对于已经设置埋点的目标控件的触发操作时,确定与目标控件相对应的目标操作类型;当触发操作属于目标操作类型时,基于控件埋点设置信息生成对应的埋点事件;响应于埋点事件,采集由触发操作所生成的用户行为数据并上报。
在一个实施例中,数据上报模块还用于响应于埋点事件,采集由触发操作所生成的用户行为数据;确定与埋点事件对应的目标页面的页面标识和目标控件的目标控件标识;将确定的页面标识、目标控件标识、以及用户行为数据进行关联后上报。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
进入目标页面;
获取与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息;
遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;
当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息;
基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
进入目标页面;
获取与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息;
遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;
当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息;
基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
上述埋点处理方法、装置、计算机设备和存储介质,当进入目标页面时,即可获取与目标页面对应的配置内容,以便从配置内容中提取出待设置埋点的目标控件的目标控件标识。通过对目标页面中的至少一个控件进行遍历,以根据相应的控件标识来确定遍历的各个控件中需要进行埋点设置的目标控件。这样,即可通过配置内容中的埋点设置信息对目标控件进行埋点设置,从而实现了目标控件的自定义埋点。由于本申请可以在配置内容中指定待设置埋点的目标控件,因此相比于传统的对页面中的所有控件均进行无差别埋点,本申请可以减少不必要的埋点操作,从而提升页面埋点的埋点效率。
附图说明
图1为一个实施例中埋点处理方法的应用环境图;
图2为一个实施例中埋点处理方法的流程示意图;
图3为一个实施例中配置文件的示意图;
图4为一个实施例中控件树的示意图;
图5为一个实施例中根据更新配置文件进行埋点处理方法的流程示意图;
图6为一个实施例中埋点处理方法的具体流程示意图;
图7为一个具体实施例中埋点处理方法的流程示意图;
图8为另一个具体实施例中埋点处理方法的流程示意图;
图9为一个实施例中埋点处理装置的结构框图;
图10为另一个实施例中埋点处理装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的埋点处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。终端102上运行了待设置埋点的应用程序,其中,待设置埋点的应用程序中预安装了插件SDK(Software Development Kit,软件开发工具包)。插件SDK用于获取配置文件,并基于配置文件对待设置埋点的应用程序中的目标页面进行自动化埋点。当自动化埋点完成后,终端102对用户的触发操作进行监控,根据监控得到的触发操作生成相应的用户行为数据,并将用户行为数据上报至服务器104,以使服务器104对用户行为数据进行分析。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种埋点处理方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤S202,进入目标页面。
其中,目标页面是待进行埋点设置的页面。该目标页面具体可以是应用程序中的应用页面,还可以是网页页面,或者是测试页面等,本申请实施例对此不做限定。比如,该目标页面具体可以是应用程序的页面,当应用程序存在需要进行埋点设置的页面时,可将对应的应用程序称作目标应用程序。待设置埋点的页面可以为目标应用程序中的任一页面,如当目标应用程序为A购物应用时,待设置埋点的页面可以为商品详情页或订单结算页等。
具体地,终端上运行有目标应用程序,当终端检测到页面显示指令时,可基于页面显示指令查询待显示的目标页面所对应的页面地址,并通过页面地址进入对应的目标页面。可以理解,该处的显示指令具体可以是初次进入应用程序时触发的显示指令,还可以是在当前页面检测到跳转操作时触发的与目标页面对应的显示指令。
在一个实施例中,当终端检测到页面显示指令进入目标页面时,该目标页面会经历从刷新阶段到显示阶段这个过程。当进入目标页面时,终端会基于页面数据执行页面渲染操作,在执行页面渲染操作之后直至显示目标页面之前的时间段,均可称作页面刷新阶段。其中,页面数据是指渲染目标页面所需要,如页面内的各控件的控件图标、控件名称、控件标识和控件层级信息等页面资源。当终端的页面渲染操作执行完毕,并将目标页面对应显示时,目标页面从页面刷新阶段转为页面曝光阶段;其中,页面曝光阶段为显示目标页面之后直至关闭目标页面之前的时间段。容易理解地,可以仅在页面刷新阶段执行本申请的埋点处理方法,也可以仅在页面曝光阶段执行本申请的埋点处理方法,亦可以优先在页面刷新阶段执行本申请的埋点处理方法,当页面刷新操作执行完毕,但还未针对目标页面中的每个目标控件均进行埋点设置时,终端继续在页面曝光阶段完成剩余的埋点设置,本申请实施例对此不做限定。
在一个实施例中,终端可以通过检测用户的触发操作,确定是否生成页面显示指令。其中,触发操作具体可以是触摸操作、光标操作、按键操作或者语音操作。其中,触摸操作可以是触摸点击操作、触摸按压操作或者触摸滑动操作,触摸操作可以是单点触摸操作或者多点触摸操作;光标操作可以是控制光标进行点击的操作或者控制光标进行按压的操作;按键操作可以是虚拟按键操作或者实体按键操作等。
步骤S204,获取与目标页面对应的配置内容。
其中,配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息。目标控件是指位于目标页面中的需要进行埋点的控件,其可以由页面数据中的控件名称和层级信息渲染而成。目标控件标识是指唯一标识一个目标控件的信息,如目标控件标识可以为目标控件的控件ID(Identity document,身份标识号)等。
控件埋点设置是指基于控件埋点设置信息对控件进行埋点的过程,当用户与已设置埋点的控件进行交互时,终端可以根据交互行为生成相应的用户行为数据。用户行为数据是指在满足生成用户行为数据的条件时,终端通过预先编写的用户行为数据生成代码生成的用于反映用户行为的数据。其中,用户行为数据的生成条件可以为控件已进行埋点设置,并且针对控件的触发操作为指定触发操作等。
具体地,当进入目标页面时,终端确定目标页面所处的目标应用程序的应用程序标识,并基于应用程序标识获取针对目标应用程序所配置的一个或多个配置文件。终端获取目标页面的页面标识,基于目标页面的页面标识从获取得到的一个或多个配置文件中读取对应的配置内容。其中,页面标识是指唯一标识一个页面的信息,如页面名称或页面ID等。配置文件是指以预设的编写格式编写而成的包含有与目标页面对应的配置内容的文件。比如,参考图3,图3示出了一个实施例中配置文件的示意图。
在一个实施例中,开发人员可以为待埋点应用程序设置一个配置文件,从而将全部需要进行埋点的页面的配置内容存放至同一配置文件中;也可以为待埋点程序应用中的每个需要进行埋点的页面均设置一个配置文件,从而配置文件仅存放对应页面的配置内容。当埋点开发人员为目标应用程序中的每个目标页面均设置一个配置文件时,终端获取目标页面的页面标识,并基于页面标识拉取对应的配置文件;当埋点开发人员为目标应用程序设置一个配置文件时,终端获取与目标应用程序相对应的配置文件,并基于目标页面的页面标识从配置文件中读取对应的配置内容。
在一个实施例中,开发人员可以基于第三方应用获取目标页面中的各控件的控件标识,并从中筛选出需要进行埋点设置的目标控件的目标控件标识,将筛选出的目标控件的目标控件标识填写至配置文件。
在一个实施例中,目标控件标识可以由控件名称和第一预设符号组成。当需要为目标控件设置目标控件标识时,终端获取目标页面中的多个控件名称和控件层级信息。其中,控件名称可以直接反映控件类型,如UIwindow(一种控件名称)属于窗口类型控件,UIButton属于按钮类型控件等。每个控件具有对应的层级信息,层级信息包括该控件与其他一个或多个控件之间的继承关系。例如,控件UIButton继承于控件UIView,则控件UIView为控件UIButton的上一层级控件。
进一步地,当获取得到各控件的控件名称和层级信息时,终端根据目标控件的层级信息向上级回溯,即识别目标控件是否存在上一层级的控件名称。在目标控件存在上一层级控件时,提取该上一层级控件的层级信息,并根据上一层级控件的层级信息继续向上逐级回溯,即识别目标控件的上一层级控件是否仍存在对应的上一层级控件,若存在,则提取对应的控件名称和层级信息,直至最高层级控件。
进一步地,终端利用第一预设符号将提取到的多个控件名称逐级拼接,即将最高层级控件至目标控件的多个控件的控件名称依次拼接,得到目标控件的目标控件标识。第一预设符号可以是“/”,“_”,“#”,“@”或“*”等。假设当前遍历控件为UIButton1,控件UIButton1对应的控件路径可以是/UIwindow/ViewController/UIView/UIButton。
通过获取控件的控件名称和层级信息,并基于控件名称和层级信息自动生成目标控件标识,相比于传统的手工添加目标控件标识,可以大大提升目标控件标识的生成效率。
步骤S206,遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识。
具体地,当终端进入目标页面时,终端可确定该目标页面中存在的至少一个控件。进而终端可按预设方式对目标页面中的各个控件进行依次遍历,以从中查找出待进行埋点设置的目标控件。可以理解,此处进行遍历的预设方式可以有多种,比如,按照各控件在目标页面中所处位置的上下顺序或左右顺序等依次遍历,还可以是按照由控件所组成的控件树的根节点开始往下遍历等,还可以是随机进行遍历等,本申请实施例对此不做限定。
在一个实施例中,终端获取目标页面的页面数据,基于页面数据中的各控件的控件名称和层级信息生成对应的控件树。参考图4,图4示出了一个实施例中控件树的示意图。控件树,也称为DOM树(Document Object Model,文档对象模型),是指能够反映各控件之间的层级关系的对象模型。控件树包括根节点和子节点,如图4所示,根节点为控件1,而其他控件的控件名称组成了这棵树的子节点。
当获取得到控件树后,终端可从根节点起,自顶向下依次对控件树中的控件名称进行遍历,并从页面数据提取出与当前遍历的控件名称相对应的控件标识。
在一个实施例中,也可基于目标页面中的各控件的控件标识和层级信息生成控件树,从而后续终端可以直接从控件树中提取出当前遍历的控件标识,如此,提升了控件标识的提取效率。
步骤S208,当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息。
需要说明的是,S206和S208可以并列执行,换句话说,当获取得到目标页面中的当前遍历控件的控件标识时,终端将当前遍历控件的控件标识与配置内容中的目标控件标识进行对比,直至遍历完毕目标页面中的控件。具体地,当获取得到当前遍历控件的控件标识时,终端判断配置内容中是否存在与当前遍历控件的控件标识一致的目标控件标识。若存在,终端将当前遍历控件作为目标控件,并基于当前遍历控件的控件标识,获取相对应的控件埋点设置信息。
在一个实施例中,当已遍历控件的控件标识中包含配置内容中的全部目标控件标识时,表明终端已查询得到目标页面中的全部待设置埋点的目标控件,此时终端停止遍历目标页面中的控件。当已确定目标页面中的全部待设置埋点的目标控件时,通过及时停止控件的遍历,可以减少不必要的遍历过程,从而节约遍历目标页面中的控件所耗费的如内存等计算机资源。
在一个实施例中,由于页面数据已包含各控件的控件标识,因此当进入目标页面时,终端获取目标页面的页面数据,从页面数据提取出各控件的控件标识,并对提取出的控件标识进行遍历。在当前遍历的控件标识为配置内容中的目标控件标识时,确定与遍历的控件标识对应的控件埋点设置信息。
步骤S210,基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
具体地,终端通过确定的控件埋点设置信息对当前遍历的控件进行埋点设置,即通过确定的控件埋点设置信息对相应的目标控件进行埋点设置。比如,终端可以通过控件埋点设置信息,确定需要针对当前遍历控件的何种触发操作进行监听,又比如,终端可以基于埋点设置信息,设置与当前遍历控件所对应的用户行为数据的数据内容等。进一步地,终端可以基于预设的监听机制对触发操作进行监听。预设的监听机制可以为Listener代理机制,Hook机制,AccessibilityDelegate机制,dispatchTouchEvent机制等。以AccessibilityDelegate机制为例,根据安卓系统中的控件被触发时会生成无障碍事件的特点,终端基于控件埋点设置信息对指定的无障碍事件进行监听,并在监听到指定的无障碍事件发生时,通过调用AccessibilityDelegate中的sendAccessibilityEvent方法生成相应的用户行为数据。
上述埋点处理方法中,当进入目标页面时,即可获取与目标页面对应的配置内容,以便从配置内容中提取出待设置埋点的目标控件的目标控件标识。通过对目标页面中的至少一个控件进行遍历,以根据相应的控件标识来确定遍历的各个控件中需要进行埋点设置的目标控件。这样,即可通过配置内容中的埋点设置信息对目标控件进行埋点设置,从而实现了目标控件的自定义埋点。由于本申请可以在配置内容中指定待设置埋点的目标控件,因此相比于传统的对页面中的所有控件均进行无差别埋点,本申请可以减少不必要的埋点操作,从而提升页面埋点的埋点效率。
在一个实施例中,进入目标页面包括:当发生页面显示指令时,获取待显示的目标页面所对应的页面数据;进入目标页面,并基于页面数据执行页面渲染操作;遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识,包括:当目标页面处于页面刷新阶段时,遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;页面刷新阶段为从执行页面渲染操作之后直至显示目标页面之前的时间段。
具体地,终端对用户的触发操作进行监控,当基于用户的触发操作确定发生目标页面的页面显示指令时,终端获取目标页面的页面链接,并在基于页面链接发生跳转操作,进入目标页面,并根据页面链接拉取待显示的目标页面的页面数据。其中,页面数据可以由扩展标记语言生成。标记语言是一种将文本以及文本相关的其他信息结合起来,展示出关于文档结构和数据处理细节的文字编码,扩展标记语言是指基于XML(Extensible MarkupLanguage,可扩展标记语言)扩展的自定义标记语言。
页面数据包括渲染目标页面所需的,如各控件的控件图标、控件名称、控件标识和控件层级信息等页面资源。当获取得到页面数据时,终端调用渲染引擎对页面数据进行解析,从而目标页面进入页面刷新阶段。渲染引擎根据各控件的层级信息生成控件树,并从页面数据中读取与控件树中的各控件相关联的,如控件在页面中的位置信息、控件颜色和控件尺寸等控件样式信息,基于控件样式信息和控件树生成对应的渲染树。渲染引擎遍历渲染树中的各节点,基于遍历的各节点所对应的控件样式信息,对目标页面中的控件进行渲染。
与此同时,当生成控件树时,终端对控件树进行遍历,得到遍历的各控件的控件标识。在其中一个实施例中,终端对控件树进行后序遍历。其中,后序遍历是指优先遍历控件树中的左子树,然后遍历右子树,最后遍历根节点的遍历顺序。
本实施例中,通过确定进入目标页面的进入操作,可以基于进入操作确定目标页面是否处于页面刷新阶段,从而一旦确定目标页面处于页面刷新阶段时,可以立即对目标页面中的各控件进行遍历,如此,不仅提升了控件遍历的遍历效率,而且提升了埋点设置的设置效率。
在一个实施例中,上述埋点设置的步骤具体包括:当目标页面处于页面曝光阶段时,提取配置内容中的页面埋点设置信息;当基于页面埋点设置信息确定允许页面曝光数据上报时,根据目标页面的页面标识生成对应的页面曝光数据并上报。
其中,页面埋点设置信息是指自定义的,用于对页面埋点进行配置的配置信息,页面埋点设置信息具体可以为配置项,比如,如图3中的页面曝光数据配置项,其中,“页面曝光数据”为配置项中的配置名、“真”为对应的配置值。
具体地,当终端基于页面数据完成目标页面的渲染操作,并对应显示目标页面时,目标页面进入页面曝光阶段,此时,终端提取配置内容中的页面埋点设置信息,比如,根据预设的配置名“页面显示数据”,从配置内容中读取对应的配置值“真”。当基于读取得到的页面埋点设置信息确定允许页面曝光数据上报时,终端获取目标页面的页面标识,并根据页面标识生成页面曝光数据,并将页面曝光数据上报至预设的服务器,以使服务器基于上报的页面曝光数据对页面的曝光情况进行分析。比如,当与“页面曝光数据”相对应的配置值为“真”时,表明允许生成上报页面曝光数据,此时,终端调用预先编写好的用于生成页面曝光数据的数据生成接口,基于数据生成接口生成页面曝光数据;相应的,当与“页面曝光数据”相对应的配置值为“假”时,表明不允许生成页面曝光数据,此时终端暂停调用数据生成接口。
在其中一个实施例中,可以根据安卓系统中的页面被显示时会自动生成页面曝光通知的特点,对页面曝光通知进行监控,当通过页面曝光通知确定目标页面处于页面曝光阶段时,终端获取目标页面的页面标识,并将页面标识作为页面曝光数据进行上报。由于仅需对页面曝光通知进行监控,即可快速判定目标页面是否处于页面曝光阶段,如此,大大提升了页面曝光阶段的判定效率。
上述实施例中,由于可以通过页面埋点设置信息对页面埋点进行相应设置,因此,埋点开发人员可以根据需求在页面埋点设置信息中设置是否允许上报页面曝光数据,如此,减少了上报冗余的页面曝光数据的概率。
在一个实施例中,获取与目标页面对应的配置内容,包括:获取与目标页面对应的配置文件;通过预先注入的代码解析所述配置文件,得到与目标页面对应的配置内容。
其中,配置文件根据用户行为上报需求并通过脚本自动生成。用户行为上报需求是指根据需要进行上报的数据而确定的要求,比如,用户行为上报需求可以为需要上报目标控件的控件标识,或需要上报目标页面的页面标识,等。
具体地,当需要生成目标页面的配置内容时,服务器展示配置文件生成任务的任务配置页面。其中,任务配置页面包括字段选择区和操作区。字段选择区用于展示预先配置的多个不同的一级字段,埋点开发人员可以根据用户行为上报需求,从将字段选择区中的一个或多个一级字段拖拽至操作区。比如,当用户行为上报需求为,需要将目标页面的页面标识以及页面曝光数据进行上报时,埋点开发人员可以将字段选择区中的“页面标识”字段和“页面曝光数据”字段拖拽至操作区。
其中,字段为表征配置内容中的配置项的信息,字段包括字段名和字段值,字段名与配置项中的配置名相对应,字段值与配置项中的配置值相对应。一级字段下可以包括对应的二级字段,比如,一级字段“控件配置内容”下包含有与目标控件相关联的二级字段“目标控件标识”、“目标操作类型”以及“附加上报内容。
进一步地,埋点开发人员可以根据字段名为操作区内的字段赋予相应的字段值,比如,埋点开发人员可以将“控件1”作为“目标控件标识”的字段值,从而在赋值操作执行完毕时,服务器可以根据字段名和字段值生成相应的配置项。当一级字段下未包含有对应的二级字段时,服务器将一级字段的字段名作为配置名,将对应的字段值作为配置值,基于配置名和配置值生成相应的配置项,比如当“目标页面标识”所对应的字段值为“页面1”时,服务器根据字段名和字段值生成配置项“‘目标页面标识’:‘页面1’”。当一级字段包含有二级字段时,服务器将基于二级字段生成的配置项作为对应一级字段的配置值,并根据一级字段的字段名和配置值生成相应的配置项。
比如,当“目标控件标识”所对应的字段值为“控件1”、“目标操作类型”所对应的字段值为“触摸点击”时,终端根据“目标控件标识”和“控件1”生成配置项“‘目标控件标识’:‘控件1’”,以及根据“目标操作类型”和“触摸点击”生成配置项“‘目标操作类型’:‘触摸点击’”,并根据二级字段的配置项生成一级字段的配置项“控件配置信息”:{“‘目标控件标识’:‘控件1’”;“‘目标操作类型’:‘触摸点击’”}。
进一步地,服务器综合各一级字段的配置项,得到目标页面所对应的配置内容。如此,服务器依次生成与各目标页面分别对应的配置内容,得到配置文件。容易理解,也可在终端通过脚本生成配置文件。
进一步地,当需要从配置文件中读取与当前目标页面对应的配置内容时,终端通过预先注入的代码对配置文件进行解析,识别与各目标页面分别对应的配置内容,并根据当前目标页面的页面标识,从与各目标页面分别对应的配置内容中筛选出与当前目标页面对应的配置内容。
上述实施例中,通过预先注入的代码对配置文件进行解析,可以提升配置文件的解析效率。此外,由于可以通过脚本自动生成配置文件,相比于传统的手动编写配置文件,不仅而且可以降低配置文件的编写门槛,而且可以提升配置文件的生成效率。
在一个实施例中,通过预先注入的代码解析配置文件,得到与目标页面对应的配置内容之前,上述埋点处理方法还包括:当发生对于配置文件的更新指令时,响应于更新指令对配置文件执行更新操作;当更新后配置文件为最新版本的配置文件时,执行通过预先注入的代码解析所述配置文件,得到与目标页面对应的配置内容的步骤。
具体地,埋点开发人员可以在服务器端,根据自身需求对配置文件进行修改,从而服务器根据埋点开发人员的修改操作,生最新版本的配置文件,并将最新版本的配置文件发送至终端。当接收到服务器发送的配置文件时,终端判断接收到的配置文件的版本信息与本地的配置文件的版本信息是否一致,若不一致,表明接收到的配置文件为最新版本的配置文件,此时终端生成配置文件的更新指令,并基于更新指令对本地的配置文件进行更新,比如,基于更新指令,将接收到的具有最新版本的配置文件替换本地的配置文件。
进一步地,当基于更新指令,对本地的配置文件执行更新操作后,终端通过预先注入的代码解析更新后的配置文件,得到与目标页面对应的配置内容。
在一个具体的实施例中,当需要增加待设置埋点的目标控件时,埋点开发人员可以根据需求,在原始配置文件中增加相应的目标控件标识,从而服务器基于埋点开发人员的增加操作,生成最新版本的配置文件。
在另一个具体的实施例中,当需要修改针对目标控件所配置的控件配置信息时,埋点开发人员可以根据需求,在原始配置文件中修改相应的控件配置信息,从而服务器基于埋点开发人员的修改操作,生成最新版本的配置文件。
上述实施例中,通过对配置文件执行更新操作,即可实现控件埋点的在线更新,不仅操作简单,而且提升了控件埋点的更新效率。
在一个实施例中,遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识,包括:获取目标页面的控件树;控件树中包括对应不同层级的控件;从控件树中根节点所对应的控件开始,自顶向下遍历控件树中处于不同层级的各控件;确定遍历的各控件的控件标识。
具体地,当获取得到目标页面的页面数据时,终端基于页面数据生成对应的控件树。其中,控件树包括不同层级的控件,比如,如图4所示的控件树包括三个不同层级的控件,其中,根节点控件1所在的层级为最高层级;继承根节点的子节点控件2、控件3所在的层级为次于最高层级的第二层级;继承于控件2的控件4、控件5所在的层级为次于第二层级的第三层级。终端根据控件树中的各控件所在层级,从根节点所对应的控件开始,自顶向下遍历控件树处于不同层级的各控件。其中,遍历是指沿着某条搜索路线,依次对控件树中每个节点均做一次访问。在本实施例中,遍历控件主要用于获取各控件的控件标识。
对控件树进行遍历的遍历策略主要包括两种:深度优先的遍历策略和广度优先的遍历策略。深度优先的遍历策略为,终端将根节点作为起始节点,确定继承根节点的,且位于第一层级的一个或多个子节点。当第一层级具有多个子节点时,终端从多个子节点筛选出第一个邻接根节点的子节点,并获取第一个邻接根节点的子节点所对应控件的控件标识。终端将第一个邻接根节点的子节点作为起始节点进行迭代,直至对控件树中的各控件遍历完毕。即深度优先遍历的策略是优先进行纵向遍历,而不是对一个父节点的所有子节点进行横向遍历。
广度优先的遍历策略为,终端从控件树中的根节点出发,确定继承根节点的位于第一层级中的子节点,并对第一层级中的子节点进行遍历,确定各位于第一层级中的子节点所对应控件的控件标识。当获取得到第一层级中的各子节点所对应控件的控件标识时,终端根据层级关系,确定次于第一层级的,位于第二层级中的子节点,并获取位于第二层级中的子节点所对应控件的控件标识。如此,终端依次对处于不同层级的控件进行遍历,直至最后层级。
在其中一个实施例中,基于页面数据构建控件树的步骤包括:获取目标页面的页面数据;页面数据包括多个控件的控件标识、控件名称和层级信息;按照预设规则将多个控件标识添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的控件标识对应的控件名称,将最高级别数组中的控件标识对应的控件名称标记为父节点;查询次高级别数组中的控件标识对应的控件名称,根据多个控件之间的层级信息,将次高级别数组中的控件标识对应的控件名称标记为父节点的子节点;将子节点作为下一级别数组中的控件标识对应的控件名称的父节点进行迭代,直至最低级别数组;利用父节点以及对应的子节点生成目标页面对应的控件树。
终端建立最高级别数组,在页面数据中查询控件名称与预设根节点的控件名称相同的控件,将查询到的控件名称添加至最高级别数组。例如,最高级别数组可以是A1[控件1]。
终端将提取到的控件标记为父控件,根据该父控件的层级信息,对页面数据进行遍历,检测是否存在继承该父控件的子控件。当页面数据中存在对应的子控件时,终端建立次高级别数组,在页面数据中提取该父控件对应的子控件的控件标识,将提取到的控件标识添加至次高级别数组。例如,次高级别数组可以是A2[控件2,控件3]。
终端将提取到的子控件作为父控件,在页面数据中查询是否存在对应的子控件。当页面数据中存在对应的子控件时,终端按照上述方式建立下一级别数组。如此循环,直至页面数据中不存在对应的子控件时,得到最低级别数组。例如,最低级别数组可以是A4[控件4,控件5]。
值得注意的是,终端每生成一个数组,将对应的数组元素作为节点添加至控件树中。在生成最高级别数组后,终端将最高级别数组中的控件名称标记为控件树的根节点。在得到控件树的根节点后,终端按照上述方式生成次高级别数组,查询次高级别数组中的控件名称,将次高级别数组中的控件名称标记为控件树中根节点的子节点,利用预设连接线将子节点连接至根节点,形成控件树的多个树枝。在得到控件树根节点的子节点后,终端按照上述方式生成下一级别数组,将上述子节点作为该下一级别数组中数组元素的父节点,查询下一级别数组的数组元素对应的控件名称,利用预设连接线将下一级别数组中数组元素对应的控件名称连接至对应的父节点,以对控件树的树枝进行延长。终端按照上述方式依次将每个数组中数组元素对应控件的控件名称作为节点添加至控件树中,形成应用程序当前页面最终对应的控件树。
由于页面数据仅包含单个控件的层级信息,使得多个控件之间的层级关系隐蔽且分散,难以从整体上反应目标页面多个控件间的层级结构。本实施例中,终端可以根据不具有层级结构的页面数据,对目标页面中多个控件的层级信息进行整合,提炼出可以从整体上反应当前页面多个控件间层级结构的控件树。
上述实施例中,由于控件树包括目标页面中的全部控件,因此,只需对控件树进行遍历,即可获取得到目标页面中的各控件的控件标识。
在一个实施例中,基于确定的埋点设置信息对遍历的控件进行埋点设置,包括:分别基于目标控件各自所对应的目标操作类型和附加上报内容,对相应的目标控件进行埋点设置。
其中,埋点设置信息包括目标操作类型和附加上报内容;目标操作类型用于判别触发埋点事件的触发操作;附加上报内容用于在发生埋点事件时作为附加内容进行上报。
具体地,在当前遍历控件的控件标识为配置内容中的目标控件标识时,终端判定当前遍历的控件为目标控件,并从配置内容中读取针对目标控件所设置的埋点设置信息。终端从埋点设置信息提取出目标操作类型和附加上报信息,并根据目标操作类型和附加上报信息对目标控件进行相应的埋点设置。
埋点设置包括目标操作类型设置和附加上报内容设置。其中,目标操作类型设置是指基于埋点设置信息中的目标操作类型,对需要进行监听的触发操作的操作类型设置监听的设置过程,比如,目标操作类型设置可以为对触摸点击控件1的触摸点击操作设置监听的设置过程,也可以为对控件2的触摸滑动操作设置监听的设置过程等,从而在确定用户触摸点击控件1或者触摸滑动控件2时,生成对应的埋点事件。触发操作包括触摸点击、触摸长按、触摸短按或触摸滑动等,相应的,触发操作的操作类型包括触摸点击类型、触摸长按类型、触摸短按类型或触摸滑动类型等。
附加上报内容设置是指基于埋点设置信息中的附加上报内容,对上报的附加内容进行设置的设置过程,比如,附加上报内容设置可以为,将“控件1被触摸点击”作为发生触摸点击控件1时的附加上报内容进行上报,从而在响应埋点事件时,终端将附加上报内容作为除用户行为数据之外的附加信息进行上报。
在其中一个实施例中,埋点开发人员可以通过在配置文件中增加目标操作类型配置项和增加附加上报内容配置项,对埋点设置信息中的目标操作类型和附加上报内容进行设置。比如,埋点开发人员可以在配置文件中增加与控件1相关联的目标操作类型配置项:“‘触摸操作类型’:‘触摸点击’”,从而终端基于“‘触摸操作类型’:‘触摸点击’”,对控件1的触摸点击操作进行监控。又比如,埋点开发人员可以在配置文件中增加与控件1相关联的附加上报内容配置项:“‘附加上报内容’:‘控件1被触摸点击’”,从而终端基于“‘附加上报内容’:‘控件1被触摸点击’”,将“控件1被触摸点击”作为响应控件1的埋点事件的附加上报内容。
上述实施例中,埋点开发人员可以根据需求自由设定埋点设置信息中的目标操作类型和附加上报内容,如此,不仅满足用户需要求,而且提升了用户体验;此外,通过对目标操作类型和附加上报内容进行设置,使得不同的目标控件可以有不同的埋点设置,相比于传统的无差别埋点,本实施例可以实现个性化埋点。
在一个实施例中,上述埋点处理方法还包括:当发生对已经设置埋点的目标控件的触发操作时,确定由目标控件所对应的埋点设置信息所设置的目标操作类型;当触发操作属于目标操作类型时,基于埋点设置信息生成对应的埋点事件;响应于埋点事件,采集由触发操作所生成的用户行为数据并上报。
其中,埋点事件是指基于埋点设置,触发生成页面曝光数据、用户行为数据以及附加上报信息等上报数据的事件。
具体地,终端对用户的触发操作进行监控,当发生触发操作时,终端确定触发操作所指向的控件。当触发操作所指向控件的控件标识为配置内容中的目标控件标识时,表明触发操作所指向的控件为目标控件,此时已针对目标控件进行了相应的埋点设置。终端确定触发操作的操作类型,以及根据埋点设置,确定针对目标控件所设置的目标操作类型,当触发操作的操作类型属于目标操作类型时,终端生成目标控件的埋点事件,并采集、上报由触发操作生成的用户行为数据,用以响应埋点事件。
在其中一个实施例中,当基于AccessibilityDelegate机制进行埋点设置时,应用程序开发人员可以通过重写AccessibilityDelegate中的sendAccessibilityEvent方法,指定需要采集的用户行为数据,从而当生成埋点事件时,终端通过调用sendAccessibilityEvent方法,响应埋点事件。
在其中一个实施例中,在采集用户行为数据的同时,终端判断是否已基于埋点设置信息中的附加上报内容对目标控件进行埋点设置,若是,终端获取对应的附件上报内容,将附件上报内容和用户行为数据进行关联并上报。通过将附件上报内容和用户行为数据关联上报,可以减少数据上报的上报次数,从而节约数据上报所耗费的计算机资源。
在其中一个实施例中,终端对当前未上报的用户行为数据的数据量进行统计,在当前未上报的用户行为数据的数据量达到预设数据量阈值时,终端将当前未上报的用户行为数据进行打包,得到打包后的用户行为数据,以及与预设的多个用于存储用户行为数据的服务器建立通信链路,通过通信链路确定各服务器的负载情况,将打包后的用户行为数据上报至负载情况符合预设要求的服务器。通过将用户行为数据进行打包后上报,可以减少数据上报的上报次数,从而节约数据上报所耗费的计算机资源;此外,通过将用户行为数据上报至负载符合预设要求的服务器,使得接收到用户行为数据的服务器可以调用充足的计算机资源用以及时响应用户行为数据分析的需求。
上述实施例中,在触发操作属于目标操作类型时,才生成对应的埋点事件,可以大大减少不必要的埋点事件的生成概率,从而节约生成埋点事件以及响应埋点事件时所耗费的如内存等计算机资源。
在一个实施例中,响应于埋点事件,采集由触发操作所生成的用户行为数据并上报,包括:响应于埋点事件,采集由触发操作所生成的用户行为数据;确定与埋点事件对应的目标页面的页面标识和目标控件的目标控件标识;对页面标识、所述目标控件标识、以及用户行为数据进行关联后上报。
具体地,当生成埋点事件时,终端根据用户的触发操作生成对应的用户行为数据,以响应埋点事件,比如,终端将触发操作的操作类型以及发生触发操作的操作时间作为用户行为数据。与此同时,终端确定与埋点事件相对应的目标控件,以及目标控件所在的目标页面,并获取目标控件的目标控件标识和目标页面的页面标识,将页面标识、目标控件标识、以及用户行为数据进行关联后上报。
上述实施例中,通过对页面标识、目标控件标识以及用户行为数据进行关联后上报,使得当需要对上报的数据进行分析时,可以快速确定用户行为数据所对应用的页面标识和目标控件标识,从而提升了数据分析效率。
为了便于本领域技术人员的理解,如图5所示,提供了一种埋点处理方法的具体流程示意图。当需要对目标页面中的目标控件进行埋点设置时,终端判断是否接收到配置文件的更新指令,若是,终端基于更新指令对配置文件进行更新处理。当更新后的配置文件为最新版本的配置文件时,终端基于预先注入的代码对最新版本的配置文件进行解析,并基于解析结果对目标控件进行埋点设置。
为了便于本领域技术人员的理解,如图6所示,提供了另一种埋点处理方法的具体流程示意图。当获取得到目标页面的配置内容时,终端根据配置内容中的页面设置配置信息,确定是否允许上报页面曝光数据,若允许,终端在确定目标页面处于页面曝光阶段时,将页面曝光数据上报至服务器。与此同时,终端根据目标页面的页面数据生成控件树,并对控件树进行遍历,判断当前遍历的控件是否属于目标控件。若是,终端从配置内容读取出与当前遍历控件相对应的控件埋点设置信息,并基于控件埋点设置信息对当前遍历控件进行埋点设置,直至遍历完控件树中的各控件。当确定用户对目标控件执行触发操作时,终端根据用户的触发操作,以及对目标控件的埋点设置,生成相应的用户行为数据和附加上报内容,并将用户行为数据和附加上报内容关联后上报。
在一个具体实施例中,如图7所示,本申请提供的埋点处理方法包括以下步骤:
S702,当发生页面显示指令时,获取待显示的目标页面所对应的页面数据。
S704,进入目标页面,并基于页面数据执行页面渲染操作。
S706,获取与目标页面对应的配置文件,并当发生对于配置文件的更新指令时,响应于更新指令对配置文件执行更新操作;置文件根据用户行为上报需求并通过脚本自动生成。
S708,当更新后配置文件为最新版本的配置文件时,执行通过预先注入的代码解析配置文件,得到与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息。
S710,当目标页面处于页面刷新阶段时,获取目标页面的控件树;控件树中包括处于不同层级的控件;从控件树的根节点所对应的控件开始,自顶向下遍历控件树中处于不同层级的各控件;确定遍历的各控件的控件标识。页面刷新阶段为从执行页面渲染操作之后直至显示目标页面之前的时间段。
S712,当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息;控件埋点设置信息包括目标操作类型和附加上报内容。
S714,分别基于目标控件各自所对应的目标操作类型和附加上报内容,对相应的目标控件进行埋点设置;目标操作类型用于判别触发埋点事件的触发操作;附加上报内容用于在发生埋点事件时作为附加内容进行上报。
上述埋点处理方法中,当进入目标页面时,即可获取与目标页面对应的配置内容,以便从配置内容中提取出待设置埋点的目标控件的目标控件标识。通过对目标页面中的至少一个控件进行遍历,以根据相应的控件标识来确定遍历的各个控件中需要进行埋点设置的目标控件。这样,即可通过配置内容中的埋点设置信息对目标控件进行埋点设置,从而实现了目标控件的自定义埋点。由于本申请可以在配置内容中指定待设置埋点的目标控件,因此相比于传统的对页面中的所有控件均进行无差别埋点,本申请可以减少不必要的埋点操作,从而提升页面埋点的埋点效率。
在另一个具体实施例中,如图10所示,本申请提供的埋点处理方法包括以下步骤:
S802,进入目标页面。
S804,获取与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息。
S806,遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识。
S808,当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息。
S810,基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
S812,当目标页面处于页面曝光阶段时,提取配置内容中的页面埋点设置信息;页面曝光阶段为显示目标页面之后至当前时间的时间段。
S814,当基于页面埋点设置信息确定允许页面曝光数据上报时,根据目标页面的页面标识生成对应的页面曝光数据并上报。
S816,当发生对于已经设置埋点的目标控件的触发操作时,确定与目标控件相对应的目标操作类型。
S818,当触发操作属于目标操作类型时,基于控件埋点设置信息生成对应的埋点事件。
S820,响应于埋点事件,采集由触发操作所生成的用户行为数据;确定与埋点事件对应的目标页面的页面标识和目标控件的目标控件标识;将确定的页面标识、目标控件标识、以及用户行为数据进行关联后上报。
本申请还提供一种应用场景,该应用场景应用上述的埋点处理方法。具体地,该埋点处理方法在该应用场景的应用如下:
当需要为A购物应用程序中的订单结算页面中的结算控件进行埋点设置时,终端基于用户的触发操作判断是否进入订单结算页面,若是,终端获取配置文件,并基于预先注入的代码对配置文件进行解析,得到与订单结算页面相对应的配置内容。以此同时,终端获取订单结算页面的页面数据,根据页面数据生成控件树,并对控件树进行遍历,得到遍历的各控件的控件标识。在当前遍历控件的控件标识为配置内容中的目标控件标识时,即在当前遍历控件的控件标识为结算控件的控件标识时,终端根据配置内容中的与结算控件的控件标识相关联的控件埋点设置信息,对结算控件进行埋点设置,从而,当针对结算控件生成埋点事件时,终端可以根据相应的埋点设置生成需要上报的数据。
应该理解的是,虽然图2、7和8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、7和8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种埋点处理装置900,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:配置内容获取模块902、控件标识确定模块904和埋点模块906,其中:
配置内容获取模块902,用于进入目标页面;获取与目标页面对应的配置内容;配置内容包括目标控件标识、以及与各目标控件标识分别对应的控件埋点设置信息。
控件标识确定模块904,用于遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识。
埋点模块906,用于当遍历的控件的控件标识为配置内容中的目标控件标识时,确定遍历的控件为目标控件,并确定与目标控件对应的控件埋点设置信息;基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
在一个实施例中,如图10所示,配置内容获取模块902还包括页面进入模块9021,用于当发生页面显示指令时,获取待显示的目标页面所对应的页面数据;进入目标页面,并基于页面数据执行页面渲染操作;遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识,包括:当目标页面处于页面刷新阶段时,遍历目标页面中的至少一个控件,并确定遍历的各控件的控件标识;页面刷新阶段为从执行页面渲染操作之后直至显示目标页面之前的时间段。
在一个实施例中,页面进入模块9021还用于当目标页面处于页面曝光阶段时,提取配置内容中的页面埋点设置信息;页面曝光阶段为显示目标页面之后至当前时间的时间段;当基于页面埋点设置信息确定允许页面曝光数据上报时,根据目标页面的页面标识生成对应的页面曝光数据并上报。
在一个实施例中,配置内容获取模块902还包括解析模块9022,用于获取与目标页面对应的配置文件;配置文件根据用户行为上报需求并通过脚本自动生成;通过预先注入的代码解析配置文件,得到与目标页面对应的配置内容。
在一个实施例中,解析模块9022还用于当发生对于配置文件的更新指令时,响应于更新指令对配置文件执行更新操作;当更新后配置文件为最新版本的配置文件时,执行通过预先注入的代码解析配置文件,得到与目标页面对应的配置内容的步骤。
在一个实施例中,控件标识确定模块904还用于获取目标页面的控件树;控件树中包括处于不同层级的控件;从控件树的根节点所对应的控件开始,自顶向下遍历控件树中处于不同层级的各控件;确定遍历的各控件的控件标识。
在一个实施例中,埋点模块906还用于分别基于目标控件各自所对应的目标操作类型和附加上报内容,对相应的目标控件进行埋点设置;目标操作类型用于判别触发埋点事件的触发操作;附加上报内容用于在发生埋点事件时作为附加内容进行上报。
在一个实施例中,埋点处理装置900还包括数据上报模块908,用于当发生对于已经设置埋点的目标控件的触发操作时,确定与目标控件相对应的目标操作类型;当触发操作属于目标操作类型时,基于控件埋点设置信息生成对应的埋点事件;响应于埋点事件,采集由触发操作所生成的用户行为数据并上报。
在一个实施例中,数据上报模块908还用于响应于埋点事件,采集由触发操作所生成的用户行为数据;确定与埋点事件对应的目标页面的页面标识和目标控件的目标控件标识;将确定的页面标识、目标控件标识、以及用户行为数据进行关联后上报。
关于埋点处理装置的具体限定可以参见上文中对于埋点处理方法的限定,在此不再赘述。上述埋点处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种埋点处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种埋点处理方法,其特征在于,所述方法包括:
进入目标页面;
获取与所述目标页面对应的配置内容;所述配置内容包括目标控件标识、以及与各所述目标控件标识分别对应的控件埋点设置信息;
遍历所述目标页面中的至少一个控件,并确定遍历的各控件的控件标识;
当遍历的所述控件的控件标识为所述配置内容中的目标控件标识时,确定遍历的所述控件为目标控件,并确定与所述目标控件对应的控件埋点设置信息;
基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
2.根据权利要求1所述的方法,其特征在于,所述进入目标页面,包括:
当发生页面显示指令时,获取待显示的目标页面所对应的页面数据;
进入目标页面,并基于所述页面数据执行页面渲染操作;
所述遍历所述目标页面中的至少一个控件,并确定遍历的各控件的控件标识,包括:
当所述目标页面处于页面刷新阶段时,遍历所述目标页面中的至少一个控件,并确定遍历的各控件的控件标识;所述页面刷新阶段为从执行所述页面渲染操作之后直至显示所述目标页面之前的时间段。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述目标页面处于页面曝光阶段时,提取所述配置内容中的页面埋点设置信息;所述页面曝光阶段为显示所述目标页面之后至当前时间的时间段;
当基于所述页面埋点设置信息确定允许页面曝光数据上报时,根据所述目标页面的页面标识生成对应的页面曝光数据并上报。
4.根据权利要求1所述的方法,其特征在于,所述获取与所述目标页面对应的配置内容,包括:
获取与所述目标页面对应的配置文件;所述配置文件根据用户行为上报需求并通过脚本自动生成;
通过预先注入的代码解析所述配置文件,得到与所述目标页面对应的配置内容。
5.根据权利要求4所述的方法,其特征在于,所述通过预先注入的代码解析所述配置文件,得到与所述目标页面对应的配置内容之前,所述方法还包括:
当发生对于所述配置文件的更新指令时,响应于所述更新指令对所述配置文件执行更新操作;
当更新后配置文件为最新版本的配置文件时,执行所述通过预先注入的代码解析所述配置文件,得到与所述目标页面对应的配置内容的步骤。
6.根据权利要求1所述的方法,其特征在于,所述遍历所述目标页面中的至少一个控件,并确定遍历的各控件的控件标识,包括:
获取所述目标页面的控件树;所述控件树中包括处于不同层级的控件;
从所述控件树的根节点所对应的控件开始,自顶向下遍历所述控件树中处于不同层级的各控件;
确定遍历的各控件的控件标识。
7.根据权利要求1所述的方法,其特征在于,所述控件埋点设置信息包括目标操作类型和附加上报内容;所述基于确定的控件埋点设置信息对相应的目标控件进行埋点设置,包括:
分别基于所述目标控件各自所对应的目标操作类型和附加上报内容,对相应的目标控件进行埋点设置;所述目标操作类型用于判别触发埋点事件的触发操作;所述附加上报内容用于在发生埋点事件时作为附加内容进行上报。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述埋点设置信息包括目标操作类型,所述方法还包括:
当发生对于已经设置埋点的目标控件的触发操作时,确定与所述目标控件相对应的目标操作类型;
当所述触发操作属于所述目标操作类型时,基于所述控件埋点设置信息生成对应的埋点事件;
响应于所述埋点事件,采集由所述触发操作所生成的用户行为数据并上报。
9.根据权利要求8所述的方法,其特征在于,所述响应于所述埋点事件,采集由所述触发操作所生成的用户行为数据并上报,包括:
响应于所述埋点事件,采集由所述触发操作所生成的用户行为数据;
确定与所述埋点事件对应的目标页面的页面标识和目标控件的目标控件标识;
将确定的所述页面标识、所述目标控件标识、以及所述用户行为数据进行关联后上报。
10.一种埋点处理装置,其特征在于,所述装置包括:
配置内容获取模块,用于进入目标页面;获取与所述目标页面对应的配置内容;所述配置内容包括目标控件标识、以及与各所述目标控件标识分别对应的控件埋点设置信息;
控件标识确定模块,用于遍历所述目标页面中的至少一个控件,并确定遍历的各控件的控件标识;
埋点模块,用于当遍历的所述控件的控件标识为所述配置内容中的目标控件标识时,确定遍历的所述控件为目标控件,并确定与所述目标控件对应的控件埋点设置信息;基于确定的控件埋点设置信息对相应的目标控件进行埋点设置。
11.根据权利要求10所述的装置,其特征在于,所述配置内容获取模块还包括解析模块,用于获取与所述目标页面对应的配置文件;所述配置文件根据用户行为上报需求并通过脚本自动生成;通过预先注入的代码解析所述配置文件,得到与所述目标页面对应的配置内容。
12.根据权利要求11所述的装置,其特征在于,所述解析模块还用于当发生对于所述配置文件的更新指令时,响应于所述更新指令对所述配置文件执行更新操作;当更新后配置文件为最新版本的配置文件时,执行所述通过预先注入的代码解析所述配置文件,得到与所述目标页面对应的配置内容的步骤。
13.根据权利要求10所述的装置,其特征在于,所述控件标识确定模块还用于获取所述目标页面的控件树;所述控件树中包括处于不同层级的控件;从所述控件树的根节点所对应的控件开始,自顶向下遍历所述控件树中处于不同层级的各控件;确定遍历的各控件的控件标识。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010681685.6A CN114020589B (zh) | 2020-07-15 | 2020-07-15 | 埋点处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010681685.6A CN114020589B (zh) | 2020-07-15 | 2020-07-15 | 埋点处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114020589A true CN114020589A (zh) | 2022-02-08 |
CN114020589B CN114020589B (zh) | 2024-07-02 |
Family
ID=80053990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010681685.6A Active CN114020589B (zh) | 2020-07-15 | 2020-07-15 | 埋点处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020589B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658065A (zh) * | 2022-12-13 | 2023-01-31 | 西安葡萄城软件有限公司 | 前端ui框架构建方法及装置 |
CN118214692A (zh) * | 2024-05-21 | 2024-06-18 | 腾讯科技(深圳)有限公司 | 业务运行检测方法、装置、计算机设备、存储介质和计算机程序产品 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283075A1 (en) * | 2014-01-27 | 2016-09-29 | Tencent Technology (Shenzhen) Company Limited | Information processing method, apparatus, and system |
CN106156212A (zh) * | 2015-04-22 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种数据采集方法和系统、及其终端和服务器 |
CN106844217A (zh) * | 2017-01-26 | 2017-06-13 | 网易(杭州)网络有限公司 | 对应用的控件进行埋点的方法及装置、可读存储介质 |
WO2017167042A1 (zh) * | 2016-04-01 | 2017-10-05 | 阿里巴巴集团控股有限公司 | 前端用户行为统计方法及装置 |
CN109508186A (zh) * | 2018-09-18 | 2019-03-22 | 众安信息技术服务有限公司 | 一种基于iOS可视化埋点的数据采集分析方法及系统 |
WO2019100614A1 (zh) * | 2017-11-22 | 2019-05-31 | 平安科技(深圳)有限公司 | 埋点数据处理方法、装置、计算机设备和存储介质 |
CN110059282A (zh) * | 2019-04-23 | 2019-07-26 | 北京奇艺世纪科技有限公司 | 一种交互类数据的获取方法及系统 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和系统 |
CN110554951A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 一种埋点管理的方法和装置 |
CN110659191A (zh) * | 2019-09-02 | 2020-01-07 | 深圳市随手科技有限公司 | 埋点数据分析方法、装置、计算机设备和存储介质 |
CN111367562A (zh) * | 2018-12-25 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 数据采集方法、装置、存储介质及处理器 |
US20210256088A1 (en) * | 2017-11-01 | 2021-08-19 | Ping An Technology (Shenzhen) Co., Ltd. | Method, apparatus, computer device and storage medium of page displaying |
-
2020
- 2020-07-15 CN CN202010681685.6A patent/CN114020589B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283075A1 (en) * | 2014-01-27 | 2016-09-29 | Tencent Technology (Shenzhen) Company Limited | Information processing method, apparatus, and system |
CN106156212A (zh) * | 2015-04-22 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种数据采集方法和系统、及其终端和服务器 |
WO2017167042A1 (zh) * | 2016-04-01 | 2017-10-05 | 阿里巴巴集团控股有限公司 | 前端用户行为统计方法及装置 |
CN106844217A (zh) * | 2017-01-26 | 2017-06-13 | 网易(杭州)网络有限公司 | 对应用的控件进行埋点的方法及装置、可读存储介质 |
US20210256088A1 (en) * | 2017-11-01 | 2021-08-19 | Ping An Technology (Shenzhen) Co., Ltd. | Method, apparatus, computer device and storage medium of page displaying |
WO2019100614A1 (zh) * | 2017-11-22 | 2019-05-31 | 平安科技(深圳)有限公司 | 埋点数据处理方法、装置、计算机设备和存储介质 |
CN110554951A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 一种埋点管理的方法和装置 |
CN109508186A (zh) * | 2018-09-18 | 2019-03-22 | 众安信息技术服务有限公司 | 一种基于iOS可视化埋点的数据采集分析方法及系统 |
CN111367562A (zh) * | 2018-12-25 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 数据采集方法、装置、存储介质及处理器 |
CN110059282A (zh) * | 2019-04-23 | 2019-07-26 | 北京奇艺世纪科技有限公司 | 一种交互类数据的获取方法及系统 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和系统 |
CN110659191A (zh) * | 2019-09-02 | 2020-01-07 | 深圳市随手科技有限公司 | 埋点数据分析方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
一只森林鹿LULUZENG: "埋点系列2-输出埋点需求文档", pages 1 - 9, Retrieved from the Internet <URL:https://www.jianshu.com/p/063d8107d18a> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658065A (zh) * | 2022-12-13 | 2023-01-31 | 西安葡萄城软件有限公司 | 前端ui框架构建方法及装置 |
CN118214692A (zh) * | 2024-05-21 | 2024-06-18 | 腾讯科技(深圳)有限公司 | 业务运行检测方法、装置、计算机设备、存储介质和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN114020589B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102436987B1 (ko) | 웹페이지 콘텐츠를 추출하기 위한 방법 및 단말 장치 | |
US8640037B2 (en) | Graphical overlay related to data mining and analytics | |
WO2020020272A1 (zh) | 页面控制方法、装置和计算机可读存储介质 | |
US11537683B2 (en) | Configuration of content site user interaction monitoring in data networks | |
US11720379B2 (en) | Acquisition process of GUI elements using user input | |
CN111866158B (zh) | 路由方法、装置、计算机设备和存储介质 | |
CN112631591B (zh) | 表元素联动方法、装置、设备与计算机可读存储介质 | |
CN112817817B (zh) | 埋点信息查询方法、装置、计算机设备和存储介质 | |
CN112394908A (zh) | 埋点页面自动生成的方法、装置、计算机设备及存储介质 | |
CN113535587B (zh) | 目标应用检测方法、装置及计算机设备 | |
CN114020589B (zh) | 埋点处理方法、装置、计算机设备和存储介质 | |
CN112965716B (zh) | 页面处理方法、装置、电子设备及可读存储介质 | |
US9679073B2 (en) | Webpage comprising a rules engine | |
CN113254338A (zh) | 测试用例生成方法、装置及设备 | |
CN113515715B (zh) | 埋点事件编码的生成方法、处理方法及相关设备 | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN115525305A (zh) | 数据处理、应用启动方法、装置、计算机设备和存储介质 | |
JP4581520B2 (ja) | ドキュメント管理プログラム、ドキュメント管理方法、及びドキュメント管理装置 | |
CN113961110B (zh) | 用户操作响应方法、装置、计算机设备和存储介质 | |
CN116070042A (zh) | 路径确定方法、装置、设备及存储介质 | |
CN118152647A (zh) | 数据处理方法、装置、设备以及介质 | |
CN117742836A (zh) | 一种页面处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |