下的子节点
。再例如,页面代码中的“….”对应的树状路径信息可以是“div-div2-a”,表示先找到下的子节点
,再找到该div下的子节点中依从左到右的顺序的第二个div子节点,最后在该第二个div子节点下的子节点中找到子节点
。[0057] 由上述可以看到,页面点击元素对应的树状路径信息表示了页面点击元素的位置查找路径,并且可以是在页面对应的dom树中顺次查找到该页面点击元素对应节点的方式,当然也可以依据该树状路径信息在页面代码中查找页面点击元素对应的代码位置,原理相同。此外,本例子不限制树状路径信息的具体表示方式,上述的“div-div2-button”仅是一个示例;采集器获取该树状路径信息的方法也可以不做限制,只要能够得到页面元素的位置查找路径即可。
[0058] 在步骤304中,上报本次点击事件,并携带所述树状路径信息。
[0059] 例如,采集器可以将本次点击事件对应的页面点击元素的树状路径信息上报至服务端,比如可以上报至埋点系统,以根据这些信息进行统计分析,可以了解到用户点击这些元素的相关数据,比如获取到点击次数。
[0060] 本例子的页面事件采集方法,可以由采集器在监听到点击事件时,获取页面点击元素对应的树状路径信息,该路径信息就相当于一种元素在页面位置的标识,将该路径信息上报,服务端就可以依据该路径信息获知页面点击元素在页面的位置。该方法使得开发人员可以不需要在页面代码中埋点各个页面元素的位置标识,而是由采集器自动获取路径信息上报即可,那么对于开发人员来讲,降低了埋点的工作量,可以快速简洁的实现页面事件采集的部署;并且也减少了埋点采集对页面代码的侵入程度。
[0061] 此外,本例子的方法还可以提高页面事件采集的准确度,在涉及复杂的页面交互时,例如,在同一个页面下,由于用户的操作,或者页面脚本的运行导致页面元素发生变化,通过本例子的方法可以清楚准确的区分不同的页面元素。举例如下:假设某一个页面中的同一个页面位置处,根据业务需求要在该位置自动轮播显示几张不同的图片,那么这几张图片实际上是在同一个页面位置显示。按照本例子的方法,根据页面的dom树描述页面元素的路径时,尽管这些图片在同一个页面位置显示,但是它们在dom树中的节点位置不同,因此获取到的图片的树状路径信息就不同,从而能够准确区分埋点的元素,也使得在后续的统计分析时,可以使得统计的结果更加准确。
[0062] 再次,采用本方法采集页面点击事件,由于不再需要在页面代码中注入需要采集的页面点击元素的位置标识,省去了线下定义和管理埋点元素位置标识的工作,简化了业务产品开发过程;并且,通过树状路径信息标识页面点击元素的位置,不仅位置表示比较清晰,路径信息本身就可以清楚的描述元素在页面的位置,而且路径信息的获取方式比较简单快速,可以通过树状模型的访问接口即可获取到元素的相关路径信息。
[0063] 在另一个例子中,对于页面中的页面点击元素之外的其他页面元素,同样可以利用本公开的页面事件采集方法进行点击事件采集。例如,可以为该其他页面元素设置“点击上报属性”,只要具有该属性的元素,都可以监听对应的事件。图4示例了另一个页面事件采集方法的流程图,可以包括:
[0064] 在步骤400中,监听到页面中其他页面元素的点击事件。
[0065] 例如,js脚本可以监听页面元素的点击事件,当用户浏览页面,点击了页面上的该页面元素的位置时,即发生点击事件。
[0066] 在步骤402中,若所述页面元素包括点击上报属性,则获取所述页面元素对应的树状路径信息,并上报包括所述树状路径信息的点击事件。
[0067] 例如,如果该页面元素的属性中包括点击上报属性,示例性的,该属性例如可以是data-click,则js脚本可以按照图3所示的流程获取页面元素对应的树状路径信息,并上报服务端。
[0068] 本例子的页面事件采集方法,在要对某个特定的页面元素采集点击事情时,非常容易部署实现,只需要在页面代码中该页面元素的位置添加点击上报属性即可,不需要在页面代码中注入该页面元素的位置标识,所以实现简单。
[0069] 上述的例子中,描述了如何设置对页面元素的点击事件进行采集,采集点击事件可以是为了对用户的浏览行为进行统计分析,借以作为业务改进的依据。那么在采集事件后,还可以对采集到的各个点击事件进行统计分析,在一个例子中,例如可以将采集到的事件上报至埋点系统,由埋点系统进行统计分析的处理。图5示例了对事件分析处理的流程,该处理过程中,可以根据接收到的采集事件信息还原到对应的页面元素。该方法可以包括:
[0070] 在步骤500中,获取采集的页面中的点击事件,所述点击事件包括点击的页面点击元素的树状路径信息。
[0071] 例如,负责统计分析的模块可以接收前端的js脚本上报的点击事件的事件数据,该事件数据可以包括点击事件的页面点击元素对应的树状路径信息,该路径信息用于表示页面点击元素在页面对应的树状描述模型中的节点位置。不同的页面点击元素对应的树状路径信息可以不同。
[0072] 在步骤502中,解析所述树状路径信息,得到所述页面点击元素。
[0073] 本步骤是根据树状路径信息反向解析,以还原这个点击事件对应的页面点击元素。例如,仍以图1所示例的页面中的页面点击元素“链接”的反向解析为例,该“链接”对应的树状路径信息可以是div-div2-a。
[0074] 首先,可以分解该树状路径信息div-div2-a,以“-”为分隔符,得到页面点击元素在树状描述模型中所属的各层级节点,包括:div、div2、a。并且对该各层级节点进行解析,包括其中的字符和数字的含义,比如,div表示由树状描述模型的根节点开始,依次向下查找,得到的第一个节点div;div2表示在上述的第一个节点div下的子节点,并且,该子节点可以包括多个div,这里的div2表示第二个子节点div;a表示div2下的子节点。综合得到,div-div2-a表示页面第一个div元素下的第二个div下的第一个a元素节点。
[0075] 接着,可以根据解析得到的各层级节点,在树状描述模型或者页面代码中逐层获取,确定所述页面点击元素。例如图6所示意,可以在dom树中依次查找,先找到“1”标识的div,接着找到“2”标识的div,最后找到“3”标识的节点“a”,即为页面点击元素。或者,如图7的示意,以页面代码为例,仍然按照“1”——>“2”——>“3”的步骤依次查找,最终得到代码位置
….。不论是图7中的代码位置还是图6中的节点“a”,最终都对应图1页面中的页面点击元素“链接”。
[0076] 此外,在统计分析时,还可以结合实际业务产品页面,在页面上标示获取到的页面点击元素,比如,在解析得到树状路径信息对应的是图1中页面上的元素“链接”后,可以将该“链接”以突出颜色显示,以使得分析人员清楚直观的看到点击事件发生在页面的位置。并且,还可以显示页面点击元素对应的点击事件的事件数据,比如可以在“链接”的附近或者元素上面等页面位置,显示该元素被点击的次数。
[0077] 本例子的页面事件采集方法,通过在事件上报时以元素的树状路径信息表示元素在页面的位置,由于该树状路径信息本身具有对元素位置的语义特性,使得可以快速准确的找到路径信息对应的元素在页面的位置,位置的对应还原工作简单快速,并且还可以进行可视化显示,统计分析工作非常直观。
[0078] 为了实现本说明书一个或多个实施例的页面事件采集方法,图8提供了一种页面事件采集装置,该装置例如应用在采集事件的js脚本。可以包括:事件监听模块81、信息获取模块82和事件上报模块83。
[0079] 事件监听模块81,用于监听到页面中的页面点击元素的点击事件;
[0080] 信息获取模块82,用于获取所述页面点击元素对应的树状路径信息,所述树状路径信息用于表示所述页面点击元素在所述页面对应的树状描述模型中的节点位置;
[0081] 事件上报模块83,用于上报本次点击事件,并携带所述树状路径信息。
[0082] 在一个例子中,所述事件监听模块81,还用于监听到所述页面中所述页面点击元素之外的页面元素的点击事件;
[0083] 所述信息获取模块82,还用于在所述页面元素包括点击上报属性时,则获取所述页面元素对应的树状路径信息。
[0084] 为了实现本说明书一个或多个实施例的页面事件采集方法,图9还提供了一种页面事件采集装置,该装置例如应用在埋点系统的统计分析模块。该装置可以包括:事件接收模块91和事件解析模块92。
[0085] 事件接收模块91,用于获取采集的页面中的点击事件,所述点击事件包括点击的页面点击元素的树状路径信息,所述树状路径信息用于表示所述页面点击元素在所述页面对应的树状描述模型中的节点位置;
[0086] 事件解析模块92,用于解析所述树状路径信息,得到所述页面点击元素。
[0087] 在一个例子中,如图10所示,该装置还可以包括:数据显示模块93,用于在所述页面上标示获取到的所述页面点击元素,并显示所述页面点击元素对应的点击事件的事件数据。
[0088] 上述页面事件采集方法实施例中所示流程中的各个步骤,其执行顺序不限制于流程图中的顺序。此外,各个步骤的描述,可以实现为软件、硬件或者其结合的形式,例如,本领域技术人员可以将其实现为软件代码的形式,可以为能够实现所述步骤对应的逻辑功能的计算机可执行指令。当其以软件的方式实现时,所述的可执行指令可以存储在存储器中,并被设备中的处理器执行。
[0089] 例如,对应于上述方法,本说明书一个或多个实施例同时提供一种数据采集设备,该设备可以包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器通过执行所述指令,用于实现如下步骤:监听到页面中的页面点击元素的点击事件;获取所述页面点击元素对应的树状路径信息,所述树状路径信息用于表示所述页面点击元素在所述页面对应的树状描述模型中的节点位置;上报本次点击事件,并携带所述树状路径信息。在一个例子的实现中,该数据采集设备可以是一台计算机,该计算机上运行浏览器展示页面,并且浏览器还采集用户对页面元素的点击事件进行上报。
[0090] 例如,对应于上述方法,本说明书一个或多个实施例同时提供一种数据处理设备,该设备可以包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器通过执行所述指令,用于实现如下步骤:获取采集的页面中的点击事件,所述点击事件包括点击的页面点击元素的树状路径信息,所述树状路径信息用于表示所述页面点击元素在所述页面对应的树状描述模型中的节点位置;解析所述树状路径信息,得到所述页面点击元素。在一个例子的实现中,该数据处理设备可以是服务器,该服务器上可以运行埋点系统,埋点系统可以对接收到的采集事件进行分析处理。
[0091] 上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0092] 为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0093] 本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0094] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0095] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0096] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0097] 本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0098] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据采集设备或者数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0099] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0100] 以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。