发明内容
有鉴于此,本说明书一个或多个实施例提供一种埋点自动设置方法和装置,以提高页面埋点的效率。
具体地,本说明书一个或多个实施例是通过如下技术方案实现的:
第一方面,提供一种埋点自动设置方法,所述方法包括:
获取待埋点的页面的页面地址;
解析所述页面地址对应的页面的树状结构模型,所述树状结构模型中包括:分别对应所述页面中各个页面元素的多个节点、以及分别对应各个节点的埋点事件,所述埋点事件表示在所述节点对应的页面元素处设置埋点;
当接收到对所述节点的埋点事件的确认时,根据所述节点在所述树状结构模型中的位置,获取对应在所述页面的页面代码位置;
在所述页面代码位置处设置埋点信息,所述埋点信息包括所述页面元素的位置标识。
第二方面,提供一种埋点自动设置装置,所述装置包括:
地址获取模块,用于获取待埋点的页面的页面地址;
结构解析模块,用于解析所述页面地址对应的页面的树状结构模型,所述树状结构模型中包括:分别对应所述页面中各个页面元素的多个节点、以及分别对应各个节点的埋点事件,所述埋点事件表示在所述节点对应的页面元素处设置埋点;
位置获取模块,用于当接收到对所述节点的埋点事件的确认时,根据所述节点在所述树状结构模型中的位置,获取对应在所述页面的页面代码位置;
埋点设置模块,用于在所述页面代码位置处设置埋点信息,所述埋点信息包括所述页面元素的位置标识。
第三方面,提供一种数据处理设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行指令时实现以下步骤:
获取待埋点的页面的页面地址;
解析所述页面地址对应的页面的树状结构模型,所述树状结构模型中包括:分别对应所述页面中各个页面元素的多个节点、以及分别对应各个节点的埋点事件,所述埋点事件表示在所述节点对应的页面元素处设置埋点;
当接收到对所述节点的埋点事件的确认时,根据所述节点在所述树状结构模型中的位置,获取对应在所述页面的页面代码位置;
在所述页面代码位置处设置埋点信息,所述埋点信息包括所述页面元素的位置标识。
本说明书一个或多个实施例的埋点自动设置方法和装置,通过由dom树中选择确认埋点,使得能够根据埋点在dom树中的位置,自动获取页面代码位置并设置埋点,从而节省了人工埋点成本,提高了埋点录入的效率。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
一个页面中可以包括多个页面元素,例如,页面中的“按钮”、“链接”等都可以称为页面元素。根据业务需求,通常可以采集用户浏览上述页面的行为,比如,可以采集用户点击该页面上的页面元素“链接”的次数,以了解用户对该链接内容的兴趣度。为了实现该采集页面浏览行为的需求,可以在页面代码中进行埋点。
例如,以采集点击事件为例,一个页面中可以包括多个用户可以点击的页面元素,当要采集其中一个页面元素的点击事件时,可以在页面代码中对应该页面元素的页面代码位置处进行埋点。埋点可以是在所述的页面代码位置处设置埋点信息,包括该页面元素的位置标识,以在后续的事件上报时携带该位置标识用于识别元素在页面的位置,还可以包括埋点操作信息,比如,操作信息可以是点击,即当该页面元素被点击时触发采集。
页面的页面代码中还可以设置“采集器”,例如,该采集器可以是用于执行监听和上报点击事件的javascript脚本。当浏览器解析页面代码显示页面时,还可以执行上述的js脚本,js脚本可以根据埋点信息监听上述的页面元素是否发生点击事件,并在监听到点击事件时上报服务端,携带元素的位置标识。服务端据此可以进行统计分析,获知页面中哪个位置的页面元素被点击的次数。
本公开例子的埋点自动设置方法,可以用于描述如何在页面代码中自动插入埋点信息。图1示例了一个埋点系统的系统结构图,该埋点系统可以用于执行上面提到的在页面代码中插入埋点、管理埋点信息、存储采集的埋点数据以及统计分析等功能。如图1所示,该埋点系统可以包括:埋点录入模块11、埋点数据存储模块12、统计分析模块13和埋点管理模块14。
其中,埋点系统中的埋点录入模块11可以执行本公开例子中的埋点自动设置方法,该方法的处理可以参见图2的示例:
在步骤200中,获取待埋点的页面的页面地址。
例如,本步骤中可以由产品人员、或者运营人员、或者开发人员,向埋点录入模块11中输入需要进行埋点的测试页面的地址URL。
在步骤202中,解析所述页面地址对应的页面的树状结构模型,所述树状结构模型中包括:分别对应所述页面中各个页面元素的多个节点、以及分别对应各个节点的埋点事件,所述埋点事件表示在节点对应的页面元素处设置埋点;
本步骤中,可以根据步骤200得到的地址URL,得到页面的页面代码。该页面代码例如可以是html页面代码,可以解析该页面代码得到对应的树状结构模型。该树状结构模型可以是页面的DOM Tree(dom树),以h5页面为例,h5页面编写时使用html语言描述,该语言以一种树状结构描述页面元素信息。浏览器渲染页面时,可以将html转换为dom树,用于描述页面元素信息,并提供操作API。不过,本例子可以是由埋点系统的埋点录入模块11解析页面地址对应的页面得到dom树,以供下一步的自动埋点录入操作。
例如,以图3所示的页面为例,假如要在图3所示的页面中设置埋点,要采集用户点击页面中的页面元素“房产证”的次数。那么通过埋点需要实现每当用户点击页面中的“房产证”时,都要上报埋点系统。按照本例子的方法,配置人员(例如,产品或者开发者)可以在埋点系统向埋点录入模块11输入图3所示页面对应的测试地址,则埋点录入模块11可以得到页面代码,并解析得到对应该页面的树状模型结构dom树。图4示例了该dom树的结构。
本例子中,dom树的生成可以包括,生成与页面中各个页面元素对应的多个节点。例如,图4中的房产证节点对应页面中的页面元素“房产证”,图4中的不动产证节点对应页面中的页面元素“不动产证”。Dom树中的各个节点和节点之间的层级关系(例如,div的父节点是body)的生成是常规技术。主要的地方在于,本例子的dom树中还包括分别对应各个节点的埋点事件,所述埋点事件表示在节点对应的页面元素处设置埋点。
仍以采集图3页面中的“房产证”的点击次数为例,如图4所示,dom树中对应节点“房产证”的位置,还设置埋点事件,比如图4中示例的“click”,表明这个节点处要设置埋点,并且触发埋点的操作action是“点击”click,只要用户点击了该节点对应的页面元素,则触发采集上报。
并且,还设置有供用户选择的接口,比如图4中示例的“点击埋点确认”的选项,如果用户(例如,配置人员)要在该节点处设置埋点,只要点击一下即可,埋点录入模块11即可接收到用户要在该页面元素处设置埋点。本例子中,可以将页面中可以设置埋点的各个页面元素对应的dom树节点处,都设置埋点事件,包括上述的埋点操作信息(例如,action是click)以及供用户选择的接口。例如,图5示例的dom树中,用户通过点击确认选择了在“房产证”节点设置埋点。
在步骤204中,当接收到对所述节点的埋点事件的确认时,根据所述节点在所述树状结构模型中的位置,获取对应的页面元素在页面的页面代码位置。
例如,当埋点录入模块11检测到对图4中所示接口的选择确认时,表示用户要在该节点处设置埋点。接着可以获取该节点对应的页面代码位置。
一个页面的页面代码可以与该页面的dom树具有对应关系,比如,图4中的房产证节点可以对应图3页面的页面代码中的部分代码位置。可以根据节点在树状结构模型中的树状路径,比如,该树状路径包括所述节点在所述树状结构模型中依次所属的各层级节点,依序查找所述页面的页面代码,获得对应的所述页面代码位置。
在步骤206中,在所述页面代码位置处设置埋点信息,所述埋点信息包括所述页面元素的位置标识。
例如,可以根据查找到的页面代码位置,在该位置处设置埋点信息,可以包括埋点操作信息、以及设置埋点的页面元素的位置标识。埋点信息的插入通常可以有一定的格式,按照该格式录入即可,可以只改变下不同位置埋点的位置标识。
其中,页面元素的位置标识的表示方式,本例子不做限制。比如,可以通过某种算法设置一个dom树中的各个节点的节点id,不同的节点可以有不同的节点id,通过该节点id可以获取到页面元素在dom树中的位置。
通过图2所示的流程,埋点录入模块11自动在页面代码中插入了埋点信息,并且该过程使得配置人员不需要预先录入埋点信息,直接在dom树中选择确认需要设置埋点的位置即可。开发人员也不需要手动进行埋点信息的埋入,由埋点录入模块11按照通用格式录入即可,只需要根据用户在dom树中的选择改变下录入格式中的部分参数,比如适应性改变下埋点的页面元素的位置标识。
请继续参见图1,埋点信息插入后,将包含埋点信息的页面代码进行测试,发布,进行线上运行。线上运行时,根据埋点信息,当检测到埋点的页面元素发生点击事件时,可以采集上报该点击事件,携带该事件对应的页面元素的位置标识,以使得埋点系统获知是页面中哪个位置的页面元素发生了点击事件,该位置标识可以用于区分不同的页面元素。采集上报的事件可以存储在埋点数据存储模块12,统计分析模块13可以对采集的事件进行统计分析,例如可以统计“房产证”被点击查看的次数。
此外,埋点录入模块11在埋点后,可以将页面的埋点信息发送至埋点管理模块14,由埋点管理模块14对这些埋点信息进行统一管理。例如,可以发送设置埋点的页面元素的位置标识、埋点操作信息等,并且,为了使得埋点管理模块14清楚位置标识代表哪个页面元素,还可以将位置标识和页面元素的对应关系发送至埋点管理模块14,比如,可以将dom树中各个节点分别对应的id之间的对应关系发送至埋点管理模块14。
本例子的埋点自动设置方法,通过由dom树中选择确认埋点,节省了人工成本,提高了埋点录入的效率。
为了实现本说明书一个或多个实施例的埋点自动设置方法,图6提供了一种埋点自动设置装置,如图6所示,该装置可以包括:地址获取模块61、结构解析模块62、位置获取模块63和埋点设置模块64。
地址获取模块61,用于获取待埋点的页面的页面地址;
结构解析模块62,用于解析所述页面地址对应的页面的树状结构模型,所述树状结构模型中包括:分别对应所述页面中各个页面元素的多个节点、以及分别对应各个节点的埋点事件,所述埋点事件表示在所述节点对应的页面元素处设置埋点;
位置获取模块63,用于当接收到对所述节点的埋点事件的确认时,根据所述节点在所述树状结构模型中的位置,获取对应在所述页面的页面代码位置;
埋点设置模块64,用于在所述页面代码位置处设置埋点信息,所述埋点信息包括所述页面元素的位置标识。
在一个例子中,结构解析模块62,具体用于:解析所述页面地址对应的页面,生成以树状结构模型展示的多个节点,所述多个节点分别对应所述页面中各个页面元素;分别生成各个节点对应的埋点事件,所述埋点事件包括:在所述节点设置埋点的埋点操作信息以及供用户选择的接口。
在一个例子中,位置获取模块63,具体用于:根据所述节点在树状结构模型中的树状路径,依序查找所述页面的页面代码,获得对应的所述页面代码位置;所述树状路径包括所述节点在所述树状结构模型中依次所属的各层级节点。
在一个例子中,埋点设置模块64,还用于将所述埋点信息发送至埋点管理模块进行存储。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述方法实施例所示流程中的各个步骤,其执行顺序不限制于流程图中的顺序。此外,各个步骤的描述,可以实现为软件、硬件或者其结合的形式,例如,本领域技术人员可以将其实现为软件代码的形式,可以为能够实现所述步骤对应的逻辑功能的计算机可执行指令。当其以软件的方式实现时,所述的可执行指令可以存储在存储器中,并被设备中的处理器执行。
例如,对应于上述方法,本说明书一个或多个实施例同时提供一种数据处理设备,该设备可以包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器通过执行所述指令,用于实现如下步骤:获取待埋点的页面的页面地址;解析所述页面地址对应的页面的树状结构模型,所述树状结构模型中包括:分别对应所述页面中各个页面元素的多个节点、以及分别对应各个节点的埋点事件,所述埋点事件表示在所述节点对应的页面元素处设置埋点;当接收到对所述节点的埋点事件的确认时,根据所述节点在所述树状结构模型中的位置,获取对应在所述页面的页面代码位置;在所述页面代码位置处设置埋点信息,所述埋点信息包括所述页面元素的位置标识。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务端设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。