CN104572043B - 一种对客户端应用的控件进行实时埋点的方法及装置 - Google Patents
一种对客户端应用的控件进行实时埋点的方法及装置 Download PDFInfo
- Publication number
- CN104572043B CN104572043B CN201310485029.9A CN201310485029A CN104572043B CN 104572043 B CN104572043 B CN 104572043B CN 201310485029 A CN201310485029 A CN 201310485029A CN 104572043 B CN104572043 B CN 104572043B
- Authority
- CN
- China
- Prior art keywords
- control
- sectional drawing
- client application
- page
- configuration file
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种对客户端应用的控件进行实时埋点的方法及装置。该方法包括:基于来自客户端应用的截图判断请求,生成截图标志并将其向客户端应用发送;接收来自客户端应用的与目标页面相关的截图数据集合,其中,该截图数据集合包含控件截图文件、页面截图文件以及页面结构信息,并且每一个控件截图文件由控件的控件位置信息来标识;基于来自客户端应用的与目标页面相关的截图数据集合,将目标页面在浏览器中渲染出来;以及基于渲染出来的页面中的控件的事件属性,实时地对控件进行埋点并记录埋点配置信息。通过本申请的方法,解决了现有技术中落后的人工手动地客户端应用的控件进行埋点的问题,实现了客户端应用的控件的自动化埋点。
Description
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种对客户端应用的控件进行实时埋点的方法及装置。
背景技术
在计算机客户端应用领域中,很多时候需要对客户端应用的控件进行埋点,从而通过埋点的业务代码,通过监控而实现对这些控件的用户数据进行采集。
但是,在目前的埋点技术中,都是实行人工埋点,也即是说,采用手工埋点的方式,先由数据分析师人工地定义客户端应用的埋点的名称规范,然后,客户端开发人员根据定义的规范,把相关的埋点写入客户端应用的相关控件对应的代码里。最后,在用户使用客户端应用时通过这些埋点代码收集用户行为数据。现有技术采用的这种手工埋点的方式,有如下的缺点:首先,这样的方式很容易遗漏可以埋点的客户端应用的控件,定义的埋点名称很难保证唯一性;其次,人工地进行定义费时费力,浪费人力成本;再次,当客户端应用升级后,现有技术的方式需要重新定义埋点规范,从而导致需要人力的循环投入;再有,当分析师人工定义埋点后,需要客户端开发人员手工地把埋点写入到相对应的控件代码中,这一环节也很容易出现遗漏,书写错误,写入位置不正确等问题,并且在数据分析师对采集的数据进行数据分析时通过埋点数据很难联系到对应业务对象;现有技术的埋点方式最大的缺陷是每次埋点变更都需要重新发布客户端应用版本,完全达不到实时性要求。因此,需要一种自动化的实时埋点系统来完成对控件的埋点从而进行数据采集。
发明内容
本申请的主要目的在于提供一种对客户端应用的控件进行实时埋点的方法及装置,以解决现有技术存在的问题,其中:
根据本申请的一个方面的实施例,提供一种对客户端应用的控件进行实时埋点的方法,其特征在于,包括:基于来自客户端应用的截图判断请求,生成截图标志并将其向客户端应用发送,其中所述截图标志表示客户端应用的目标页面是否要被截图,所述目标页面为所述客户端应用的被打开的当前页面;接收来自所述客户端应用的与所述目标页面相关的截图数据集合,其中,该截图数据集合包含控件截图文件、页面截图文件以及页面结构信息,并且每一个控件截图文件由控件的控件位置信息来标识;基于来自所述客户端应用的与所述目标页面相关的截图数据集合,将所述目标页面在浏览器中渲染出来;以及基于渲染出来的页面中的控件的事件属性,实时地对控件进行埋点并记录埋点配置信息。
根据本申请的另一个方面的实施例,提供一种对客户端应用的控件进行实时埋点的装置,其特征在于,包括:标志生成与发送模块,用于基于来自客户端应用的截图判断请求,生成截图标志并将其向客户端应用发送,其中所述截图标志表示客户端应用的目标页面是否要被截图,所述目标页面为所述客户端应用的被打开的当前页面;接收模块,用于接收来自所述客户端应用的与所述目标页面相关的截图数据集合,其中,该截图数据集合包含控件截图文件、页面截图文件以及页面结构信息,并且每一个控件截图文件由控件的控件位置信息来标识;渲染模块,用于基于来自所述客户端应用的与所述目标页面相关的截图数据集合,将所述目标页面在浏览器中渲染出来;以及埋点模块,用于基于渲染出来的页面中的控件的事件属性,实时地对控件进行埋点并记录埋点配置信息。
与现有技术相比,根据本申请的技术方案,利用针对客户端应用的控件进行实时埋点的方法,可以对客户端应用进行自动埋点,并且最终生成配置文件,从而可以利用该埋点配置文件对使用客户端应用时的用户行为数据进行收集。客户端应用的自动化埋点方案可以是自动化实时埋点,对埋点的页面自动还原,分析师可以所见即所得的知道数据是在哪里采集的,数据的业务对象是什么。节省了分析师的人力成本,也节省了客户端开发人员的人力成本,并且可以实时监控客户端,随时埋点,即时生效。另外,可以在客户端应用不必更新的情况下对埋点配置文件进行更新,也即是说,配置文件的生成完全在服务器端进行配置,在配置完成后实时推送到客户端而无需对客户端版本进行整体更新。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的一种对客户端应用的控件进行实时埋点的方法的流程图;
图2是本申请优选实施例的方法对控件信息进行接收并对控件属性进行补充的步骤的具体流程图;
图3是本申请优选实施例的方法利用自动埋点生成的埋点配置文件对数据进行采集的步骤的具体流程图以及
图4是本申请实施例的一种对客户端应用的控件进行实时埋点以进行数据收集的装置的结构框图。
具体实施方式
本申请的主要思想在于,通过对目标页面进行截图以获取控件截图文件、页面截图文件并利用页面结构信息从而实现对控件的自动埋点以及系统化命名并最终形成埋点配置文件从而利用所形成的埋点配置文件实现客户端应用的用户数据收集。
为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。
在以下描述中,对“一个实施例”、“实施例”、“一个示例”、“示例”等等的引用表明如此描述的实施例或示例可以包括特定特征、结构、特性、性质、元素或限度,但并非每个实施例或示例都必然包括特定特征、结构、特性、性质、元素或限度。另外,重复使用短语“在一个实施例中”虽然有可能是指代相同实施例,但并非必然指代相同实施例。
根据本申请的实施例,提供了一种对客户端应用的控件进行实时埋点的方法。参考图1,图1是本申请实施例的对客户端应用的控件进行实时埋点的方法的流程图。
如图1所示,在步骤S101处,基于来自客户端应用的截图判断请求,生成截图标志并将其向客户端应用发送,其中截图标志表示客户端应用的目标页面是否要被截图,目标页面为客户端应用的被打开的当前页面。
具体而言,为了进行埋点,客户端应用被开启,从而呈现页面,该页面就是本申请中所称的目标页面,也即是客户端应用被打开的当前页面。这时,客户端应用可以向服务器发送截图判断请求。服务器接收该截图判断请求。然后,基于来自客户端应用的截图判断请求,生成截图标志并将该截图标志向客户端应用发送,其中该截图标志表示该目标页面是否要被截图。客户端应用接收到服务器发送的截图标志后,将截图标志存储在缓存中。更具体而言,服务器接收到该截图判断请求后,服务器判断该页面是否被截图过,如果被截图过,则生成一个截图标志,并且该截图标志的值例如可以是0,表示该页面被截图过;如果服务器判断该页面没有被截图过,则生成一个截图标志,并且该截图标志的值例如可以是1,表示该页面没有被截图过,需要被截图。更具体地,在本申请中所说的该页面需要被截图表示被打开的当前页面的整体页面要被截图,同时在当前页面上的所有控件也要被截图。
应当指出,所述截图判断请求可以在客户端应用的目标页面被打开时由客户端应用向服务器发送。
应当理解,目标页面可以是多个。例如,如果离开被打开的当前页面,进入另一个页面,则该另一个页面就变成了被打开的当前页面,也即是变成目标页面。
在步骤S102处,接收来自客户端应用的与目标页面相关的截图数据集合,该截图数据集合可以包含控件截图文件、页面截图文件以及页面结构信息,其中,每一个控件截图文件可以由控件的控件位置信息来标识。
具体而言,在离开被打开的当前页面时,客户端应用根据缓存中的截图标志,对该页面进行截图。也即是说,如果截图标志表示该目标页面未被截图过,则对该页面进行截图;如果截图标志表示该目标页面已被截图过,则不用再次截图。所谓“离开”是指当前被打开页面由于被关闭或者由当前被打开页面切换到另一页面而不再成为当前页面。如果该目标页面被截图,则需要进行截图的内容例如可以是该目标页面以及该目标页面中的所有控件。
例如,以android(安卓)系统为例,当客户端应用的页面被打开时,客户端应用会把页面中的控件依次渲染出来,保持在内存中,展现给用户视觉效果。当用户离开该页面时,触发截图事件,截图事件将完成控件截图和页面截图。android系统调用android原生的截图方法--getDrawingCache(),控件将被截图。例如:textView.getDrawingCache(),就是将textView这个控件进行截图,系统对控件截图进行保存。类似地,对该客户端应用的所有控件进行截图并保存。同样,系统还对页面进行截图并保存。
同时,对于被截图的目标页面,还把整个目标页面的页面结构信息记录下来。具体而言,仍然以android系统为例,在离开目标页面时触发了截图事件,同时通过调用android的控件布局方法-getLayoutParams()方法,获取控件的大小、位置等,同时客户端应用监听控件是否有点击(onclick)事件、触摸(onTouch)事件等用户操作事件,从而把图片名称信息和控件布局信息及控件操作属性等信息一起形成页面结构信息。
如上所述,是否需要截图是基于截图标志的值来确定的。然后,如果该目标页面被截图,则对于截图后的内容,对其进行命名。例如,控件截图文件可以利用控件位置信息(xpath)来进行命名。其中,控件位置信息就是控件的页面结构位置信息。因为控件位置信息是唯一的,因此用其来对控件截图文件进行命名是可行的。由于在进行截图时同时还调用控件布局方法获取了控件的大小、位置等信息,从而可以利用控件的页面结构位置信息来对截图控件进行命名。再如,页面截图文件可以利用页面对应的类名(pageID)来进行命名。其中,类名即是页面对应的程序类名,利用该程序类名作为页面的pageID从而确保了在系统层面而言,该pageID是唯一的。客户端应用的每个页面都对应着该客户端框架程序中的一个程序类,这个程序类用来实现页面中的业务逻辑。由于相同类名将导致客户端无法编译,因此在客户端系统编程中不允许出现类名重复的情况,由此,利用每个客户端页面对应的程序类名作为页面PageId,是永远也不会重复的。因为类名也是唯一的,所以用其来对控件截图文件进行命名是可行的。最后,可以使用任何方式来将控件截图文件、页面截图文件以及页面结构信息形成截图数据集合,并将截图数据集合向服务器发送。可选地,页面结构信息也可以采用任何方式来描述。例如,可以使用json结构对页面结构信息进行记录和描述,从而形成DOM结构树。DOM结构树例如可以包括但不限于以下信息:控件的名称、位置、大小、控件的父子关系、控件的事件属性、页面的长宽高等等属性信息。
接着,在步骤S103处,基于来自客户端应用的与目标页面相关的截图数据集合,将目标页面在浏览器中渲染出来。
也即是说,服务器接收到来自客户端应用的与目标页面相关的截图数据集合。然后,基于来自客户端应用的与目标页面相关的截图数据集合,将该目标页面在浏览器中渲染出来。
具体而言,可以从截图数据集合中获取目标页面的页面结构信息、控件截图文件以及页面截图文件,然后基于页面结构信息、控件截图文件以及页面截图文件,将目标页面在浏览器中渲染出来。
更具体而言,截图数据集合可以是简单的控件截图文件、页面截图文件以及页面结构信息的数据集合。截图数据集合也可以是上述数据的一个压缩包。如果是压缩包,则服务器需要将压缩包进行解压,从而获取到页面截图文件和控件截图文件的信息,并将其放到固定的文件目录中;同时还获取到页面结构信息的DOM结构树,从而例如基于页面结构信息的DOM结构树的DOM信息,例如通过javascript等技术,将页面结构信息在浏览器中翻译成html信息,最终在浏览器中渲染出该目标页面,并且页面中的图片就是上述固定的文件目录中的截图图片。
在步骤S104处,基于渲染出来的页面中的控件的事件属性,实时地对控件进行埋点并记录与每个控件相关的埋点配置信息。
具体而言,服务器基于渲染出来的页面,分析页面中的控件的事件属性,如果控件的事件属性为用户操作事件,则实时地对该控件进行埋点。具体而言,在对页面进行渲染的过程中,可以监听控件是否有点击(onclick)事件触摸(onTouch)事件、长按事件等等用户操作事件,从而分析并知晓页面中的控件的事件属性。也即是说,基于属性为用户操作事件,自动地、实时地为每个可能被用户操作的控件进行埋点,埋点名称(seedid)例如可以命名为类名+四位流水号从而自动生成。其中,用户操作事件可以为如下事件中的至少一个:用户点击事件、用户手势事件。
利用上面的步骤,完成了对某个特定目标页面的埋点操作以及记录。同理,可以对任何目标页面进行类似的埋点操作以及记录。可选地,对该客户端应用的所有目标页面执行埋点操作并记录相应的埋点配置信息。
然后,在步骤S105处,基于针对所有目标页面的埋点配置信息,生成埋点配置文件。
在所有目标页面都完成了埋点操作,记录了所有埋点配置信息,则基于这些埋点配置信息,生成埋点配置文件。另外,在生成埋点配置文件的同时可以生成该埋点配置文件的名称例如作为版本号以对埋点配置文件进行版本标记。例如:配置文件ANDROID_ 7.5.0.0915_0029.json,ANDROID_7.5.0.0915_0029就是版本号,含义为:android操作系统,客户端版本号为7.5.0.0915,序列号为0029的配置文件,序列号唯一。例如,当所有目标页面都完成埋点操作并记录了埋点配置信息之后,服务器可以收到一个埋点完成通知,从而服务器生成埋点配置文件。应该理解,该埋点配置文件是针对该客户端应用的一个总体埋点配置文件。该埋点配置文件包含与每个页面的控件相关的埋点配置信息,其中,埋点配置信息通过与之相关的控件的控件位置信息来标识。可选地,埋点配置信息还可以进一步包含页面对应的类名以及埋点流水号。
可选地,埋点配置文件可以存储在该服务器上,也可以存储于另一个专门的服务器上。埋点配置文件中的任何一个埋点配置信息可手动地被关闭。埋点配置文件可被提供给操作人员以用于进行进一步的处理。例如,操作人员可以根据需要关闭埋点配置文件中的某些条目的埋点配置信息;操作人员甚至还可以根据需要关闭整个埋点配置文件。例如,操作人员可以关闭与某个页面相关的埋点,则配置文件中将不会有与该页面相关的配置信息,也就不再采集相关页面的数据。
根据本申请的优选实施例,可以通过如图2所示的步骤来对本申请的方法进行优化。参考图2,图2是根据本申请实施例的对控件信息进行接收并对控件属性进行补充的步骤的具体流程图。
可选地,根据本申请的实施方式,在步骤101之后,该方法还可以包括步骤S201。在步骤S201处,基于来自客户端应用的控件记录请求,记录被点击的控件信息。
具体而言,可选地,当被打开页面上的控件被点击时,客户端应用可以向服务器发送被点击的控件信息。服务器接收该控件信息。
此外,在将目标页面在浏览器中渲染出来的步骤103之后,该方法还可以包括步骤202。在步骤202处,可以利用在步骤S201处所记录的控件的信息,对渲染出来的页面中的控件的事件属性进行补充。例如,截图数据集合中的数据可能有缺失,导致基于页面结构信息、控件截图文件以及页面截图文件而渲染出来的页面中的控件的事件属性可能发生遗漏,那么,利用服务器接收到的控件信息,对渲染出来的页面中的控件的事件属性进行补充。以使得控件的事件属性更准确。举例而言,在浏览器中渲染目标页面后,利用页面结构信息进行埋点,但是有一些自定义控件虽然具有用户操作属性,但是在渲染过程中无法被监听到,在没有上述补充控件信息步骤的情况会造成这些用户可操作控件被遗漏而没有被埋点。因此,利用上述步骤,接收到由用户触发并由客户端应用向服务器发送的被点击的控件信息,例如,该被点击的控件信息包含自定义控件的控件信息。将接收到的控件信息与页面信息结构树中的控件信息进行比对,从而将接收到的控件信息补充到页面信息结构树中的相应的控件中。从而,再在步骤104处,基于控件的事件属性,实时地对控件进行埋点。
应当指出,控件信息可以在页面上的控件被操作时由客户端向服务器发送。
根据本申请的优选实施例,可以通过如图3所示的步骤根据本申请的方法来对客户端应用的数据进行采集。参考图3,图3是根据本申请实施例的利用实时埋点生成的埋点配置文件自动地对数据进行采集的步骤的具体流程图。
在步骤301处,接收来自客户端应用的埋点配置文件的请求信息。
具体而言,用户可以打开客户端应用,在客户端应用被用户打开时客户端应用同时向服务器发送埋点配置文件请求信息。该请求信息可以包含该客户端操作系统类型、客户端应用版本号、与该客户端应用相关的本地的埋点配置文件的版本号等等。服务器接收该请求信息。应该理解,如果客户端没有本地埋点配置文件,则请求信息中的配置文件版本信息可以置为零或者为空。如果客户端具有本地埋点配置文件,则请求信息中的配置文件版本信息为该本地埋点配置文件的版本号。应该理解,客户端的本地埋点配置文件也是由服务器向客户端所发送的,该本地埋点配置文件也具有其版本号等信息。
然后,在步骤302处,实时地比较请求信息中的本地埋点配置文件版本号与服务器的埋点配置文件版本号。如果服务器的埋点配置文件版本比请求信息中的本地埋点配置文件版本信息更新,则在步骤303处,将服务器的埋点配置文件向客户端发送以进行埋点配置文件更新。也即是说,用服务器发送的埋点配置文件替换客户端应用的当前的本地埋点配置文件从而成为客户端应用的最新的本地埋点配置文件。然后,该方法进行到步骤305。
如果在步骤302处比较的结果为:请求信息中的本地埋点配置文件版本信息比服务器的埋点配置文件版本更新,则在步骤304处,通知客户端无需更新本地埋点配置文件,并且该方法进行到步骤305。
在步骤305处,接收客户端基于本地埋点配置文件所采集的数据信息。
也就是说,基于本地埋点配置文件(在步骤303之后为更新后的文件,在步骤304之后为原来的文件)自动地对客户端应用中的各种用户行为进行数据采集,然后将采集的数据向服务器发送,服务器对这些数据进行接收。
本申请还提供一种对客户端应用的控件进行实时埋点的装置,参考图4,图4为本申请优选实施例的一种对客户端应用的控件进行实时埋点以用于用户数据采集的装置的结构框图,如图4所示,该装置400可以包括:标志生成与发送模块410、接收模块420、渲染模块430以及埋点模块440。
根据本发明的实施例,标志生成与发送模块410可以用于基于来自客户端应用的截图判断请求,生成截图标志并将其向客户端发送,其中所述截图标志表示被打开页面是否要被截图。
接收模块420可以用于接收来自客户端应用的与被打开页面相关的截图数据集合,该截图数据集合可以包含控件截图文件、页面截图文件以及页面结构信息,其中,每一个控件截图文件可以由控件的控件位置信息来标识。
渲染模块430可以用于基于来自客户端应用的与目标页面相关的截图数据集合,将页面在浏览器中渲染出来。
根据本发明的一个实施例,渲染模块还可以包括:获取模块(未示出),用于从截图数据集合中获取目标页面的页面结构信息、控件截图文件以及页面截图文件;以及渲染子模块(未示出),用于基于页面结构信息、控件截图文件以及页面截图文件,将所述目标页面在浏览器中渲染出来。
埋点模块440可以用于基于渲染出来的页面中的控件的事件属性,实时地对控件进行埋点并记录与每个控件相关的埋点配置信息。
根据本发明实施例的装置400,还可以包括配置文件生成模块450,该模块450可以用于基于针对所有目标页面的埋点配置信息,生成埋点配置文件。
根据本发明实施例的装置400,还可以包括控件记录模块460,该模块460可以用于基于来自客户端应用的控件记录请求,记录被点击的控件信息。
根据本发明实施例的装置400,还可以包括事件属性补充模块470,该模块470可以用于利用所记录的控件的信息,对渲染出来的页面中的控件的事件属性进行补充。
根据本发明实施例的装置400,还可以包括第二接收模块481,该模块481可以用于接收来自客户端应用的埋点配置文件的请求信息。
根据本发明实施例的装置400,还可以包括比较模块482,该模块482可以用于比较请求信息中的埋点配置文件版本号与服务器的埋点配置文件版本号。
根据本发明实施例的装置400,还可以包括配置文件发送模块483,该模块483可以用于如果服务器的埋点配置文件版本比请求信息中的埋点配置文件版本信息更新,则将服务器的埋点配置文件向客户端发送以进行埋点配置文件更新。
根据本发明实施例的装置400,还可以包括通知模块484,该模块484可以用于通知客户端无需更新本地埋点配置文件。
根据本发明实施例的装置400,还可以包括第三接收模块485,该模块485可以用于接收客户端基于本地埋点配置文件所采集的数据信息。
本申请的装置400所包括的各个模块的具体实施与本申请的方法中的步骤的具体实施是相对应的,为了不模糊本申请,在此不再对各个模块的具体细节进行描述。
应当注意,尽管在上文详细描述中提及了设备的若干模块或子模块,但是这种划分仅仅并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (19)
1.一种对客户端应用的控件进行实时埋点的方法,其特征在于,包括:
基于来自客户端应用的截图判断请求,生成截图标志并将其向客户端应用发送,其中所述截图标志表示客户端应用的目标页面是否要被截图,所述目标页面为所述客户端应用的被打开的当前页面;
接收来自所述客户端应用的与所述目标页面相关的截图数据集合,其中,该截图数据集合包含控件截图文件、页面截图文件以及页面结构信息,并且每一个控件截图文件由控件的控件位置信息来标识;
基于来自所述客户端应用的与所述目标页面相关的截图数据集合,将所述目标页面在浏览器中渲染出来;以及
基于渲染出来的页面中的控件的事件属性,实时地对控件进行埋点并记录埋点配置信息。
2.根据权利要求1所述的方法,其特征在于,进一步包括:基于针对所有目标页面的埋点配置信息,生成埋点配置文件。
3.根据权利要求1所述的方法,其特征在于,进一步包括:
基于来自客户端应用的控件记录请求,记录被点击的控件信息;以及
利用所述控件信息,对渲染出来的页面中的控件的事件属性进行补充。
4.根据权利要求3所述的方法,其特征在于,所述截图判断请求在所述客户端的目标页面被打开时由客户端发送;并且所述控件信息在目标页面上的控件被操作时由客户端发送。
5.根据权利要求1所述的方法,其特征在于,基于来自所述客户端应用的与所述目标页面相关的截图数据集合,将目标页面在浏览器中渲染出来,包括:
从截图数据集合中获取目标页面的页面结构信息、控件截图文件以及页面截图文件;
基于页面结构信息、控件截图文件以及页面截图文件,将所述目标页面在浏览器中渲染出来。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述控件的事件属性为用户操作事件,所述用户操作事件为如下事件中的至少一个:用户点击事件、用户手势事件。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述埋点配置文件包含所述埋点配置信息,所述埋点配置信息的每一个通过与之相关的控件的控件位置信息来标识。
8.根据权利要求2-5任一项所述的方法,其特征在于,所述埋点配置文件中的任何一个埋点配置文件可手动地被关闭。
9.根据权利要求2-5任一项所述的方法,其特征在于,进一步包括:
接收来自客户端应用的埋点配置文件的请求信息;
比较请求信息中的埋点配置文件版本号与服务器的埋点配置文件版本号;
如果服务器的埋点配置文件版本比请求信息中的埋点配置文件版本信息更新,则将服务器的埋点配置文件向客户端应用发送以进行埋点配置文件更新;
接收基于更新后的埋点配置文件所采集的数据信息。
10.根据权利要求9所述的方法,其特征在于,进一步包括:
如果请求信息中的埋点配置文件版本信息比服务器的埋点配置文件版本更新,则通知客户端应用无需更新本地的埋点配置文件;
接收基于本地的埋点配置文件所采集的数据信息。
11.一种对客户端应用的控件进行实时埋点的装置,其特征在于,包括:
标志生成与发送模块,用于基于来自客户端应用的截图判断请求,生成截图标志并将其向客户端应用发送,其中所述截图标志表示客户端应用的目标页面是否要被截图,所述目标页面为所述客户端应用的被打开的当前页面;
接收模块,用于接收来自所述客户端应用的与所述目标页面相关的截图数据集合,其中,该截图数据集合包含控件截图文件、页面截图文件以及页面结构信息,并且每一个控件截图文件由控件的控件位置信息来标识;
渲染模块,用于基于来自所述客户端应用的与所述目标页面相关的截图数据集合,将所述目标页面在浏览器中渲染出来;以及
埋点模块,用于基于渲染出来的页面中的控件的事件属性,实时地对控件进行埋点并记录埋点配置信息。
12.根据权利要求11所述的装置,其特征在于,进一步包括配置文件生成模块,被配置成基于针对所有目标页面的埋点配置信息,生成埋点配置文件。
13.根据权利要求11所述的装置,其特征在于,进一步包括:
控件记录模块,用于基于来自客户端应用的控件记录请求,记录被点击的控件信息;以及
事件属性补充模块,用于利用所述控件信息,对渲染出来的页面中的控件的事件属性进行补充。
14.根据权利要求11所述的装置,其特征在于,所述渲染模块包括:
获取模块,用于从截图数据集合中获取目标页面的页面结构信息、控件截图文件以及页面截图文件;
渲染子模块,用于基于页面结构信息、控件截图文件以及页面截图文件,将所述目标页面在浏览器中渲染出来。
15.根据权利要求11-14任一项所述的装置,其特征在于,所述控件的事件属性为用户操作事件,所述用户操作事件为如下事件中的至少一个:用户点击事件、用户手势事件。
16.根据权利要求11-14任一项所述的装置,其特征在于,所述埋点配置文件包含所述埋点配置信息,所述埋点配置信息的每一个通过与之相关的控件的控件位置信息来标识。
17.根据权利要求12-14任一项所述的装置,其特征在于,所述埋点配置文件中的任何一个埋点配置文件可手动地被关闭。
18.根据权利要求12-14任一项所述的装置,其特征在于,进一步包括:
第二接收模块,用于接收来自客户端应用的埋点配置文件的请求信息;
比较模块,用于比较请求信息中的埋点配置文件版本号与服务器的埋点配置文件版本号;
配置文件发送模块,用于如果服务器的埋点配置文件版本比请求信息中的埋点配置文件版本信息更新,则将服务器的埋点配置文件向客户端应用发送以进行埋点配置文件更新;
第三接收模块,用于接收基于更新后的埋点配置文件所采集的数据信息。
19.根据权利要求18所述的装置,其特征在于,进一步包括:
通知模块,用于如果请求信息中的埋点配置文件版本信息比服务器的埋点配置文件版本更新,则通知客户端应用无需更新本地的埋点配置文件;
并且,所述第三接收模块还用于接收基于本地的埋点配置文件所采集的数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310485029.9A CN104572043B (zh) | 2013-10-16 | 2013-10-16 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310485029.9A CN104572043B (zh) | 2013-10-16 | 2013-10-16 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572043A CN104572043A (zh) | 2015-04-29 |
CN104572043B true CN104572043B (zh) | 2018-01-19 |
Family
ID=53088219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310485029.9A Active CN104572043B (zh) | 2013-10-16 | 2013-10-16 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572043B (zh) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145489B (zh) * | 2016-03-01 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 一种基于云平台的客户端应用的信息统计方法和装置 |
CN107436832B (zh) * | 2016-05-27 | 2020-11-27 | 阿里巴巴集团控股有限公司 | 一种动态埋点的方法、装置及电子设备 |
CN107436905A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 记录点击行为的方法及装置 |
CN106126538B (zh) * | 2016-06-14 | 2020-09-29 | 百度在线网络技术(北京)有限公司 | 页面的转化处理方法及装置 |
CN106209429A (zh) * | 2016-06-29 | 2016-12-07 | 北京小米移动软件有限公司 | 数据采集方法及装置 |
CN107566148B (zh) * | 2016-07-01 | 2021-08-03 | 北京京东尚科信息技术有限公司 | 终端应用操作数据的分析方法、系统、装置及终端 |
CN107770222B (zh) * | 2016-08-19 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 网络信息处理方法、设备和系统 |
CN106571949A (zh) * | 2016-09-23 | 2017-04-19 | 北京五八信息技术有限公司 | 埋点处理方法及装置 |
CN106452916B (zh) * | 2016-11-21 | 2019-11-01 | 北京小米移动软件有限公司 | 服务质量信息的获得方法及装置、客户端和服务器 |
CN106776247B (zh) * | 2016-11-23 | 2020-07-14 | 腾云天宇科技(北京)有限公司 | 一种监控应用中控件的方法、服务器及系统 |
CN108156006B (zh) * | 2016-12-05 | 2021-10-12 | 阿里巴巴集团控股有限公司 | 一种埋点数据上报方法、装置及电子设备 |
CN108153641A (zh) * | 2016-12-05 | 2018-06-12 | 北京国双科技有限公司 | 一种无埋点部署监测方法及相关装置 |
CN106598868B (zh) * | 2016-12-24 | 2018-03-02 | 上海壹账通金融科技有限公司 | 对客户端的应用程序动态埋点的方法及系统 |
CN108334429A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 用于排查前端页面问题的方法、装置及系统 |
CN106844217B (zh) * | 2017-01-26 | 2020-03-20 | 网易(杭州)网络有限公司 | 对应用的控件进行埋点的方法及装置、可读存储介质 |
CN108536700A (zh) * | 2017-03-02 | 2018-09-14 | 塞纳德(北京)信息技术有限公司 | 一种无埋点收集日志的方法 |
CN106933722B (zh) * | 2017-03-06 | 2019-12-31 | 腾云天宇科技(北京)有限公司 | 一种网页应用监控方法、服务器和系统 |
CN108574669B (zh) * | 2017-03-10 | 2019-08-06 | 掌阅科技股份有限公司 | 用户行为树构建方法及装置 |
CN107800757B (zh) * | 2017-03-28 | 2020-10-27 | 平安壹钱包电子商务有限公司 | 用户行为记录方法及装置 |
CN106933472A (zh) * | 2017-05-20 | 2017-07-07 | 南京西桥科技有限公司 | 一种基于手机app的用户行为数据采集系统及其控制方法 |
CN109213652A (zh) * | 2017-06-30 | 2019-01-15 | 北京嘀嘀无限科技发展有限公司 | 用户行为数据采集方法和装置 |
CN107609004B (zh) * | 2017-07-21 | 2020-08-18 | 深圳市小牛在线互联网信息咨询有限公司 | 应用程序埋点方法和装置、计算机设备和存储介质 |
CN110020332B (zh) * | 2017-07-25 | 2021-06-04 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN107864065B (zh) * | 2017-08-16 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 无埋点数据采集方法、系统及计算机可读存储介质 |
CN107562620B (zh) * | 2017-08-24 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种埋点自动设置方法和装置 |
CN107766112A (zh) * | 2017-10-13 | 2018-03-06 | 北京京东尚科信息技术有限公司 | 控件处理的方法及装置 |
CN107818162B (zh) * | 2017-11-01 | 2019-02-01 | 平安科技(深圳)有限公司 | 埋点处理方法、装置、计算机设备和存储介质 |
CN107861655B (zh) * | 2017-11-01 | 2020-07-07 | 平安科技(深圳)有限公司 | 控件匹配方法、装置、计算机设备和存储介质 |
CN107818163B (zh) * | 2017-11-01 | 2019-03-29 | 平安科技(深圳)有限公司 | 页面展示方法、装置、计算机设备和存储介质 |
CN107832218B (zh) * | 2017-11-10 | 2019-03-12 | 平安科技(深圳)有限公司 | 动态页面中的埋点处理方法、装置和计算机设备 |
CN107894945A (zh) * | 2017-11-17 | 2018-04-10 | 深圳市泉眼网络科技有限公司 | 埋点添加方法、移动终端及计算机可读存储介质 |
CN107995283B (zh) * | 2017-11-29 | 2019-06-14 | 上海恺英网络科技有限公司 | 一种数据埋点分析的方法、设备及系统 |
CN108038053B (zh) * | 2017-11-29 | 2019-07-26 | 上海恺英网络科技有限公司 | 一种动态配置埋点的方法及设备 |
CN108182060B (zh) * | 2018-01-31 | 2020-11-27 | 北京腾云天下科技有限公司 | 一种混合应用的埋点方法、移动终端及系统 |
CN108874641A (zh) * | 2018-06-01 | 2018-11-23 | 平安科技(深圳)有限公司 | 一种埋点数据的分析方法及装置 |
CN110825594B (zh) * | 2018-08-07 | 2023-10-24 | 阿里巴巴(中国)有限公司 | 数据的上报、下发方法、客户端及服务器 |
CN109101425B (zh) * | 2018-08-14 | 2021-12-07 | 创新先进技术有限公司 | 一种动态化的页面ab测试的指标埋点方法和装置 |
CN110837368B (zh) * | 2018-08-17 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法、装置及电子设备 |
CN110874302A (zh) * | 2018-08-31 | 2020-03-10 | 北京京东尚科信息技术有限公司 | 一种埋点配置信息的确定方法和装置 |
CN109491645A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于界面元素的埋点方法、装置、计算机设备及存储介质 |
CN109542529B (zh) * | 2018-10-26 | 2022-04-05 | 深圳壹账通智能科技有限公司 | 基于函数名称的埋点方法、装置、计算机设备及存储介质 |
CN109582418B (zh) * | 2018-11-21 | 2024-11-05 | 平安科技(深圳)有限公司 | 用户行为数据收集方法、装置、计算机装置、存储介质 |
CN109948123B (zh) * | 2018-11-27 | 2023-06-02 | 创新先进技术有限公司 | 一种图像合并方法及装置 |
CN111309221B (zh) * | 2018-12-12 | 2024-01-12 | 阿里巴巴集团控股有限公司 | 页面处理方法、装置及设备 |
CN110099101A (zh) * | 2019-04-01 | 2019-08-06 | 厦门美柚信息科技有限公司 | 一种埋点动态设置的方法、系统、设备及其存储介质 |
CN110113392A (zh) * | 2019-04-17 | 2019-08-09 | 上海连尚网络科技有限公司 | 一种监控app客户端埋点采集完整性的方法及设备 |
CN110096658B (zh) * | 2019-04-22 | 2021-01-26 | 无线生活(杭州)信息科技有限公司 | 一种数据埋点方法及装置 |
CN110187880B (zh) * | 2019-05-30 | 2022-12-16 | 北京腾云天下科技有限公司 | 一种同类元素识别方法、装置和计算设备 |
CN110196953B (zh) * | 2019-05-30 | 2021-03-19 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和系统 |
CN111767185B (zh) * | 2019-06-20 | 2024-09-20 | 北京京东尚科信息技术有限公司 | 一种数据埋点方法和装置 |
CN110442511B (zh) * | 2019-06-25 | 2022-11-18 | 苏宁云计算有限公司 | 可视化埋点测试方法及装置 |
CN110457035A (zh) * | 2019-07-23 | 2019-11-15 | 厦门美柚信息科技有限公司 | 一种场景化信息的设置方法、系统、设备及其存储介质 |
CN110399067A (zh) * | 2019-07-31 | 2019-11-01 | 江苏满运软件科技有限公司 | 可视化埋点方法、装置、电子设备、存储介质 |
CN110502415B (zh) * | 2019-08-27 | 2023-11-28 | 北京思维造物信息科技股份有限公司 | 一种埋点设置方法、装置及设备 |
CN110688275A (zh) * | 2019-08-30 | 2020-01-14 | 贝壳技术有限公司 | 埋点管理方法、埋点更新方法及埋点管理系统 |
CN110990619B (zh) * | 2019-10-12 | 2023-09-01 | 平安银行股份有限公司 | 埋点数据查询方法、装置、系统、设备和计算机存储介质 |
CN110795085A (zh) * | 2019-10-18 | 2020-02-14 | 北京网聘咨询有限公司 | 移动应用可视化编辑方法及工具 |
CN111090433B (zh) * | 2019-10-23 | 2023-10-20 | 贝壳技术有限公司 | 一种数据处理的方法、装置和存储介质 |
CN110781064B (zh) * | 2019-10-28 | 2023-05-26 | 深圳市思迪信息技术股份有限公司 | 客户端用户行为数据动态埋点采集的方法及装置 |
CN111190899B (zh) * | 2019-11-26 | 2023-08-15 | 泰康保险集团股份有限公司 | 一种埋点数据处理方法、装置、服务器及存储介质 |
CN113377644B (zh) * | 2020-02-25 | 2023-09-15 | 福建天泉教育科技有限公司 | 一种基于前端多系统多语言国际化翻译的测试方法 |
CN111399710B (zh) * | 2020-03-10 | 2022-06-10 | 努比亚技术有限公司 | 一种关联触控方法、设备及计算机可读存储介质 |
CN113378036A (zh) * | 2020-03-10 | 2021-09-10 | 阿里巴巴集团控股有限公司 | 页面操作分析、埋点方法、装置、设备及存储介质 |
CN111581067B (zh) * | 2020-04-21 | 2023-08-15 | 北京龙云科技有限公司 | 一种数据采集方法和装置 |
CN111858252B (zh) * | 2020-07-23 | 2023-08-18 | 中国工商银行股份有限公司 | 基于前端框架的动态埋点方法及装置 |
CN111930422B (zh) * | 2020-09-02 | 2023-07-25 | 度小满科技(北京)有限公司 | 一种信息采集方法、装置、服务器及存储介质 |
CN112394908A (zh) * | 2020-11-19 | 2021-02-23 | 平安普惠企业管理有限公司 | 埋点页面自动生成的方法、装置、计算机设备及存储介质 |
CN113010395B (zh) * | 2021-03-02 | 2024-06-25 | 中国工商银行股份有限公司 | 数据采集方法、装置、设备、介质和程序产品 |
CN113034211A (zh) * | 2021-05-25 | 2021-06-25 | 武汉卓尔数字传媒科技有限公司 | 一种预测用户行为的方法、装置及电子设备 |
CN113900885A (zh) * | 2021-09-03 | 2022-01-07 | 浙江惠瀜网络科技有限公司 | 用于埋点的数据处理方法和装置 |
CN114064181A (zh) * | 2021-11-16 | 2022-02-18 | 上海蛮犀科技有限公司 | 一种移动应用页面信息数据的提取方法 |
CN114356444B (zh) * | 2021-12-23 | 2024-02-02 | 中电云计算技术有限公司 | 基于浏览器DOM事件传递时的参数event指向特征选择性阻止事件传递的方法及用途 |
CN115499232B (zh) * | 2022-09-26 | 2024-07-19 | 重庆长安汽车股份有限公司 | 实名认证方法、装置、服务器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662493A (zh) * | 2008-08-25 | 2010-03-03 | 阿里巴巴集团控股有限公司 | 一种用户访问路径的数据采集方法、系统及服务器 |
CN102999506A (zh) * | 2011-09-13 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种获取用户独立访问数的方法与装置 |
CN103064975A (zh) * | 2013-01-11 | 2013-04-24 | 北京亿赞普网络技术有限公司 | 一种在客户端展示信息的方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164034A1 (en) * | 2007-12-19 | 2009-06-25 | Dopetracks, Llc | Web-based performance collaborations based on multimedia-content sharing |
US20120260158A1 (en) * | 2010-08-13 | 2012-10-11 | Ryan Steelberg | Enhanced World Wide Web-Based Communications |
-
2013
- 2013-10-16 CN CN201310485029.9A patent/CN104572043B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662493A (zh) * | 2008-08-25 | 2010-03-03 | 阿里巴巴集团控股有限公司 | 一种用户访问路径的数据采集方法、系统及服务器 |
CN102999506A (zh) * | 2011-09-13 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种获取用户独立访问数的方法与装置 |
CN103064975A (zh) * | 2013-01-11 | 2013-04-24 | 北京亿赞普网络技术有限公司 | 一种在客户端展示信息的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104572043A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572043B (zh) | 一种对客户端应用的控件进行实时埋点的方法及装置 | |
US9792354B2 (en) | Context aware user interface parts | |
CN107423048B (zh) | 数据收集的方法、装置、介质和计算设备 | |
US8904355B2 (en) | Test script generation system | |
CN109446570B (zh) | 业务流程展示方法、装置、计算机设备以及存储介质 | |
CN102187314B (zh) | 生成适用于数据集的资源脚本的方法和系统 | |
US20190303269A1 (en) | Methods and systems for testing visual aspects of a web page | |
CN104391786A (zh) | 网页自动化测试系统及其方法 | |
CN106502699A (zh) | 一种应用页面处理方法、装置及系统 | |
CN106250104A (zh) | 一种针对服务器的远程操作系统、方法及装置 | |
CN105095168A (zh) | 一种合同文档的自动生成方法和装置 | |
CN114595343B (zh) | 图谱展示方法、装置、存储介质及电子设备 | |
CA2845174A1 (en) | Interactive survey system | |
CN105893073A (zh) | 应用程序的更新方法、业务服务器、推送服务器和系统 | |
CN104423961A (zh) | 一种生成测试脚本的方法及系统 | |
CN114003451B (zh) | 一种接口测试方法、装置、系统及介质 | |
CN110134596A (zh) | 测试文档的生成方法及终端设备 | |
CN112650966A (zh) | 在线设计的动态列表页面生成方法、生成器及介质 | |
CN110018866B (zh) | 用户界面主题更新方法、装置、系统、车机及车辆 | |
CN111949607B (zh) | 一种udt文件的监控方法、系统和装置 | |
CN104252413A (zh) | 一种自动化脚本生成方法、装置及系统 | |
CN108073511B (zh) | 测试代码生成方法和装置 | |
CN111666199B (zh) | 在智能终端上执行的调试方法以及软件调试器 | |
CN104166541B (zh) | 用于更新被测控件库的方法和装置 | |
CN110908907A (zh) | Web页面测试方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191205 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands Patentee after: Innovative advanced technology Co., Ltd Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: Alibaba Group Holding Co., Ltd. |