CN107818162B - 埋点处理方法、装置、计算机设备和存储介质 - Google Patents
埋点处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN107818162B CN107818162B CN201711058954.8A CN201711058954A CN107818162B CN 107818162 B CN107818162 B CN 107818162B CN 201711058954 A CN201711058954 A CN 201711058954A CN 107818162 B CN107818162 B CN 107818162B
- Authority
- CN
- China
- Prior art keywords
- control
- attribute
- view
- server
- tangible
- 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
Classifications
-
- 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/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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/957—Browsing optimisation, e.g. caching or content distillation
Abstract
本申请涉及一种埋点处理方法、装置、计算机设备和存储介质,该方法包括:接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性;根据基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。本方法能够提高可触摸控件的识别精度。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及埋点处理方法、装置、计算机设备和存储介质。
背景技术
在APP(Application,应用程序)中设置埋点是很多APP开发商收集用户行为数据的重要手段。目前,在APP中设置埋点有多种方案,如代码埋点、可视化埋点和无埋点等。其中,可视化埋点的方案是通过将安装有APP的终端连接至Web服务器,Web服务器通过Web页面同步显示终端屏幕上的APP页面,并对APP页面中可触摸的控件进行识别,APP开发商在Web页面圈选可触摸的控件,实现可视化埋点。传统的可视化埋点工具,例如,TalkingData、友盟等,根据控件名称对APP页面中可触摸的控件进行识别,但这种方式仅适用于NativeAPP(原生APP),对于Web APP(一种基于网络访问的APP)或混合APP中的动态页面,如H5(HTML5,超文本标记语言)页面中可触摸的控件无法准确识别。
发明内容
基于此,有必要针对上述技术问题,提供一种能够为多种类型应用程序提供通用的可触摸的控件识别方式的埋点处理方法、装置、计算机设备和存储介质。
一种埋点处理方法,包括:
接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;
根据所述基本属性识别控件是否为可触摸控件;
当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值;
当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
在其中一个实施例中,所述基本属性包括透明属性、隐藏属性和交互属性,所述根据所述基本属性识别控件是否为可触摸控件的步骤,包括:
识别控件名称是否为预设集合中的集合元素;
当控件类型属于预设集合中的元素时,识别控件的透明属性、隐藏属性和交互属性是否均具有各自的预设属性值;
当控件的透明属性、隐藏属性和交互属性均具有各自的预设属性值时,将控件标记为可触摸控件。
一种埋点处理方法,包括:
获取应用程序当前页面中控件的属性信息;所述属性信息包括基本属性和访问属性;
将所述属性信息发送至服务器;使服务器根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件;
接收所述服务器返回的可触摸控件对应的埋点信息。
在其中一个实施例中,所述获取应用程序当前页面中控件的属性信息的步骤,包括:向所述服务器发送可视化埋点请求;
接收所述服务器根据所述可视化埋点请求返回的配置表,所述配置表记录了多个配置项;
根据所述配置项对所述应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;
将所述属性信息对应所述配置项添加至所述配置表。
在其中一个实施例中,所述向所述服务器发送可视化埋点请求的步骤,包括:获取所述应用程序的目标配置文件;
在所述目标配置文件中添加允许用户登录的白名单;
对所述白名单及对应的参数数据关联对应的识别码;
当接收到所述识别码对应的扫描操作时,向服务器发送可视化埋点请求。
在其中一个实施例中,所述向所述服务器发送可视化埋点请求的步骤,包括:获取在应用程序当前页面的输入手势;
当所述输入手势为预设的特定手势,且所述输入手势的持续时间达到阈值时,向所述服务器发送可视化埋点请求。
在其中一个实施例中,所述埋点信息包括多个被埋点控件的视图路径和索引路径;在所述接收所述服务器返回的可触摸控件对应的埋点信息的步骤之后,还包括:获取可触摸控件的触摸事件,对所述触摸事件进行拦截;
获取被触摸的可触摸控件的视图路径和索引路径;
将所述被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将所述被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;当所述被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将所述触摸事件上报至对应的服务器。
一种埋点处理装置,所述装置包括:
获取模块,用于接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;
识别模块,用于根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值;
埋点模块,用于当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
一种计算机设备,包括存储装置及其处理器,所述存储装置中储存有计算机程序,所述处理器执行所述计算机程序时实现本发明任意一个实施例中提供的埋点处理方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,该指令被处理器执行时实现本发明任意一个实施例中提供的埋点处理方法的步骤。
上述埋点处理方法、装置、计算机设备和存储介质,根据应用程序当前页面中控件的基本属性,可以对控件是否为可触摸控件进行初步识别,根据控件的访问属性是否具有预设的属性值及控件名称是否为目标集合中的集合元素,可以对控件是否为可触摸控件作进一步识别;若控件为可触摸控件,将被圈选的可触摸控件对应的埋点信息发送至终端。当应用程序为原生APP时,根据基本属性即可对应用程序当前页面中的可触摸控件进行识别;当应用程序为WebAPP或者混合APP时,可以进一步根据访问属性对可触摸控件进行识别,使得该可触摸控件识别方法对于多种类型的应用程序均可以通用。
附图说明
图1为一个实施例中埋点处理方法的应用场景图;
图2为一个实施例中埋点处理方法的流程图;
图3为一个实施例中应用程序当前页面对应的多叉树的示意图;
图4为一个实施例中在页面截图中添加埋点边框的示意图;
图5为另一个实施例中埋点处理方法的流程图;
图6为一个实施例中埋点处理装置的框图;
图7为一个实施例中计算机设备的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
本申请提供一种埋点处理方法,可以应用于如图1所示的应用环境中。其中,第一终端102、第二终端104与第三终端106分别通过网路与服务器108连接。第一终端102、第二终端104和第三终端106分别可以是智能手机、平板电脑、台式计算机、车载电脑中的至少一种,但并不局限于此。服务器108可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。第一终端102与第三终端106上分别运行了需要设置埋点的应用程序。第一终端102对应应用程序开发商,第三终端106对应应用程序用户。第一终端102与第三终端106可以是同一终端,也可以是不同终端。第一终端102与第三终端106上运行的应用程序可以是原生应用程序(Native APP),也可以是网络应用程序(Web APP),还可以是混合应用程序。第一终端102和第三终端106在应用程序中分别预安装了插件SDK(SoftwareDevelopment Kit,软件开发工具包)。SDK是基于开源的UI(User Interface,用户界面)跨平台框架预先开发生成的脚本。UI跨平台框架可以是React Native框架或Weex框架(一种开源的UI跨平台框架)等。SDK包括数据采集脚本、触摸事件拦截脚本、控件匹配脚本和触摸事件上报脚本等,用于数据采集、触摸事件拦截、控件匹配和触摸事件上报等。
当需要对应用程序设置埋点时,第一终端102利用SDK获取应用程序当前页面的视图数据,将视图数据发送至服务器108。视图数据包括当前页面的页面截图及多个视图的属性信息,属性信息包括控件名称、基本属性和访问属性。服务器108根据基本属性识别页面截图中多个控件是否为可触摸控件。若不是,服务器108识别控件的控件名称是否为目标集合中的集合元素,以及该控件对应的访问属性是否具有预设的属性值。当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,服务器将该控件标记为可触摸控件,对可触摸控件添加对应的埋点边框,将设有埋点边框的页面截图发送至第二终端104。第二终端通过Web页面对页面截图进行展示。应用程序开发商可以通过第二终端104对页面截图中多个设有埋点边框的控件进行埋点操作。第二终端104将被埋点控件对应的埋点信息返回至服务器108。服务器108将被埋点控件的埋点信息发送至第三终端106,以对第三终端106上的应用程序部署埋点。结合基本属性和访问属性,可以对多种类型的应用程序页面对应的页面截图中的可触摸控件进行识别。
在一个实施例中,如图2所示,提供了一种埋点处理方法,以该方法应用于服务器为例进行说明,具体包括以下步骤:
步骤202,接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性。
当需要对应用程序设置埋点时,第一终端利用SDK对应用程序当前页面进行解析,采集应用程序当前页面多个控件的属性信息。当应用程序为原生APP时,属性信息包括控件名称和基本属性。控件名称可以直接反映控件类型,如UIwindow(一种控件名称)属于窗口类型控件,UIButton(一种控件名称)属于按钮类型控件等。基本属性包括透明属性、隐藏属性和交互属性等。交互属性包括userInteractionEnabled(一种属性名称)属性。容易理解,基本属性还可以包括其他信息,如位置坐标和层级信息等,对此不作限定。第一终端还利用SDK获取应用程序当前页面的页面截图,将页面截图以及多个控件的属性信息发送至服务器。
步骤204,根据基本属性识别控件是否为可触摸控件。
在一个实施例中,根据基本属性识别控件是否为可触摸控件的步骤,包括:识别控件名称是否为预设集合中的集合元素;当控件类型属于预设集合中的元素时,识别控件的透明属性、隐藏属性和交互属性是否均具有各自的预设属性值;当控件的透明属性、隐藏属性和交互属性均具有各自的预设属性值时,将控件标记为可触摸控件。
服务器存储了预设集合。预设集合将可以进行触摸操作的多个控件的控件名称作为集合元素进行记录。触摸操作包括点击、长按、短按或滑动等。其中,可以进行触摸操作的多个控件的控件名称包括UIControl,UITableViewCell、UICollectionViewCell,UIView(一种控件名称)及分别对应的子类控件的控件名称。例如,UIView对应的子类控件包括UIButton,UILabel等。
服务器识别控件的控件名称是否属于预设集合中的集合元素。当控件名称不属于预设集合中的集合元素时,则表示该控件不可以进行触摸操作。当控件名称属于预设集合中的集合元素时,服务器获取该控件的透明属性、隐藏属性和交互属性各自的属性值,识别三个属性值是否分别达到各自的预设属性值。当透明属性的属性值为对应的预设属性值时,表示该控件是不透明的。当隐藏属性的属性值为对应的预设属性值时,表示该控件是可见的。当交互属性的属性值为对应的预设属性值时,表示该控件可以与用户交互,即该控件可以响应用户的触摸操作。当控件的透明属性、隐藏属性和交互属性均具有各自对应的预设属性值时,服务器将该控件标记为可触摸控件。
步骤206,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值。
步骤208,当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。
针对原生APP,服务器根据控件的基本属性即可识别该控件是否可以进行触摸操作。Web APP或者混合APP中存在跨平台页面,如H5页面。由于跨平台页面是由JS(JavaScript,直译式脚本语言)引擎翻译而成,使得跨平台页面中控件的控件名称并不属于预设集合中的集合元素。即使跨平台页面中的控件实际属于可触摸控件,服务器也可能因为其控件名称不属于预设集合中的集合元素,而将可触摸控件判定为无法进行触摸操作的控件,进而无法对该控件设置埋点。
当根据基本属性将控件识别为不可以进行触摸操作的控件时,尚不能确定该控件不能进行触摸操作,服务器识别控件的控件名称是否属于目标集合中的集合元素。目标集合可以是应用程序开发商预先在服务器配置的。目标集合也将可以进行触摸操作的多个控件的控件名称作为集合元素进行记录。目标集合中的控件名称包括RCTView(一种控件名称)及其子类控件的控件名称。
当控件名称不属于目标集合中的集合元素时,则表示该控件不可以进行触摸操作。当应用程序为Web APP或者混合APP时,第一终端利用SDK获取的属性信息还包括访问属性。访问属性包括isAccessibilityElement(一种属性名称)属性。当控件名称属于目标集合中的集合元素时,服务器获取访问属性的属性值,判断该属性值是否为预设的属性值。当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,服务器将控件标记为可触摸控件。
服务器对可触摸控件添加对应的埋点边框,将添加了埋点边框的页面截图发送至第二终端。第二终端通过Web页面展示页面截图。当第二终端接收到应用程序开发商对埋点边框的埋点操作时,获取埋点边框对应的控件的埋点信息,将埋点信息发送至服务器。服务器将控件的埋点信息发送至第三终端,使第三终端在获取到控件对应的触摸事件时,根据埋点信息对触摸事件进行上报。
本实施例中,根据应用程序当前页面中控件的基本属性,可以对控件是否为可触摸控件及时初步识别,根据应用程序当前页面中控件的访问属性是否具有预设的属性值及控件名称是否为目标集合中的集合元素,可以对控件是否为可触摸控件作进一步识别;若控件为可触摸控件,将被圈选的可触摸控件对应的埋点信息发送至终端。当应用程序为原生APP时,根据基本属性即可对应用程序当前页面中的可触摸控件进行识别;当应用程序为Web APP或者混合APP时,可以根据访问属性对对应用程序当前页面中的可触摸控件进行识别,使得该可触摸控件识别方法对于多种类型的应用程序均可以通用。
在一个实施例中,视图数据还包括多个视图的视图标识、视图名称和层级信息;视图包括控件;在获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端的步骤之前,还包括:按照预设规则将多个视图标识作为数组元素添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点;将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,直至最低级别数组,得到应用程序页面的多叉树;根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示,并获取对埋点边框对应控件的埋点操作;接收预设终端返回的被埋点的控件的埋点信息,根据多叉树生成被埋点的控件的层级路径,将被埋点的控件的层级路径发送至指定终端。
当需要对应用程序设置埋点时,第一终端利用SDK获取应用程序当前页面的视图数据,将应用程序当前页面的视图数据封装为预设格式,并对视图数据进行压缩,将压缩后的视图数据加密传输至服务器。预设格式可以是具有数据层级结构的数据格式,如HDF(层次型数据格式)。预设格式也可以是不具有层级结构的数据格式,如采用扁平化结构存储的JSON格式(一种数据交换格式)。
视图数据包括应用程序当前页面的页面截图和当前页面内多个视图的属性信息。页面截图为静态的屏幕截图。视图包括控件和视图控制器。在应用程序当前页面,视图控制器用于创建和管理控件,对用户是不可见的。用户可以对可见的控件进行触摸操作。触摸操作包括点击、长按、短按或滑动等。属性信息包括视图名称、视图标识和层级信息。容易理解,视图名称可以是控件名称或控制器名称,视图标识可以是控件标识或控制器标识。视图名称可以直接反映视图类型,如UIwindow属于窗口类型控件,RootViewController属于根视图控制器等。视图标识可以唯一识别一个视图,可以是视图编号,如IDn(n=1,2…)等。每个视图具有对应的层级信息,层级信息包括该视图与其他视图之间的继承关系。例如,控件UIButton继承于控件UIView,则控件UIButton为控件UIView的下一层级视图。
服务器根据视图的属性信息构建应用程序当前页面对应的多叉树,根据多叉树生成可触摸控件的层级路径,根据层级路径在页面截图对可触摸控件添加对应的埋点边框。具体的,服务器建立最高级别数组,提取与预设根视图具有相同视图名称的视图的视图标识,将提取到的视图标识添加至最高级别数组。例如,最高级别数组可以是A1[ID 6]。服务器将提取到的视图标记为父视图,根据该父视图的层级信息,对视图数据进行遍历,检测是否存在该父视图对应的子视图。当视图数据中存在对应的子视图时,服务器建立次高级别数组,在视图数据中提取该父视图对应的子视图的视图标识,将提取到的视图标识添加至次高级别数组。例如,次高级别数组可以是A2[ID 2,ID 7,ID 8]。服务器将提取到的子视图作为父视图,在视图数据中查询是否存在对应的子视图。当视图数据中存在对应的子视图时,服务器按照上述方式建立再下一级别数组。如此循环,直至视图数据中不存在对应的子视图时,得到最低级别数组。例如,下一级别数组可以是A3[ID 1,ID 4,ID5],最低级别数组可以是A4[ID3,ID 9,ID10,ID 11,ID 12]。
服务器每生成一个数组,将对应的数组元素作为节点添加至多叉树中。具体的,在生成最高级别数组后,服务器查询最高级别数组的数组元素对应的视图名称,将最高级别数组的数组元素对应的视图名称标记为多叉树的根节点。例如,如图3所示,多叉树的根节点为最高级别数组A1的数组元素ID 6对应的视图名称UIWindow(窗口)。
在得到多叉树的根节点后,服务器按照上述方式生成次高级别数组,查询次高级别数组的数组元素对应的视图名称,将次高级别数组的数组元素对应的视图名称标记为多叉树中根节点的子节点,利用预设连接线将子节点连接至根节点,形成多叉树的多个树枝。可以理解,根节点也是上述子节点的父节点。例如,如图3所示,预设连接线可以是带有箭头的线段,根节点的子节点为次高级别数组A2的三个数组元素ID2、ID7和ID8分别对应的视图名称UIView(视图)、ViewController(视图控制器)和UIView,对应形成多叉树的三个树枝。
在得到多叉树根节点的子节点后,服务器按照上述方式生成下一级别数组,将上述子节点作为该下一级别数组中数组元素的父节点,查询下一级别数组的数组元素对应的视图名称,利用预设连接线将下一级别数组中数组元素对应的视图名称连接至对应的父节点,以对多叉树的树枝进行延长。换句话说,服务器根据上述每个子节点对应视图的层级信息,查询每个子节点对应视图的下一层级视图,利用预设连接线将下一级别数组中相应数组元素对应的视图名称连接至对应的子节点。例如,如图3所示,下一级别数组A3包括三个数组元素ID1、ID4和ID5,分别对应的视图名称为UIView、ChildController(子控制器)和ChildController。假设次高级别数组A2的数组元素ID2对应视图不存在下一层级视图,数组元素ID7对应视图的下一层级视图包括数组元素ID1对应的视图,数组元素ID8对应视图的下一层级视图包括数组元素ID4对应的视图和数组元素ID5对应的视图,则将数组元素ID1对应视图的视图名称UIView连接至数组元素ID7对应视图的视图名称ViewController,将数组元素ID4对应视图的视图名称ChildController和数组元素ID5对应视图的视图名称ChildController分别连接至数组元素ID8对应视图的视图名称UIView。
服务器按照上述方式依次将每个数组中数组元素对应视图的视图名称作为节点添加至多叉树中,形成应用程序当前页面最终对应的多叉树。
第一终端上传至服务器的视图数据经过格式转换后可能不具有层级结构,且视图数据仅包含单个视图的层级信息,使得多个视图之间的层级关系隐蔽且分散,难以从整体上反应应用程序当前页面多个视图间的层级结构。本实施例中,服务器可以根据不具有层级结构的视图数据,对应用程序当前页面中多个视图的属性信息进行整合,提炼出可以从整体上反应当前页面多个视图间层级结构的多叉树。
根据多叉树生成多个可触摸控件分别对应的层级路径,根据层级路径对每个可触摸控件进行定位。如图4所示,服务器根据定位对可触摸控件添加对应的埋点边框。埋点边框可以响应应用程序开发商的点击操作。埋点边框的形状与大小可以是与对应视图的图标的形状与大小一致。服务器将设有埋点边框的页面截图发送至预设终端,即第二终端。第二终端对设有埋点边框的页面截图进行展示。应用程序开发商可以通过在第二终端对页面截图上点击埋点边框,并输入对应的触摸事件标识,实现埋点设置。服务器根据多叉树生成被埋点控件对应的层级路径,将被埋点控件的层级路径发送至第三终端,使第三终端在拦截到被触摸控件对应的触摸事件时,根据层级路径对被触摸控件和被埋点控件进行匹配。
本实施例中,根据应用程序当前页面多个视图的层级信息,可以将不同视图的视图标识作为数组元素添加至多个数组;根据不同级别数组包含的视图标识,可以查询对应视图的视图名称;通过将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为该父节点的子节点,将该子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,可以构建应用程序当前页面对应的多叉树;根据视图的层级信息构建的多叉树,可以从整体上反应当前页面多个视图的层级结构,由此根据多叉树生成的视图的层级路径,可以准确在页面截图添加埋点边框,也可以对每个视图进行准确定位。
在一个实施例中,根据多叉树生成多个视图分别对应的层级路径的步骤,包括:根据需要展示的多个视图的视图标识,在多叉树中查询对应的节点,将节点标记为目标节点;利用第一预设标识将根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径;对多叉树中不同层级节点对应的视图分别进行单独编号,对同一层级节点对应的不同类型视图分别进行单独编号,将编号作为对应视图的视图索引;利用第二预设标识将根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。
根据节点对应数组元素所属数组的级别,不同节点在多叉树中具有不同层级。为了方便描述,规定最高级别数组中数组元素对应第一层级节点,次高级别数组中数组元素对应第二层级节点,下一级别数组中数组元素对应第三层级节点,再下一级别数组中数组元素对应第四层级节点,如此递推。例如,如图3所示,最高级别数组A1的数组元素ID 6对应的根节点UIwindow为第一层级节点,次高级别数组A2的数组元素ID2、ID7和ID8分别对应的节点UIView、ViewController和RootController为第二层级节点。
服务器在多叉树构建过程中,对多叉树每个节点进行编号,以使每个节点对应的视图具有视图索引。具体的,服务器对多叉树中不同层级节点对应的视图分别进行单独编号,对同一层级节点对应的不同类型视图分别进行单独编号,对同一层级节点对应的相同类型视图进行连续编号,将编号作为对应视图的视图索引。服务器可以将视图索引作为对应视图的视图名称的下标进行记录。例如,如图3所示,第一层级节点UIwindow与第二层级节点UIwiew对应的视图索引分别可以是初始编号。初始编号可以是0。多个第四层级节点中不同类型视图UIButton(按钮)和UILabel(标签)单独编号,三个相同的按钮类型视图对应的视图索引可以是UIButton0,UIButton1和UIButton2,两个相同的标签类型视图对应的视图索引可以是UILabel0和UILabel1。
当应用程序当前页面新增或删除视图时,服务器仅对与新增或删除的视图相同类型的视图重新进行单独编号。例如,当将按钮控件UIButton1删除时,仅UIButton2变更为UIButton1,而对三个标签控件没有影响。对同一层级的不同类型的视图分别进行单独编号,可以尽量减少新增或删除视图对控件索引的影响,具有一定的索引路径抗干扰作用。
服务器根据可触摸视图的视图标识,在多叉树中查询对应的节点,将该节点标记为目标节点。服务器利用第一预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径。服务器利用第二预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。
组成视图路径的各个视图名称分别对应不同层级的视图,故视图路径可以对不同层级的视图进行区分。例如,假设上述举例中的控件UIButton1对应的视图路径为/UIwindow/ViewController/UIView/UIButton,则表示UIwindow为最高层级视图,ViewController为UIwindow的下一层级视图,UIView为ViewController的下一层级视图,UIButton为UIView的下一层级视图。
多个视图可以继承于同一视图,即多个视图分别对应的上一层级视图可以是同一视图,如控件UIButton0,控件UIButton1和控件UIButton2可以继承于同一控件UIView。索引路径可以反映对一个视图在对应的上一层级视图中的显示层级关系,即可以对同一层级的不同视图进行区分。例如,假设上述举例中的控件UIButton1对应的索引路径为0_1_2_1,则表示UIwindow为最高层级视图,视图控制器ViewController为上一层级视图UIwindow的第2个子视图,控件UIView为上一层级视图ViewController的第3个子视图,控件UIButton为上一层级视图UIView的第2个子视图。
视图路径可以对不同层级的视图进行区分,索引路径可以对同一层级的不同视图进行区分,从而视图路径和索引路径的结合可以共同完成控件唯一性定位。可以理解,层级路径也可以将视图路径与索引路径结合展示。例如,将视图索引作为对应视图的视图名称的下标,利用第一预设标识或第二预设标识按照上述方式将多个带有下标的视图名称进行逐级拼接,得到如下层级路径:/UIwindow0/ViewController1/UIView2/UIButton1。
本实施例中,视图路径对不同层级的控件进行区分,索引路径对同一层级多个不同控件进行区分,结合视图路径和索引路径可以对页面截图上的视图进行准确定位,从而可以在页面截图上准确添加埋点边框。
在一个实施例中,如图5所示,提供了一种埋点处理方法,以该方法应用于第一终端为例进行说明,具体包括以下步骤:
步骤502,获取应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性。
步骤504,将属性信息发送至服务器;使服务器根据基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件。
步骤506,接收服务器返回的可触摸控件对应的埋点信息。
在一个实施例中,获取应用程序当前页面中控件的属性信息的步骤,包括:向服务器发送可视化埋点请求;接收服务器根据可视化埋点请求返回的配置表,配置表记录了多个配置项;根据配置项对应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;将属性信息对应配置项添加至配置表。
当需要对应用程序设置埋点时,第一终端在应用程序需要设置埋点的当前页面向服务器发送可视化埋点请求。服务器根据可视化埋点请求执行预设的埋点准备任务,作好埋点准备后,向第一终端返回截屏请求。截屏请求中携带了空的配置表,配置表记录了多个配置项。配置项包括视图名称及对应的属性名称等,如基本属性和访问属性等。配置表可以是应用程序开发商预先配置在服务器中的。根据截屏请求及携带的配置表,第一终端利用SDK对应用程序当前页面进行解析,获取当前页面中多个视图对应的属性信息,将属性信息对应配置项添加至配置表中,以对配置表进行填写,将填写后的配置表发送至服务器。
服务器在配置表中读取视图的属性信息,根据属性信息生成多个被埋点控件的视图路径和索引路径,将多个被埋点控件的视图路径和索引路径发送至第三终端。
本实施例中,应用程序开发商可以根据需求及时在配置表中添加遗漏的配置项,也可以删除不必要的配置项,如数据量较大的控件背景图片,避免第一终端上报一些冗余的数据,可以对上报的视图的属性信息进行一定程度上的优化,也可以减少第一终端获取视图的属性信息以及填写配置表的时间,进而可以提高服务器对可触摸控件的识别效率。
在一个实施例中,向服务器发送可视化埋点请求的步骤,包括:获取应用程序的目标配置文件;在目标配置文件中添加允许用户登录的白名单;对白名单及对应的参数数据关联对应的识别码;当接收到识别码对应的扫描操作时,向服务器发送可视化埋点请求。
第一终端在应用程序的目标配置文件中预先添加了特定的白名单。目标配置文件包括info.plist文件,白名单包括UrlScheme(一种可以让应用程序相互之间发生跳转的协议)。通过白名单,使应用程序开放商可以通过运行在第一终端上的第三方应用程序向服务器发起可视化埋点请求。通过第三方的应用程序可以获取一个识别码,该识别码是第一终端利用白名单及对应的参数数据生成的。识别码可以是二维码或条形码等。当接收到识别码对应的扫描操作时,第一终端利用识别码携带的白名单及对应的参数数据,从第三方的应用程序跳转至需要设置埋点的应用程序,触发该应用程序中的SDK,使SDK采用WebSocket(一种网络协议)与服务器建立长连接,向服务器发送可视化埋点请求。
本实施例中,通过扫描识别码即可触发可视化埋点,操作简便,且符合当下用户习惯。
在一个实施例中,向服务器发送可视化埋点请求的步骤,包括:获取在应用程序当前页面的输入手势;当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,向服务器发送可视化埋点请求。
第一终端预先将特定手势配置为应用程序中SDK的触发条件。当用户在第一终端应用程序当前页面进行手势输入时,第一终端获取输入手势及对应的持续时间,将输入手势与预设的特定手势进行匹配,将输入手势的持续时间与阈值进行比较。预设的特定手势及阈值均可以根据喜好自由设置,如特定手势可以是四个手指同时触摸应用程序当前页面,阈值可以是5秒。当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,SDK被触发,使SDK采用WebSocket与服务器建立长连接,向服务器发送可视化埋点请求。
在其中一个实施例中,当第一终端与服务器成功建立长连接时,第一终端在应用程序当前页面的边缘位置显示已连接提示信息;当第一终端与服务器断开长连接时,已连接提示信息消失,方便应用程序开发商及时了解第一终端与服务器的连接状况。边缘位置可以是应用程序当前页面的顶部、底部或侧部等,已连接提示信息可以是具有预设像素高度的进度条等。
本实施例中,通过输入特定手势即可触发可视化埋点,操作简单;特定手势不同于用户操作第一终端时常用手势,也可以减少误操作。
在一个实施例中,埋点信息包括多个被埋点控件的视图路径和索引路径;在接收服务器返回的可触摸控件对应的埋点信息的步骤之后,还包括:获取可触摸控件的触摸事件,对触摸事件进行拦截;获取被触摸的可触摸控件的视图路径和索引路径;将被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;当被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将触摸事件上报至对应的服务器。
当服务器将被埋点控件的埋点信息发送至第三终端时,第三终端利用SDK对被埋点控件的埋点信息进行缓存。第三终端还利用SDK采集并缓存了应用程序当前页面多个视图的属性信息。视图包括控件和视图控制器。在应用程序当前页面,控件对用户可见,视图控制器对用户不可见,用户可以对控件进行触摸操作。需要说明的是,视图控制器对用户虽是不可见的,但控件和视图控制器一起才能够反映应用程序当前页面中多个视图整体的层级结构,故视图控制器也用于构建控件的视图路径和索引路径。
属性信息包括视图名称和视图索引。容易理解,视图名称可以是控件名称或控制器名称,视图索引可以是视图控件索引或控制器索引。视图名称可以直接反映视图类型,如UIwindow属于窗口类型控件,UIButton属于按钮类型控件,RootViewController属于根视图控制器等。视图索引可以是SDK根据应用程序当前页面多个视图之间的层级关系预先给多个视图分配的。SDK根据该层级关系对不同层级的视图分别进行单独编号,对同一层级的不同类型的视图分别进行单独编号,将该编号作为相应视图对应的视图索引。例如,假设在同一层级的视图中存在三个按钮类型控件,则三个按钮类型控件对应的控件索引依次可以是0,1和2。SDK可以将视图索引作为对应视图的视图名称的下标进行记录,如UIButton0,UIButton1和UIButton2。
属性信息还包括应用程序当前页面多个视图的层级信息。每个视图具有对应的层级信息,层级信息包括该视图与其他一个或多个视图之间的继承关系。例如,控件UIButton继承于控件UIView,控件UIView继承于视图控制器ViewController,则控件UIView为控件UIButton的上一层级视图,视图控制器ViewController为控件UIView的上一层级视图。
当用户通过第三终端对应用程序当前页面的某个控件进行触摸操作时,第三终端利用SDK获取被触摸控件的属性信息,根据属性信息得到被触摸控件的层级路径。层级路径包括视图路径和索引路径。具体的,SDK根据被触摸控件的层级信息向上逐级回溯,即识别被触摸控件是否存在上一层级视图。容易理解,当被触摸控件为应用程序当前页面的最高层级视图时,被触摸控件不存在上一层级视图。当被触摸控件存在上一层级视图时,提取该上一层级视图的视图名称和视图索引。SDK根据被触摸控件的层级信息继续向上逐级回溯,即识别被触摸控件的上一层级视图是否仍存在对应的上一层级视图,若存在,则提取对应的视图名称和视图索引,直至最高层级视图。
根据被触摸控件的层级信息,SDK利用第一预设标识将提取到的多个视图名称逐级拼接,即将最高层级视图至被触摸控件的多个视图的视图名称依次拼接,得到目录字符串,将该目录字符串作为被触摸控件对应的视图路径。SDK利用第二预设标识将提取到的多个视图索引逐级拼接,即将最高层级视图至被触摸控件的多个视图的视图索引依次拼接,得到索引字符串,将该索引字符串作为被触摸控件对应的索引路径,从而得到被触摸控件对应的层级路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。
多个视图可以继承于同一视图,即多个视图分别对应的上一层级视图可以是同一视图,如控件UIButton0,控件UIButton1和控件UIButton2可以继承于同一控件UIView。索引路径可以反映一个视图在对应的上一层级视图中的显示层级关系。例如,假设被触摸控件为上述举例中的控件UIButton1,对应的视图路径为/UIwindow/ViewController/UIView/UIButton,索引路径为0_1_2_1,则表示UIwindow为最高层级视图的第1个子视图,视图控制器ViewController为上一层级视图UIwindow的第2个子视图,控件UIView为上一层级视图ViewController的第3个子视图,控件UIButton为上一层级视图UIView的第2个子视图。可以理解,层级路径也可以将视图路径与索引路径结合展示。例如,将视图索引作为对应视图的视图名称的下标,利用第一预设标识或第二预设标识按照上述方式将多个带有下标的视图名称进行逐级拼接,如/UIwindow0/ViewController1/UIView2/UIButton1。
第三终端利用SDK读取缓存的多个埋点控件的视图路径和索引路径,将被埋点控件的视图路径和索引路径作为匹配参考对象,将被触摸控件的视图路径和索引路径分别与匹配参考对象进行匹配。
同一视图路径中多个视图名称的相对顺序可以反映每个视图在视图路径中的视图深度。为了描述方便,规定视图路径中第一个视图名称对应第一视图深度,第二个视图名称对应第二视图深度,如此递推。例如,视图路径/UIwindow/ViewController/UIView/UIButton中UIwindow对应第一视图深度,ViewController对应第二视图深度,UIView对应第三视图深度,UIButton对应第四视图深度。
为了提高匹配效率,SDK根据层级路径中每个视图的视图深度,将被触摸控件的层级路径与多个被埋点控件的层级路径进行剔除式匹配,逐渐减少被埋点控件作为匹配参考对象的数量,以减少不必要的匹配。具体的,SDK进行第一轮匹配,将被触摸控件层级路径中第一视图深度的视图名称和对应的视图索引分别与多个被埋点控件视图路径中第一视图深度的视图名称和对应的视图索引进行匹配,筛选第一视图深度的视图名称和对应的视图索引分别匹配成功的一个或多个被埋点控件的视图路径。SDK进行第二轮匹配,将被触摸控件视图路径中第二视图深度的视图名称和对应的视图索引分别与筛选出的多个被埋点控件视图路径中第二视图深度的视图名称和对应的视图索引进行匹配,如此经过多轮匹配,直至被触摸控件视图路径中被触摸控件的视图名称和视图索引也完成匹配。
视图路径和索引路径的结合可以共同完成控件唯一性定位。容易理解,单纯的视图路径匹配成功,尚不能确定被触摸控件与被埋点控件的对应关系。当存在被埋点控件的层级路径与被触摸控件的层级路径一致,即存在被埋点控件的视图路径与被触摸控件的视图路径相匹配,且该被埋点控件的索引路径与被触摸控件的索引路径相匹配时,表示被触摸控件属于被埋点控件,需要对被触摸控件对应的触摸事件上报至服务器。需要说明的是,接收触摸事件上报信息的服务器与向第三终端下发埋点信息的服务器可以是同一服务器,也可以是不同的服务器。
本实施例中,当用户触摸应用程序当前页面的控件时,可以对应用程序当前页面中被触摸控件对应的触摸事件进行拦截;在拦截触摸事件后,获取被触摸控件的路径信息,根据服务器发送的多个被埋点控件的路径信息与被触摸控件的路径信息进行匹配,判断是否需要对触摸事件进行上报;当存在被埋点控件的视图路径与被触摸控件的视图路径相匹配,且该被埋点控件的索引路径与被触摸控件的索引路径相匹配时,将触摸事件上报至服务器。由于路径信息不仅包括控件对应的视图路径,还包括其索引路径,视图路径可以对不同层级视图对应的控件进行区分,索引路径可以对同一层级视图对应的不同控件进行区分,视图路径和索引路径的结合可以共同完成控件唯一性定位,从而能够提高控件匹配精度,进而可以对控件的触摸事件进行准确上报。
在一个实施例中,如图6所示,提供了一种埋点处理装置,包括:获取模块602,识别模块604和埋点模块606,其中:
获取模块602,用于接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性;
识别模块604,用于根据基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;
埋点模块606,用于当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。
上述的埋点处理装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。
在一个实施例中,提供了一种计算机设备,如图7所示,该计算机设备包括通过系统总线连接的处理器、存储装置和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储装置包括一个或多个非易失性存储介质、一个或多个内存储器。该服务器的非易失性存储介质存储有操作系统和计算机程序。该计算机设备的内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信,比如,接收第一终端发送的应用程序当前页面的页面截图及多个视图的属性信息等。该计算机程序被处理器执行时以实现一种控件匹配方法。处理器执行计算机程序时可以执行以下步骤:接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性;根据基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,基本属性包括透明属性、隐藏属性和交互属性,处理器执行计算机程序时还执行以下步骤:识别控件名称是否为预设集合中的集合元素;当控件类型属于预设集合中的元素时,识别控件的透明属性、隐藏属性和交互属性是否均具有各自的预设属性值;当控件的透明属性、隐藏属性和交互属性均具有各自的预设属性值时,将控件标记为可触摸控件。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:获取应用程序当前页面中控件的属性信息;属性信息包括基本属性和访问属性;将属性信息发送至服务器;使服务器根据基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件;接收服务器返回的可触摸控件对应的埋点信息。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:向服务器发送可视化埋点请求;接收服务器根据可视化埋点请求返回的配置表,配置表记录了多个配置项;根据配置项对应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;将属性信息对应配置项添加至配置表。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:获取应用程序的目标配置文件;在目标配置文件中添加允许用户登录的白名单;对白名单及对应的参数数据关联对应的识别码;当接收到识别码对应的扫描操作时,向服务器发送可视化埋点请求。
在一个实施例中,处理器执行计算机程序时还执行以下步骤:获取在应用程序当前页面的输入手势;当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,向服务器发送可视化埋点请求。
在一个实施例中,埋点信息包括多个被埋点控件的视图路径和索引路径;处理器执行计算机程序时还执行以下步骤:获取可触摸控件的触摸事件,对触摸事件进行拦截;获取被触摸的可触摸控件的视图路径和索引路径;将被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;当被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将触摸事件上报至对应的服务器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现计算机程序以下步骤:接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性;根据基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。
在一个实施例中,基本属性包括透明属性、隐藏属性和交互属性,计算机程序被处理器执行时还执行以下步骤:识别控件名称是否为预设集合中的集合元素;当控件类型属于预设集合中的元素时,识别控件的透明属性、隐藏属性和交互属性是否均具有各自的预设属性值;当控件的透明属性、隐藏属性和交互属性均具有各自的预设属性值时,将控件标记为可触摸控件。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:获取应用程序当前页面中控件的属性信息;属性信息包括基本属性和访问属性;将属性信息发送至服务器;使服务器根据基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件;接收服务器返回的可触摸控件对应的埋点信息。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:向服务器发送可视化埋点请求;接收服务器根据可视化埋点请求返回的配置表,配置表记录了多个配置项;根据配置项对应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;将属性信息对应配置项添加至配置表。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:获取应用程序的目标配置文件;在目标配置文件中添加允许用户登录的白名单;对白名单及对应的参数数据关联对应的识别码;当接收到识别码对应的扫描操作时,向服务器发送可视化埋点请求。
在一个实施例中,计算机程序被处理器执行时还执行以下步骤:获取在应用程序当前页面的输入手势;当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,向服务器发送可视化埋点请求。
在一个实施例中,埋点信息包括多个被埋点控件的视图路径和索引路径;计算机程序被处理器执行时还执行以下步骤:获取可触摸控件的触摸事件,对触摸事件进行拦截;获取被触摸的可触摸控件的视图路径和索引路径;将被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;当被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将触摸事件上报至对应的服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,前述计算机可读取存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种埋点处理方法,包括:
接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;
根据所述基本属性识别控件是否为可触摸控件;
当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值;
当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
2.根据权利要求1所述的方法,其特征在于,所述基本属性包括透明属性、隐藏属性和交互属性,所述根据所述基本属性识别控件是否为可触摸控件的步骤,包括:
识别控件名称是否为预设集合中的集合元素;
当控件类型属于预设集合中的元素时,识别控件的透明属性、隐藏属性和交互属性是否均具有各自的预设属性值;
当控件的透明属性、隐藏属性和交互属性均具有各自的预设属性值时,将控件标记为可触摸控件。
3.一种埋点处理方法,包括:
获取应用程序当前页面中控件的属性信息;所述属性信息包括基本属性和访问属性;
将所述属性信息发送至服务器;使服务器根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件;
接收所述服务器返回的可触摸控件对应的埋点信息。
4.根据权利要求3所述的方法,其特征在于,所述获取应用程序当前页面中控件的属性信息的步骤,包括:
向所述服务器发送可视化埋点请求;
接收所述服务器根据所述可视化埋点请求返回的配置表,所述配置表记录了多个配置项;
根据所述配置项对所述应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;
将所述属性信息对应所述配置项添加至所述配置表。
5.根据权利要求4所述的方法,其特征在于,所述向所述服务器发送可视化埋点请求的步骤,包括:
获取所述应用程序的目标配置文件;
在所述目标配置文件中添加允许用户登录的白名单;
对所述白名单及对应的参数数据关联对应的识别码;
当接收到所述识别码对应的扫描操作时,向服务器发送可视化埋点请求。
6.根据权利要求4所述的方法,其特征在于,所述向所述服务器发送可视化埋点请求的步骤,包括:
获取在应用程序当前页面的输入手势;
当所述输入手势为预设的特定手势,且所述输入手势的持续时间达到阈值时,向所述服务器发送可视化埋点请求。
7.根据权利要求3所述的方法,其特征在于,所述埋点信息包括多个被埋点控件的视图路径和索引路径;在所述接收所述服务器返回的可触摸控件对应的埋点信息的步骤之后,还包括:
获取可触摸控件的触摸事件,对所述触摸事件进行拦截;
获取被触摸的可触摸控件的视图路径和索引路径;
将所述被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将所述被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;
当所述被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将所述触摸事件上报至对应的服务器。
8.一种计算机设备,包括存储装置及处理器,所述存储装置中储存有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任意一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711058954.8A CN107818162B (zh) | 2017-11-01 | 2017-11-01 | 埋点处理方法、装置、计算机设备和存储介质 |
PCT/CN2017/112673 WO2019085084A1 (zh) | 2017-11-01 | 2017-11-23 | 埋点处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711058954.8A CN107818162B (zh) | 2017-11-01 | 2017-11-01 | 埋点处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107818162A CN107818162A (zh) | 2018-03-20 |
CN107818162B true CN107818162B (zh) | 2019-02-01 |
Family
ID=61604546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711058954.8A Active CN107818162B (zh) | 2017-11-01 | 2017-11-01 | 埋点处理方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107818162B (zh) |
WO (1) | WO2019085084A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020332B (zh) * | 2017-07-25 | 2021-06-04 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN108536589A (zh) * | 2018-03-26 | 2018-09-14 | 广州小鹏汽车科技有限公司 | 一种应用程序埋点方法及系统 |
CN108829391B (zh) * | 2018-05-04 | 2021-08-31 | 武汉极意网络科技有限公司 | 一种Fragment中控件识别方法及系统 |
CN108920354B (zh) * | 2018-05-07 | 2021-01-01 | 未鲲(上海)科技服务有限公司 | 埋点管理方法、装置、计算机设备和存储介质 |
CN108874641A (zh) * | 2018-06-01 | 2018-11-23 | 平安科技(深圳)有限公司 | 一种埋点数据的分析方法及装置 |
CN108877796A (zh) * | 2018-06-14 | 2018-11-23 | 合肥品冠慧享家智能家居科技有限责任公司 | 语音控制智能设备终端操作的方法和装置 |
CN108874566A (zh) * | 2018-07-11 | 2018-11-23 | 深圳市分期乐网络科技有限公司 | 页面通信方法、装置、设备及存储介质 |
CN110837368B (zh) * | 2018-08-17 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法、装置及电子设备 |
CN109508186A (zh) * | 2018-09-18 | 2019-03-22 | 众安信息技术服务有限公司 | 一种基于iOS可视化埋点的数据采集分析方法及系统 |
CN109409934B (zh) * | 2018-09-27 | 2023-08-18 | 湖南优讯银态优服科技有限公司 | 一种产品体验定位与反馈激励机制的设计方法及系统 |
CN109521919B (zh) * | 2018-10-17 | 2022-03-01 | 深圳壹账通智能科技有限公司 | 基于浮层界面的埋点方法、装置、设备及存储介质 |
CN109597949B (zh) * | 2018-10-22 | 2024-04-02 | 平安科技(深圳)有限公司 | 基于数据标准化的第三方埋点标识生成方法和设备 |
CN111131369B (zh) * | 2018-11-01 | 2022-09-27 | 百度在线网络技术(北京)有限公司 | App使用情况的传输方法、装置、电子设备及存储介质 |
CN111367562B (zh) * | 2018-12-25 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据采集方法、装置、存储介质及处理器 |
CN110099101A (zh) * | 2019-04-01 | 2019-08-06 | 厦门美柚信息科技有限公司 | 一种埋点动态设置的方法、系统、设备及其存储介质 |
CN113127771A (zh) * | 2019-05-30 | 2021-07-16 | 北京腾云天下科技有限公司 | 应用埋点方法、装置、计算设备和系统 |
CN110187880B (zh) * | 2019-05-30 | 2022-12-16 | 北京腾云天下科技有限公司 | 一种同类元素识别方法、装置和计算设备 |
CN110457089B (zh) * | 2019-07-05 | 2023-09-26 | 中国平安人寿保险股份有限公司 | 数据采集方法、装置、计算机可读存储介质和计算机设备 |
CN110399067A (zh) * | 2019-07-31 | 2019-11-01 | 江苏满运软件科技有限公司 | 可视化埋点方法、装置、电子设备、存储介质 |
CN110704270A (zh) * | 2019-08-20 | 2020-01-17 | 北京奇艺世纪科技有限公司 | 零埋点数据采集方法、装置、电子设备及存储介质 |
CN110704863B (zh) * | 2019-08-23 | 2021-11-26 | 深圳市铭数信息有限公司 | 配置信息处理方法、装置、计算机设备和存储介质 |
CN110674022B (zh) * | 2019-09-27 | 2021-04-27 | 北京三快在线科技有限公司 | 行为数据获取方法、装置及存储介质 |
CN110908879B (zh) * | 2019-10-16 | 2023-10-20 | 陕西合友网络科技有限公司 | 埋点数据的上报方法、装置、终端和存储介质 |
CN110888573A (zh) * | 2019-11-08 | 2020-03-17 | 爱钱进(北京)信息科技有限公司 | 对控件进行标识的方法、装置以及存储介质 |
CN111143526B (zh) * | 2019-12-18 | 2024-03-22 | 口碑(上海)信息技术有限公司 | 一种咨询服务控件配置信息的生成、控制方法及装置 |
CN111290931B (zh) * | 2020-02-18 | 2022-05-13 | 支付宝(杭州)信息技术有限公司 | 用于可视化展示埋点数据的方法及装置 |
CN112214155B (zh) * | 2020-06-09 | 2022-04-26 | 北京沃东天骏信息技术有限公司 | 一种视图信息播放方法、装置、设备和存储介质 |
CN112711400B (zh) * | 2020-12-31 | 2023-07-25 | 北京字跳网络技术有限公司 | 视图的处理方法、设备及存储介质 |
CN113254009B (zh) * | 2021-06-25 | 2021-10-22 | 北京达佳互联信息技术有限公司 | 同类元素确定方法、装置、电子设备及存储介质 |
CN115484189A (zh) * | 2022-08-31 | 2022-12-16 | 未来电视有限公司 | 数据合规测试方法、装置、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120076471A (ko) * | 2010-11-25 | 2012-07-09 | 한국전자통신연구원 | 콘텐츠 서비스 제공 장치 및 그 방법 |
CN104572043B (zh) * | 2013-10-16 | 2018-01-19 | 阿里巴巴集团控股有限公司 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
CN105446752B (zh) * | 2014-06-30 | 2019-05-28 | 北京金山安全软件有限公司 | 应用程序中控件的触发方法、装置及移动终端 |
CN106066826A (zh) * | 2016-05-24 | 2016-11-02 | 北京金山安全软件有限公司 | 埋点的自动测试方法、装置以及终端 |
CN106776247B (zh) * | 2016-11-23 | 2020-07-14 | 腾云天宇科技(北京)有限公司 | 一种监控应用中控件的方法、服务器及系统 |
CN106933472A (zh) * | 2017-05-20 | 2017-07-07 | 南京西桥科技有限公司 | 一种基于手机app的用户行为数据采集系统及其控制方法 |
-
2017
- 2017-11-01 CN CN201711058954.8A patent/CN107818162B/zh active Active
- 2017-11-23 WO PCT/CN2017/112673 patent/WO2019085084A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2019085084A1 (zh) | 2019-05-09 |
CN107818162A (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818162B (zh) | 埋点处理方法、装置、计算机设备和存储介质 | |
CN107818163B (zh) | 页面展示方法、装置、计算机设备和存储介质 | |
CN107861655B (zh) | 控件匹配方法、装置、计算机设备和存储介质 | |
CN104636139B (zh) | 一种可视化跨平台移动应用开发与生成系统 | |
US9720658B2 (en) | Application creation method and apparatus | |
CN104615731B (zh) | 一种二维码展现方法及系统 | |
CN107872534B (zh) | 信息推送方法、装置、服务器及可读存储介质 | |
CN104484189A (zh) | 一种应用界面的构建及设计方法 | |
CN105635063A (zh) | 物联网通信协议配置方法和装置 | |
CN110708235B (zh) | 消息生成方法、装置、存储介质和计算机设备 | |
CN105744352A (zh) | 电视的无线网络连接方法及电视 | |
CN112162687B (zh) | 图片生成方法和装置、存储介质及电子设备 | |
CN112162740A (zh) | 基于ios-sdk的可视化数据采集方法及系统 | |
CN113094049A (zh) | 一种页面生成方法、页面展示方法、装置及电子设备 | |
CN115943362A (zh) | 配置数据包及文件的生成方法、处理方法、设备和介质 | |
CN105302409A (zh) | Web桌面管理方法及装置 | |
CN115291871A (zh) | 页面生成方法、电子设备、存储介质 | |
CN113918194A (zh) | 一种页面组件的显示方法、装置、电子设备及存储介质 | |
KR20210009990A (ko) | 이동통신 단말기의 어플리케이션 데이터 연동을 이용한 개인비서 시스템 | |
CN109388791A (zh) | 图表动态展示方法、装置、计算机设备及存储介质 | |
KR20140115006A (ko) | 애플리케이션 개발 환경 제공 장치 | |
KR20130003700A (ko) | 모바일 홈페이지용 아이콘 생성시스템 | |
KR20140115465A (ko) | 애플리케이션 환경 제공 시스템 | |
KR20140114987A (ko) | 애플리케이션 개발 환경 제공 방법 | |
KR20140098574A (ko) | 애플리케이션 개발 환경 제공 방법 |
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 | ||
GR01 | Patent grant |