CN112286501A - 对终端设备的页面进行埋点的方法、装置以及存储介质 - Google Patents
对终端设备的页面进行埋点的方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN112286501A CN112286501A CN202011091070.4A CN202011091070A CN112286501A CN 112286501 A CN112286501 A CN 112286501A CN 202011091070 A CN202011091070 A CN 202011091070A CN 112286501 A CN112286501 A CN 112286501A
- Authority
- CN
- China
- Prior art keywords
- page
- information
- point
- buried
- embedded
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000013461 design Methods 0.000 claims abstract description 42
- 230000001960 triggered effect Effects 0.000 claims description 27
- 238000009933 burial Methods 0.000 claims description 26
- 238000012360 testing method Methods 0.000 claims description 17
- 238000012790 confirmation Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 238000012800 visualization Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000013480 data collection Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 239000007943 implant Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000001028 reflection method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种对终端设备的页面进行埋点的方法、装置以及存储介质。其中,该方法包括:确定待埋点页面的页面信息,其中页面信息由终端设备集成的SDK生成;将页面信息发送至服务器,其中服务器与用于进行埋点设计的客户端连接;从服务器接收与待埋点页面对应的埋点信息,其中埋点信息由客户端根据页面信息生成;以及根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。
Description
技术领域
本申请涉及互联网埋点技术领域,特别是涉及一种对终端设备的页面进行埋点的方法、装置以及存储介质。
背景技术
数据统计是互联网产品迭代过程中的重要部分,主要由数据采集、数据分析两部分组成,数据采集确定数据源,快速、准确、无遗漏地采集数据,是数据采集SDK(下文简称SDK)面临的主要挑战。针对页面元素的点击信息统计用于分析用户交互,统计用户行为,对产品的持续优化起到很大作用。数据采集流程大致为设计埋点、集成SDK、触发埋点、上报服务器,目前数据采集方式主要有代码采集、全埋点采集、可视化采集等。代码采集大致流程为运营人员提出数据统计需求,产品人员设计埋点,开发人员调用SDK采集接口植入埋点,重新打包发布新版本,数据上报后运营人员进行分析。这种埋点方式采集精准且数据量小,缺点是人力和时间成本高。全埋点采集预先将埋点植入到所有页面元素,所有元素被点击后都会上报数据,运营人员筛选出关心的元素后进行数据统计,这种采集方式避免了重新发版的麻烦,缺点是数据量大,且上报数据形式单一不灵活。可视化采集可以在不发版的情况下新增采集点,且采集精准、上报数据量小,一定程度上综合了代码埋点和全埋点的优点,是数据采集发展的重要方向。目前商用SDK的可视化采集技术主要有基于全埋点的可视化、基于设备端圈选的可视化、基于编辑器圈选的可视化。其中,基于全埋点的可视化本质上还是全埋点技术,数据量大,且上报的数据只包括元素点击,无法上报元素相关信息。基于设备端圈选的可视化在手机设备上操作埋点,操作难度大,受限于屏幕尺寸和交互方式不能实现复杂的埋点需求。基于编辑器圈选的可视化处于发展初期,现有解决方案只采集元素点击事件,对于复杂的需求尚不能满足。
针对上述的现有技术中存在的利用埋点技术在终端设备上进行数据采集时,无法在终端设备上进行精准埋点的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种对终端设备的页面进行埋点的方法、装置以及存储介质,以至少解决现有技术中存在的利用埋点技术在终端设备上进行数据采集时,无法在终端设备上进行精准埋点的技术问题。
根据本公开实施例的一个方面,提供了一种对终端设备的页面进行埋点的方法,包括:确定待埋点页面的页面信息,其中页面信息由终端设备集成的SDK生成;将页面信息发送至服务器,其中服务器与用于进行埋点设计的客户端连接;从服务器接收与待埋点页面对应的埋点信息,其中埋点信息由客户端根据页面信息生成;以及根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。
根据本公开实施例的另一方面,还提供了一种对终端设备的页面进行埋点的方法,包括:接收终端设备发送的页面信息,其中页面信息由终端设备集成的SDK根据待埋点页面的信息生成;将页面信息发送至用于进行埋点设计的客户端;从客户端接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点;以及将埋点信息发送至终端设备。
根据本公开实施例的另一方面,还提供了一种对终端设备的页面进行埋点的方法,包括:接收服务器发送的需要进行埋点设计的页面信息并显示,其中页面信息为与服务器通信的终端设备的页面信息,并且页面信息由终端设备集成的SDK生成;响应于操作人员针对页面信息编辑埋点的触发操作,确定与页面信息对应的埋点信息;以及将埋点信息发送至服务器。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本公开实施例的另一个方面,还提供了一种对终端设备的页面进行埋点的装置,包括:页面信息确定模块,用于确定待埋点页面的页面信息,其中页面信息由终端设备集成的SDK生成;页面信息发送模块,用于将页面信息发送至服务器,其中服务器与用于进行埋点设计的客户端连接;埋点信息接收模块,用于从服务器接收与待埋点页面对应的埋点信息,其中埋点信息由客户端根据页面信息生成;以及埋点部署模块,用于根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。
根据本公开实施例的另一个方面,还提供了一种对终端设备的页面进行埋点的装置,包括:页面信息接收模块,用于接收终端设备发送的页面信息,其中页面信息由终端设备集成的SDK根据待埋点页面的信息生成;页面信息发送模块,用于将页面信息发送至用于进行埋点设计的客户端;埋点信息接收模块,用于从客户端接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点;以及埋点信息向终端设备发送模块,用于将埋点信息发送至终端设备。
根据本公开实施例的另一个方面,还提供了一种对终端设备的页面进行埋点的装置,包括:页面信息显示模块,用于接收服务器发送的需要进行埋点设计的页面信息并显示,其中页面信息为与服务器通信的终端设备的页面信息,并且页面信息由终端设备集成的SDK生成;埋点信息编辑模块,用于响应于操作人员针对页面信息编辑埋点的触发操作,确定与页面信息对应的埋点信息;以及埋点信息向服务器发送模块,用于将埋点信息发送至服务器。
根据本公开实施例的另一个方面,还提供了一种对终端设备的页面进行埋点的装置,包括:第一处理器;以及第一存储器,与第一处理器连接,用于为第一处理器提供处理以下处理步骤的指令:确定待埋点页面的页面信息,其中页面信息由终端设备集成的SDK生成;将页面信息发送至服务器,其中服务器与用于进行埋点设计的客户端连接;从服务器接收与待埋点页面对应的埋点信息,其中埋点信息由客户端根据页面信息生成;以及根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。
根据本公开实施例的另一个方面,还提供了一种对终端设备的页面进行埋点的装置,包括:第二处理器;以及第二存储器,与第二处理器连接,用于为第二处理器提供处理以下处理步骤的指令:接收终端设备发送的页面信息,其中页面信息由终端设备集成的SDK根据待埋点页面的信息生成;将页面信息发送至用于进行埋点设计的客户端;从客户端接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点;以及将埋点信息发送至终端设备。
根据本公开实施例的另一个方面,还提供了一种对终端设备的页面进行埋点的装置,包括:第三处理器;以及第三存储器,与第三处理器连接,用于为第三处理器提供处理以下处理步骤的指令:接收服务器发送的需要进行埋点设计的页面信息并显示,其中页面信息为与服务器通信的终端设备的页面信息,并且页面信息由终端设备集成的SDK生成;响应于操作人员针对页面信息编辑埋点的触发操作,确定与页面信息对应的埋点信息;以及将埋点信息发送至服务器。
在本公开实施例中,首先确定终端设备上待埋点页面的页面信息,然后埋点设计人员可以在客户端利用编辑器针对该页面信息设计埋点并生成埋点信息。最终,终端设备根据该埋点信息在待埋点页面部署埋点。从而,与现有技术相比,在对终端设备上的页面进行埋点设计时,本方案可以根据页面信息精准的设计埋点,不需要进行全埋点,因此可以减少采集数据量。此外,可以通过客户端的编辑器可视化地针对页面信息设计埋点,能够更加精准的定位埋点。从而,实现了在终端设备上进行精准埋点的技术效果。进而解决了现有技术中存在的利用埋点技术在终端设备上进行数据采集时,无法在终端设备上进行精准埋点的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;
图2是根据本公开实施例1所述的对终端设备的页面进行埋点的***的示意图;
图3是根据本公开实施例1所述的***交互过程的示意图;
图4是根据本公开实施例1的第一个方面所述的对终端设备的页面进行埋点的方法的流程示意图;
图5是根据本公开实施例1所述的终端设备与服务端交互过程示意图;
图6是根据本公开实施例1所述的页面元素树形结构示意图;
图7是根据本公开实施例1所述的页面结构的示意图;
图8是根据本公开实施例1所述的具有H5的页面结构的示意图;
图9是根据本公开实施例1的第二个方面所述的对终端设备的页面进行埋点的方法的流程示意图;
图10是根据本公开实施例1的第三个方面所述的对终端设备的页面进行埋点的方法的流程示意图;
图11是根据本公开实施例2的第一个方面所述的对终端设备的页面进行埋点的装置的示意图;
图12是根据本公开实施例2的第二个方面所述的对终端设备的页面进行埋点的装置的示意图;
图13是根据本公开实施例2的第三个方面所述的对终端设备的页面进行埋点的装置的示意图;
图14是根据本公开实施例3的第一个方面所述的对终端设备的页面进行埋点的装置的示意图;
图15是根据本公开实施例3的第二个方面所述的对终端设备的页面进行埋点的装置的示意图;以及
图16是根据本公开实施例3的第三个方面所述的对终端设备的页面进行埋点的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,还提供了一种对终端设备的页面进行埋点的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现对终端设备的页面进行埋点的方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的对终端设备的页面进行埋点的方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的对终端设备的页面进行埋点的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2是根据本实施例所述的对终端设备的页面进行埋点的***的示意图。参照图2所示,该***包括:服务器200、终端设备210以及客户端220,其中,终端设备的数量可以为多个,服务器200分别与终端设备210和客户端220通信,该客户端220运行有进行埋点设计的编辑器,可以对终端设备210的页面进行可视化埋点设计。需要说明的是,***中的服务器200、终端设备210以及客户端220均可适用上面所述的硬件结构。
在实际应用中,终端设备210的***例如是Android***,并集成有SDK。上述的***需要三端支持:服务端(服务器200)、网页端编辑器(客户端220)和SDK(终端设备210),服务端和编辑器、服务端和SDK之间的沟通使用可视化通讯数据协议,在编辑埋点时(下文称编辑阶段),各端使用WebSocket(下文简称ws)方式沟通,部署埋点(下文称生效阶段)后,SDK通过Http方式从服务器获取埋点。
参考图3所示,编辑阶段的主要任务是创建埋点,操作流程如下:
1.打开埋点编辑器,编辑器通过ws连接到服务端,上报编辑器信息;2.打开手机里集成了SDK的程序,摇动手机触发SDK通过ws连接到服务端,上报设备信息;3.服务端将SDK上报的设备信息发送到编辑器;4.编辑器展示设备信息,用户选中设备后编辑器发送选中设备信息到服务端;5.服务端向被选中的设备发送获取页面结构信息的指令。6.SDK生成当前页面图片和结构(下文简称页面信息)发送到服务端;7.服务端将页面信息发送到编辑器,编辑器展示页面信息;8.用户通过圈选页面元素的方式编辑埋点,保存后将埋点信息发送到服务端;9.服务端将埋点保存到数据库并标记为非部署状态,同时发送到SDK;10.SDK将埋点信息绑定到当前页面元素;11.用户点击手机程序中已埋点的页面元素,触发埋点,将埋点触发信息发送到服务端;12.服务端将埋点触发信息发送到编辑器;13.编辑器展示触发埋点提示信息,用户通过该提示信息确认埋点已成功;14.用户点击部署按钮,通知服务端该埋点为部署状态。
此外,参考图5所示,生效阶段是将部署的埋点下发到全网终端设备的过程,流程如下:1.将手机上集成了SDK的程序冷启动,SDK通过Http从服务端获取已部署埋点;2.SDK将埋点信息绑定到当前页面元素;3.用户点击手机程序中已埋点的页面元素,触发埋点,将埋点信息发送到服务端;4.服务端将该信息作为采集结果保存到数据库,供数据分析用。
在上述运行环境下,根据本实施例的第一个方面,提供了一种对终端设备的页面进行埋点的方法,该方法由图2中所示的终端设备210实现。图4示出了该方法的流程示意图,参考图4所示,该方法包括:
S402:确定待埋点页面的页面信息,其中页面信息由终端设备集成的SDK生成;
S404:将页面信息发送至服务器,其中服务器与用于进行埋点设计的客户端连接;
S406:从服务器接收与待埋点页面对应的埋点信息,其中埋点信息由客户端根据页面信息生成;以及
S408:根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。
正如背景技术中所述的,目前数据采集方式主要有代码采集、全埋点采集、可视化采集等。代码采集大致流程为运营人员提出数据统计需求,产品人员设计埋点,开发人员调用SDK采集接口植入埋点,重新打包发布新版本,数据上报后运营人员进行分析。这种埋点方式采集精准且数据量小,缺点是人力和时间成本高。全埋点采集预先将埋点植入到所有页面元素,所有元素被点击后都会上报数据,运营人员筛选出关心的元素后进行数据统计,这种采集方式避免了重新发版的麻烦,缺点是数据量大,且上报数据形式单一不灵活。可视化采集可以在不发版的情况下新增采集点,且采集精准、上报数据量小,一定程度上综合了代码埋点和全埋点的优点,是数据采集发展的重要方向。目前商用SDK的可视化采集技术主要有基于全埋点的可视化、基于设备端圈选的可视化、基于编辑器圈选的可视化。其中,基于全埋点的可视化本质上还是全埋点技术,数据量大,且上报的数据只包括元素点击,无法上报元素相关信息。基于设备端圈选的可视化在手机设备上操作埋点,操作难度大,受限于屏幕尺寸和交互方式不能实现复杂的埋点需求。基于编辑器圈选的可视化处于发展初期,现有解决方案只采集元素点击事件,对于复杂的需求尚不能满足。
针对背景技术中存在的技术问题,本实施例技术方案提供的终端设备210在步骤S402中,首先确定待埋点页面的页面信息。其中,待埋点页面例如为终端设备210上的APP或者网页页面,为了对该页面产生的数据进行采集,因此首先确定需要进行埋点的待埋点页面。其中,该终端设备210优选是Android***的终端设备,例如智能手机或者平板,可以通过终端设备210上集成的SDK生成该页面信息。在一个优选实例中,该页面信息例如包括页面的图片、页面结构等信息,还可以包括其他的页面信息,此处不做具体限定。
在一个具体实例中,页面信息格式如下:
其中,type字段告诉服务端该消息为页面信息,pages是一个数组,每个数组元素代表一个页面(当前可能有多个页面展示,比如在当前Activity页面弹出对话框,则为两个页面),page_name为页面名字,picture为页面图片对应的数据,views是一个数组,代表当前页面下面的所有页面元素,每个数组元素都包含了对应页面元素的若干属性信息,如id用于标识元素,clickable表示是否可以触发点击事件,visible为是否可见,x_page,y_page表示该元素在页面中的x,y坐标,x,y表示在父元素中的x,y坐标,w,h为的宽高。children_id为子元素,text为文本内容,classes为类继承关系。location表示如何在页面中定位该元素。location是一个数组,在埋点绑定中也会用到,每个数组元素代表一个页面元素,从下到上依次为该元素和该元素的父元素一直到根元素。可以想象整个页面结构为一个树形拓扑结构,代表了元素之间的父子关系。
进一步地,在步骤S404中,终端设备210将SDK生成的页面信息发送至服务器200。其中,服务器200与客户端220连接,服务器200可以将该页面信息发送至客户端220,客户端220上运行有设计埋点的编辑器,埋点设计人员可以利用编辑器针对该页面信息设计埋点。
进一步地,在步骤S406中,客户端220根据页面信息进行埋点设计之后会生成埋点信息,然后客户端220会将埋点信息反馈至服务器200,进而服务器200将埋点信息发送至终端设备210。在这种情况下,终端设备210可以从服务器200接收与待埋点页面对应的埋点信息。
在一个具体实例中,埋点信息格式如下:
其中,id唯一标识该埋点,event_type为埋点类型,location为埋点元素在页面结构中所处的位置,related为埋点触发时上报的关联属性,是一个数组,意味着可以上报多个属性。prop_name用来标识是哪一种属性,pro_type为属性类型,key为触发埋点后上报数据中标识该属性,target的作用是定位关联元素,触发埋点元素和关联元素有最近的父元素,其中step为埋点触发元素向该父元素回溯的步数,回溯到该父元素后再通过location字段定位到关联元素。props_binding表示按属性定位元素,区别于按location定位,后面会详细介绍。binding_range指定埋点生效范围,pages表示哪些页面生效,versions表示哪些版本生效。
最终,在步骤S408中,终端设备210可以根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。即,在待埋点页面部署埋点。
从而通过这种方式,首先确定终端设备上待埋点页面的页面信息,然后埋点设计人员可以在客户端利用编辑器针对该页面信息设计埋点并生成埋点信息。最终,终端设备根据该埋点信息在待埋点页面部署埋点。从而,与现有技术相比,在对终端设备上的页面进行埋点设计时,本方案可以根据页面信息精准的设计埋点,不需要进行全埋点,因此可以减少采集数据量。此外,可以通过客户端的编辑器可视化地针对页面信息设计埋点,能够更加精准的定位埋点。从而,实现了在终端设备上进行精准埋点的技术效果。进而解决了现有技术中存在的利用埋点技术在终端设备上进行数据采集时,无法在终端设备上进行精准埋点的技术问题。
可选地,确定待埋点页面的页面信息之前,还包括:通过SDK确定终端设备的设备信息,并将设备信息发送至服务器;以及从服务器接收获取待埋点页面的页面信息的获取指令,其中获取指令是服务器根据客户端发送的选择设备的确认信息生成的。
具体地,本方案在确定页面信息之前,终端设备210还需要通过SDK确定该终端设备210的设备信息,例如:设备型号、版本号等设备信息。进一步地,终端设备210将设备信息发送至服务器200。进一步地,终端设备210从服务器200接收获取待埋点页面的页面信息的获取指令,其中获取指令是服务器200根据客户端220发送的选择设备的确认信息生成的,例如:获取指令的格式如下:
type字段指定指令类型,page_config字段的值为一个数组,每个数组元素代表一种页面元素,指定需要获取该页面元素的哪些信息,以及通过什么方法获取。上例为获取android.view.View元素的clickable属性,通过调用该元素对象的isClickable方法获取。在实际操作中,服务器200在接收到设备信息后会将该设备信息发送至客户端220,其中向客户端220发送可以为多个终端设备的设备信息。埋点人员可以从多个设备信息中选择可以进行埋点的终端设备,例如:选中的终端设备为终端设备210,然后将选中的设备信息(终端设备210信息)发送至服务器200。然后,服务器200可以根据选中设备信息生成获取页面信息的获取指令,并将获取指令发送至终端设备210。在这种情况下,终端设备210可以接收该获取指令,并根据获取指令通过SDK生成该页面信息。从而,首先向客户端上报设备信息,然后设计人员可以选择进行埋点设计的终端设备,最终向选择的终端设备发送获取页面信息的指令。因此,可以根据设备信息有选择性的确定进行埋点的终端设备,节省了时间与成本。
可选地,根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点,包括:通过SDK将埋点信息与待埋点页面的页面元素进行绑定;响应于用户对埋点进行测试的第一触发操作,确定第一触发信息并将第一触发信息发送至服务器;从服务器接收部署指令,其中部署指令由服务器根据客户端发送的提示信息生成的,提示信息用于表示与第一触发信息对应的埋点已成功;以及根据部署指令,在终端设备的待埋点页面部署埋点。
具体地,在根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点的操作中,终端设备210首先通过SDK将埋点信息与待埋点页面的页面元素进行绑定。例如:埋点信息中指示对“页面元素1”进行埋点,则SDK可以将该埋点信息与页面元素1进行绑定,绑定的操作可以视为初步的部署埋点。进一步地,在将埋点信息与待埋点页面的页面元素进行绑定之后,需要对埋点是否成功进行测试,其中测试的方式利用可以是终端设备210的用户在该待埋点页面对“页面元素1”进行触发(第一触发操作)。在这种情况下,终端设备210可以响应于用户对埋点进行测试的第一触发操作,确定第一触发信息(例如:触发之后产生的数据)并将第一触发信息发送至服务器200。在服务器200接收该第一触发信息后需要将该信息反馈至客户端220,由埋点设计人员根据第一触发信息确定埋点是否成功。在确定埋点成功后可以通过客户端220向服务器200发送提示信息,该提示信息用于表示埋点已经成功,然后服务器200可以将该提示信息反馈至终端设备210。从而,用户可以根据该提示信息完成埋点的部署,例如:用户点击部署按钮,通知服务器该埋点为部署状态,从而完成埋点操作。从而,在埋点部署之前需要对埋点进行测试,因此可以提高埋点的可靠性。
可选地,通过SDK将埋点信息与待埋点页面的页面元素进行绑定,包括:确定埋点信息中包含的位置信息,其中位置信息用于指示待埋点页面中需要埋点的页面元素的位置;根据位置信息确定页面元素的位置;以及根据所确定的位置,将埋点信息与页面元素进行绑定。
在通过SDK将埋点信息与待埋点页面的页面元素进行绑定的操作中,可以采用位置定位(location定位)的方式。具体地,终端设备210首先确定埋点信息中包含的位置信息,其中位置信息用于指示待埋点页面中需要埋点的页面元素的位置。然后,根据位置信息确定页面元素的位置,最终根据所确定的位置,将埋点信息与页面元素进行绑定。在一个具体实例中,按location定位即通过匹配拓扑位置定位页面元素,页面结构可以抽象为树形结构,参考图6所示,左边为页面树形结构,右边为相应location字段。SDK在查找location字段指定的页面元素时,从页面树根节点开始,匹配到元素1(将页面元素的属性,如元素名字name、在父元素中的位置index、元素类型等,与location数组中子元素响应信息做对比),以先序遍历的方式,继续后面的匹配,中途有不匹配的节点即告匹配失败,直到location中最后的节点5匹配成功,即定位到最终埋点元素,然后将埋点信息与该埋点元素(定位的页面元素)进行绑定。
可选地,通过SDK将埋点信息与待埋点页面的页面元素进行绑定,包括:确定埋点信息中包含的属性信息,其中属性信息用于指示待埋点页面中需要埋点的页面元素的属性;以及根据属性信息确定页面元素,并将埋点信息与确定的页面元素进行绑定。
具体地,在通过SDK将埋点信息与待埋点页面的页面元素进行绑定的操作中,还可以采用属性定位的方式。具体地,终端设备210首先确定埋点信息中包含的属性信息(即props_binding字段),其中属性信息用于指示待埋点页面中需要埋点的页面元素的属性,然后根据属性信息确定页面元素,并将埋点信息与确定的页面元素进行绑定。在一个具体实例中,按属性定位依据props_binding字段,因此可以忽略元素在页面结构中的位置,参考以下格式:
SDK在定位元素时从页面根节点开始,以先序遍历的方式遍历整个页面结构树,如果当前元素的类型(class)为androidx.appcompat.widget.AppCompatButton即匹配成功,可能有多个元素匹配成功,因此点击这些元素都会触发该埋点。prop_name的值是枚举类型,如下所示:
则表示当前页面所有文本内容为“确定”的元素都会匹配成功。如果埋点信息中同时指定了按location和按属性两种定位方式,SDK会同时执行以上两种定位算法,全部都匹配都才能定位成功。按location定位的算法优点是定位精确,能唯一定位到目标元素,缺点是页面结构变化后就不能匹配,如页面改版后会导致埋点触发不成功。按属性定位可以解决这个问题,无论元素的位置如何变化,只要属性(类型、文本)不变就能成功定位,缺点是可能定位多个元素(如果用户就是希望定位多个元素,则不是缺点)。在编辑埋点时灵活使用这两种定位方式能满足复杂的业务场景。使用属性定位的方式定位元素,解决不同版本页面元素位置不一致导致的定位失败问题。
可选地,通过SDK将埋点信息与待埋点页面的页面元素进行绑定,包括:根据埋点信息通过同级元素定位确定页面元素;以及将埋点信息与页面元素进行绑定。
具体地,在通过SDK将埋点信息与待埋点页面的页面元素进行绑定的操作中,还可以采用同级元素定位功能。具体地,终端设备210首先根据埋点信息通过同级元素定位确定页面元素,进一步地将埋点信息与页面元素进行绑定。在一个具体实例中,参考图7所示,图7为典型的列表类元素,子元素数量可能不固定,滑动列表时底层实现采用了元素复用技术(即移除不可见的元素,将该元素外观修改后再添加进列表,从而实现滑动的视觉效果,当前支持的此类元素包括ListView、RecyclerView和ViewPager,以及这些元素的子类元素),如果用户希望统计“按钮1”的点击情况、第1行的点击情况,或者所有行的点击情况(通过关联title或者msg info区分),则需要使用同级定位功能。下面介绍列表固定行埋点和列表同级埋点的技术细节。
列表固定行埋点,比如用户希望在第一行的按钮上进行埋点(即“按钮0”),如果列表滑动导致第一行移除,可视范围内“按钮2”所处的行变成第一行则不能触发埋点。这种情况下服务端下发的埋点location格式为:
第四行的row字段即表示绑定第几行(从0开始),SDK通过第三行class字段为ListView确定该埋点与列表类元素相关,通过第四行row字段确定需要绑定第一行。
列表同级埋点,如果用户希望将列表类所有按钮埋点,并且上报与按钮同行的title,这种情况下服务端下发location与上面的唯一区别就是没有row字段,SDK根据缺少row字段确定绑定列表下所有符合location匹配的按钮。所有按钮点击后都会触发埋点,根据related字段定位到本行关联元素位置,获取title属性。定位成功后通过***函数setAccessibilityDelegate为元素添加事件***,用户点击元素后SDK就能获取该事件,完成埋点的部署。
可选地,在通过SDK在终端设备的待埋点页面部署埋点之后,还包括:响应于用户对埋点进行测试的第二触发操作,确定第二触发信息,其中第二触发信息用于指示用户所触发的埋点;以及将第二触发信息发送至服务器。
具体地,在通过SDK在终端设备的待埋点页面部署埋点之后,即埋点部署成功之后,终端设备210可以响应于用户对埋点进行测试的第二触发操作,确定第二触发信息。由于已经部署埋点,因此用户在该埋点页面触发埋点的元素的情况下,终端设备210可以响应用户的触发操作(第二触发操作),确定第二触发信息,即触发埋点的页面元素的信息。参考图5所示,终端设备210将该第二触发信息发送至服务器200进行进行保存,供数据分析用。
可选地,响应于用户对埋点进行测试的第二触发操作,确定第二触发信息,包括:响应于用户对埋点进行测试的第二触发操作,确定所触发的埋点;确定与所触发的埋点对应的页面元素相关的元素属性信息;以及根据触发的埋点以及元素属性信息确定第二触发信息。
具体地,页面中的页面元素对应有元素属性信息,在确定触发的埋点之后还可以确定与所触发的埋点对应的页面元素相关的元素属性信息,最终根据触发的埋点以及元素属性信息确定第二触发信息。在一个具体实例中,例如埋点相关属性保存在related字段中,以前面的列表同级埋点为例,埋点元素为本行按钮,关联元素为本行title,related字段为:
参考图7所示,例如:第二触发操作为“按钮1”,按钮1对应的元素属性信息为title1,则SDK会根据step字段上溯到其父元素LinearLayout,然后根据location字段找到元素“title1”,通过函数getText获取其文本(即元素属性信息)。从而,第二触发信息中可以包含元素属性信息,因此可以解决采集数据不丰富的技术问题。
此外,例如上报至服务服务器200的数据格式如下:
可选地,确定待埋点页面的页面信息,还包括:根据待埋点页面中包含的对话框类型的页面元素,确定待埋点页面的页面信息。
具体地,目前市场上的可视化埋点工具只支持Activity类型的页面埋点,除此之外对话框(Dialog)、PopupWindow等非Activity页面也使用得非常广泛,也需要兼容。Android***中的页面在底层实现时称为Window,无论是Activity,还是Dialog、PopupWindow等,都是通过Window实现的,管理这些Window的类叫做WindowManagerGlobal,该类有一个列表保存着这些Window对应的页面,本文通过Java反射的方法替换这个列表,实现监听列表变化的功能,从而感知到页面的展示和退出,然后将相关页面信息发送到服务端,最终编辑器展示这些页面信息,实现了页面元素的圈选和绑定。本方案还可以根据待埋点页面中包含的对话框类型的页面元素,确定待埋点页面的页面信息,即:对对话框类型的页面元素进行埋点。从而,通过改造***类WindowManagerGlobal,解决了对话框(Dialog)、Popup Window等非Activity页面的埋点的技术问题。
可选地,待埋点页面包含H5页面,并且确定待埋点页面的页面信息,包括:通过终端设备的SDK确定终端设备的页面的第一页面信息,通过JavaScript SDK确定H5页面的第二页面信息;以及根据第一页面信息和第二页面信息,确定待埋点页面的页面信息。
具体地,参考图8所示,Android原生页面和H5页面(以Android WebView元素为容器)不在同一个页面结构中,开发语言也不一样,这类场景同样也有埋点统计需求,本文称此类埋点为Hybrid埋点。在确定待埋点页面的页面信息的操作中,终端设备210可以通过终端设备的SDK确定终端设备的页面的第一页面信息,通过JavaScript SDK确定H5页面的第二页面信息。然后,根据第一页面信息和第二页面信息,确定待埋点页面的页面信息。在具体实现上,为了满足Hybrid埋点需求,不仅需要Android端SDK的支持,还需要在H5页面中加入JavaScript SDK(简称JS SDK)。通过两端SDK的数据传输来实现Hybrid埋点,传输的数据主要包括页面结构、埋点信息,跨平台关联属性、埋点触发信息,数据传输采用AndroidWebView提供的***接口。在编辑埋点前首先要将页面结构发送到服务端(编辑阶段第6步),如果当前页面包含H5页面,则需要将H5页面信息合并到当前页面中,具体实现如下:
1、Android SDK调用JS SDK的window.AnalysysAgent.getVisualDomList()通知要获取页面结构,JS SDK调用Android SDK的AnalysysAgentHybrid.onVisualDomList(string)返回页面结构;
2、Android SDK将页面结构放入WebView元素的h5_view属性中,上传到服务端。
传输埋点信息:前文编辑阶段第10步和生效阶段第2步为绑定埋点的过程,如果当前埋点包括Hybrid埋点,或者该埋点是按属性绑定的,Android SDK需要将这些埋点信息传输给JS SDK,后者执行H5元素的绑定:
1、编辑器保存Hybrid埋点时在埋点结构中加入is_hybrid字段并设置为1,保存到服务端,服务端下发到Android SDK;
2、Android SDK将Hybrid埋点筛选出来发送给JS SDK(根据is_hybrid为1或者该埋点只包含属性绑定来判断)。Android SDK调用JS SDK的window.AnalysysAgent.onEventList(event_list)传递Hybrid埋点,除此之外,H5页面加载完成后,JS SDK也会调用Android SDK的AnalysysAgentHybrid.getEventList()接口获取Hybrid埋点。
传输跨平台关联属性信息:本协议用于解决Hybrid埋点关联Android页面元素的属性,或者非Hybrid埋点关联H5页面元素的属性问题,具体协议如下(埋点是否为Hybrid埋点由is_hybrid字段确定):如果该埋点为Hybrid关联Android,related字段子节点中会包含location字段,JS SDK通过此字段判断关联到Android页面元素的属性,在事件触发时将调用Android SDK的AnalysysAgentHybrid.getProperty(related)获取关联元素属性;如果该埋点为非Hybrid关联H5,related字段子节点中会包含h5_path字段,Android SDK通过此字段判断关联到H5页面元素的属性,在事件触发时将调用JS SDK的window.AnalysysAgent.getProperty(related)接口通知要获取关联元素属性,JS SDK调用Android SDK的AnalysysAgentHybrid.onProperty(property)接口返回属性值。
传输埋点触发信息:JS SDK获取到Hybrid埋点信息后,会执行页面元素与埋点信息的绑定,事件触发后,JS SDK调用Android SDK的AnalysysAgentTrack接口发送埋点触发信息,Android SDK会代替上报到服务端。
此外,根据本实施例的第二个方面,提供了一种对终端设备的页面进行埋点的方法,该方法由图2中所示的服务器200实现。图9示出了该方法的流程示意图,参考图9所示,该方法包括:
S902:接收终端设备发送的页面信息,其中页面信息由终端设备集成的SDK根据待埋点页面的信息生成;
S904:将页面信息发送至用于进行埋点设计的客户端;
S906:从客户端接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点;以及
S908:将埋点信息发送至终端设备。
具体地,服务器200首先接收终端设备210发送的页面信息,其中页面信息由终端设备210集成的SDK根据待埋点页面的信息生成。然后,服务器200从客户端220接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点。进一步地,在埋点设计人员在客户端220利用编辑器针对该页面信息设计埋点之后,会向埋点信息发送至该服务器200.在这种情况下,服务器200从客户端220接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点。最终,服务器200将埋点信息发送至终端设备210,从而终端设备210可以根据埋点信息部署埋点。
此外,根据本实施例的第三个方面,提供了一种对终端设备的页面进行埋点的方法,该方法由图2中所示的客户端220实现。图10示出了该方法的流程示意图,参考图10所示,该方法包括:
S1002:接收服务器发送的需要进行埋点设计的页面信息并显示,其中页面信息为与服务器通信的终端设备的页面信息,并且页面信息由终端设备集成的SDK生成;
S1004:响应于操作人员针对页面信息编辑埋点的触发操作,确定与页面信息对应的埋点信息;以及
S1006:将埋点信息发送至服务器。
具体地,客户端220首先接收服务器200发送的需要进行埋点设计的页面信息并显示,其中页面信息为与服务器200通信的终端设备210的页面信息,并且页面信息由终端设备210集成的SDK生成。然后,操作人员(埋点设计人员)可以可视化的对该页面信息进行埋点设计,在一个具体实例中,操作人员例如是在该页面中通过圈选页面元素的方式编辑埋点,使用网页端可视化编辑器圈选方式埋点,解决埋点操作复杂,上报数据量大的问题。从而,客户端220可以响应于操作人员针对页面信息编辑埋点的触发操作(圈选页面元素),确定与页面信息对应的埋点信息。最终,将埋点信息发送至服务器200。
此外,参考图1所示,根据本实施例的第四个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
此外,还需要补充说明的是:
1.本实施例技术方案使用的埋点绑定技术是以搜索页面结构树来实现的,定位到元素后在元素对象中添加事件***来感知埋点事件触发。还有一种方法可以实现同样到效果:使用ASM Java字节码修改技术,在代码编译时为所有元素添加事件***,在事件触发后,遍历已存在到所有埋点信息,对比当前触发元素到各种属性(位置、类型、文本)等,确定该元素是否为埋点元素。这种方法的缺点是需要单独的字节码修改插件支持,监听所有元素的各种事件,侵入性较高且无法穷举所有的事件。
2.同级埋点本文只支持ListView、RecylerView和ViewPager,在实现时SDK是通过类名与这些类相同来确定是否为同级埋点和同级容器元素位置的,也可以采用另外一种方式:如果为同级埋点,编辑器在埋点信息中添加同级容器元素location字段,SDK通过该字段确定同级容器元素位置,此方案需要编辑器提供圈选容器元素的功能,操作复杂度较高。
从而根据本实施例,首先确定终端设备上待埋点页面的页面信息,然后埋点设计人员可以在客户端利用编辑器针对该页面信息设计埋点并生成埋点信息。最终,终端设备根据该埋点信息在待埋点页面部署埋点。从而,与现有技术相比,在对终端设备上的页面进行埋点设计时,本方案可以根据页面信息精准的设计埋点,不需要进行全埋点,因此可以减少采集数据量。此外,可以通过客户端的编辑器可视化地针对页面信息设计埋点,能够更加精准的定位埋点。从而,实现了在终端设备上进行精准埋点的技术效果。进而解决了现有技术中存在的利用埋点技术在终端设备上进行数据采集时,无法在终端设备上进行精准埋点的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图11示出了根据本实施例的第一个方面所述的对终端设备的页面进行埋点的装置1100,该装置1100与根据实施例1的第一个方面所述的方法相对应。参考图11所示,该装置1100包括:页面信息确定模块1110,用于确定待埋点页面的页面信息,其中页面信息由终端设备集成的SDK生成;页面信息发送模块1120,用于将页面信息发送至服务器,其中服务器与用于进行埋点设计的客户端连接;埋点信息接收模块1130,用于从服务器接收与待埋点页面对应的埋点信息,其中埋点信息由客户端根据页面信息生成;以及埋点部署模块1140,用于根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。
可选地,装置1100还包括:设备信息确定模块,用于通过SDK确定终端设备的设备信息,并将设备信息发送至服务器;以及获取指令接收模块,用于从服务器接收获取待埋点页面的页面信息的获取指令,其中获取指令是服务器根据客户端发送的选择设备的确认信息生成的。
可选地,埋点部署模块1140,包括:绑定子模块,用于通过SDK将埋点信息与待埋点页面的页面元素进行绑定;第一触发子模块,用于响应于用户对埋点进行测试的第一触发操作,确定第一触发信息并将第一触发信息发送至服务器;部署指令接收子模块,用于从服务器接收部署指令,其中部署指令由服务器根据客户端发送的提示信息生成的,提示信息用于表示与第一触发信息对应的埋点已成功;以及部署子模块,用于根据部署指令,在终端设备的待埋点页面部署埋点。
可选地,绑定子模块,包括:位置信息确定单元,用于确定埋点信息中包含的位置信息,其中位置信息用于指示待埋点页面中需要埋点的页面元素的位置;第一元素定位单元,用于根据位置信息确定页面元素的位置;以及第一绑定单元,用于根据所确定的位置,将埋点信息与页面元素进行绑定。
可选地,绑定子模块,包括:属性信息确定单元,用于确定埋点信息中包含的属性信息,其中属性信息用于指示待埋点页面中需要埋点的页面元素的属性;以及第二绑定单元,用于根据属性信息确定页面元素,并将埋点信息与确定的页面元素进行绑定。
可选地,绑定子模块,包括:同级元素定位单元,用于根据埋点信息通过同级元素定位确定页面元素;以及第三绑定单元,用于将埋点信息与页面元素进行绑定。
可选地,装置1100还包括:第二触发模块,用于响应于用户对埋点进行测试的第二触发操作,确定第二触发信息,其中第二触发信息用于指示用户所触发的埋点;以及第二触发信息发送模块,用于将第二触发信息发送至服务器。
可选地,第二触发模块,包括:第二触发子模块,用于响应于用户对埋点进行测试的第二触发操作,确定所触发的埋点;元素属性信息确定子模块,用于确定与所触发的埋点对应的页面元素相关的元素属性信息;以及第二触发信息确定子模块,用于根据触发的埋点以及元素属性信息确定第二触发信息。
可选地,页面信息确定模块1110,包括:对话框信息确定子模块,用于根据待埋点页面中包含的对话框类型的页面元素,确定待埋点页面的页面信息。
可选地,待埋点页面包含H5页面,并且页面信息确定模块1110,包括:第一页面信息确定子模块,用于通过终端设备的SDK确定终端设备的页面的第一页面信息,通过JavaScript SDK确定H5页面的第二页面信息;以及第二页面信息确定子模块,用于根据第一页面信息和第二页面信息,确定待埋点页面的页面信息。
此外,图12示出了根据本实施例的第二个方面所述的对终端设备的页面进行埋点的装置1200,该装置1200与根据实施例1的第二个方面所述的方法相对应。参考图12所示,该装置1200包括:页面信息接收模块1210,用于接收终端设备发送的页面信息,其中页面信息由终端设备集成的SDK根据待埋点页面的信息生成;向客户端发送模块1220,用于将页面信息发送至用于进行埋点设计的客户端;从客户端接收模块1230,用于从客户端接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点;以及向设备发送模块1240,用于将埋点信息发送至终端设备。
此外,图13示出了根据本实施例的第三个方面所述的对终端设备的页面进行埋点的装置1300,该装置1300与根据实施例1的第三个方面所述的方法相对应。参考图13所示,该装置1300包括:页面信息显示模块1310,用于接收服务器发送的需要进行埋点设计的页面信息并显示,其中页面信息为与服务器通信的终端设备的页面信息,并且页面信息由终端设备集成的SDK生成;埋点信息编辑模块1320,用于响应于操作人员针对页面信息编辑埋点的触发操作,确定与页面信息对应的埋点信息;以及向服务器发送模块1330,用于将埋点信息发送至服务器。
从而根据本实施例,首先确定终端设备上待埋点的页面信息,然后埋点设计人员可以在客户端利用编辑器针对该页面信息设计埋点并生成埋点信息,最终终端设备根据该埋点信息在待埋点页面部署埋点。从而,与现有技术相比,在对终端设备上的页面进行埋点设计时,本方案可以根据页面信息精准的设计埋点,不需要进行全埋点,因此可以减少采集数据量,此外,可以通过客户端的编辑器可视化地针对页面信息设计埋点,能够更加精准的定位埋点。从而,实现了在终端设备上进行精准埋点的技术效果。进而解决了现有技术中存在的利用埋点技术在终端设备上进行数据采集时,无法在终端设备上进行精准埋点的技术问题。
实施例3
图14示出了根据本实施例的第一个方面所述的对终端设备的页面进行埋点的装置1400,该装置1400与根据实施例1的第一个方面所述的方法相对应。参考图14所示,该装置1400包括:第一处理器1410;以及第一存储器1420,与第一处理器1410连接,用于为第一处理器1410提供处理以下处理步骤的指令:确定待埋点页面的页面信息,其中页面信息由终端设备集成的SDK生成;将页面信息发送至服务器,其中服务器与用于进行埋点设计的客户端连接;从服务器接收与待埋点页面对应的埋点信息,其中埋点信息由客户端根据页面信息生成;以及根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点。
可选地,确定待埋点页面的页面信息之前,还包括:通过SDK确定终端设备的设备信息,并将设备信息发送至服务器;以及从服务器接收获取待埋点页面的页面信息的获取指令,其中获取指令是服务器根据客户端发送的选择设备的确认信息生成的。
可选地,根据埋点信息,通过SDK在终端设备的待埋点页面部署埋点,包括:通过SDK将埋点信息与待埋点页面的页面元素进行绑定;响应于用户对埋点进行测试的第一触发操作,确定第一触发信息并将第一触发信息发送至服务器;从服务器接收部署指令,其中部署指令由服务器根据客户端发送的提示信息生成的,提示信息用于表示与第一触发信息对应的埋点已成功;以及根据部署指令,在终端设备的待埋点页面部署埋点。
可选地,通过SDK将埋点信息与待埋点页面的页面元素进行绑定,包括:确定埋点信息中包含的位置信息,其中位置信息用于指示待埋点页面中需要埋点的页面元素的位置;根据位置信息确定页面元素的位置;以及根据所确定的位置,将埋点信息与页面元素进行绑定。
可选地,通过SDK将埋点信息与待埋点页面的页面元素进行绑定,包括:确定埋点信息中包含的属性信息,其中属性信息用于指示待埋点页面中需要埋点的页面元素的属性;以及根据属性信息确定页面元素,并将埋点信息与确定的页面元素进行绑定。
可选地,通过SDK将埋点信息与待埋点页面的页面元素进行绑定,包括:根据埋点信息通过同级元素定位确定页面元素;以及将埋点信息与页面元素进行绑定。
可选地,在通过SDK在终端设备的待埋点页面部署埋点之后,还包括:响应于用户对埋点进行测试的第二触发操作,确定第二触发信息,其中第二触发信息用于指示用户所触发的埋点;以及将第二触发信息发送至服务器。
可选地,响应于用户对埋点进行测试的第二触发操作,确定第二触发信息,包括:响应于用户对埋点进行测试的第二触发操作,确定所触发的埋点;确定与所触发的埋点对应的页面元素相关的元素属性信息;以及根据触发的埋点以及元素属性信息确定第二触发信息。
可选地,确定待埋点页面的页面信息,还包括:根据待埋点页面中包含的对话框类型的页面元素,确定待埋点页面的页面信息。
可选地,待埋点页面包含H5页面,并且确定待埋点页面的页面信息,包括:通过终端设备的SDK确定终端设备的页面的第一页面信息,通过JavaScript SDK确定H5页面的第二页面信息;以及根据第一页面信息和第二页面信息,确定待埋点页面的页面信息。
此外,图15示出了根据本实施例的第二个方面所述的对终端设备的页面进行埋点的装置1500,该装置1500与根据实施例1的第二个方面所述的方法相对应。参考图15所示,该装置1500包括:第二处理器1510;以及第二存储器1520,与第二处理器1510连接,用于为第二处理器1510提供处理以下处理步骤的指令:接收终端设备发送的页面信息,其中页面信息由终端设备集成的SDK根据待埋点页面的信息生成;将页面信息发送至用于进行埋点设计的客户端;从客户端接收根据页面信息生成的埋点信息,其中埋点信息用于在待埋点页面进行埋点;以及将埋点信息发送至终端设备。
此外,图16示出了根据本实施例的第三个方面所述的对终端设备的页面进行埋点的装置1600,该装置1600与根据实施例1的第三个方面所述的方法相对应。参考图16所示,该装置1600包括:第三处理器1610;以及第三存储器1620,与第三处理器1610连接,用于为第三处理器1610提供处理以下处理步骤的指令:接收服务器发送的需要进行埋点设计的页面信息并显示,其中页面信息为与服务器通信的终端设备的页面信息,并且页面信息由终端设备集成的SDK生成;响应于操作人员针对页面信息编辑埋点的触发操作,确定与页面信息对应的埋点信息;以及将埋点信息发送至服务器。
从而根据本实施例,首先确定终端设备上待埋点的页面信息,然后埋点设计人员可以在客户端利用编辑器针对该页面信息设计埋点并生成埋点信息,最终终端设备根据该埋点信息在待埋点页面部署埋点。从而,与现有技术相比,在对终端设备上的页面进行埋点设计时,本方案可以根据页面信息精准的设计埋点,不需要进行全埋点,因此可以减少采集数据量,此外,可以通过客户端的编辑器可视化地针对页面信息设计埋点,能够更加精准的定位埋点。从而,实现了在终端设备上进行精准埋点的技术效果。进而解决了现有技术中存在的利用埋点技术在终端设备上进行数据采集时,无法在终端设备上进行精准埋点的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种对终端设备的页面进行埋点的方法,其特征在于,包括:
确定待埋点页面的页面信息,其中所述页面信息由终端设备集成的SDK生成;
将所述页面信息发送至服务器,其中所述服务器与用于进行埋点设计的客户端连接;
从所述服务器接收与所述待埋点页面对应的埋点信息,其中所述埋点信息由所述客户端根据所述页面信息生成;以及
根据所述埋点信息,通过所述SDK在所述终端设备的待埋点页面部署埋点。
2.根据权利要求1所述的方法,其特征在于,确定待埋点页面的页面信息之前,还包括:
通过所述SDK确定所述终端设备的设备信息,并将所述设备信息发送至所述服务器;以及
从所述服务器接收获取所述待埋点页面的页面信息的获取指令,其中所述获取指令是所述服务器根据所述客户端发送的选择设备的确认信息生成的。
3.根据权利要求1所述的方法,其特征在于,根据所述埋点信息,通过所述SDK在所述终端设备的待埋点页面部署埋点,包括:
通过所述SDK将所述埋点信息与所述待埋点页面的页面元素进行绑定;
响应于用户对埋点进行测试的第一触发操作,确定第一触发信息并将所述第一触发信息发送至所述服务器;
从所述服务器接收部署指令,其中所述部署指令由所述服务器根据所述客户端发送的提示信息生成的,所述提示信息用于表示与所述第一触发信息对应的埋点已成功;以及
根据所述部署指令,在所述终端设备的待埋点页面部署埋点。
4.根据权利要求3所述的方法,其特征在于,通过所述SDK将所述埋点信息与所述待埋点页面的页面元素进行绑定,包括:
确定所述埋点信息中包含的位置信息,其中所述位置信息用于指示所述待埋点页面中需要埋点的页面元素的位置;
根据所述位置信息确定所述页面元素的位置;以及
根据所确定的位置,将所述埋点信息与所述页面元素进行绑定。
5.根据权利要求3所述的方法,其特征在于,通过所述SDK将所述埋点信息与所述待埋点页面的页面元素进行绑定,包括:
确定所述埋点信息中包含的属性信息,其中所述属性信息用于指示所述待埋点页面中需要埋点的页面元素的属性;以及
根据所述属性信息确定所述页面元素,并将所述埋点信息与确定的所述页面元素进行绑定。
6.根据权利要求3所述的方法,其特征在于,通过所述SDK将所述埋点信息与所述待埋点页面的页面元素进行绑定,包括:
根据所述埋点信息通过同级元素定位确定所述页面元素;以及
将所述埋点信息与所述页面元素进行绑定。
7.根据权利要求1所述的方法,其特征在于,在通过所述SDK在所述终端设备的待埋点页面部署埋点之后,还包括:
响应于用户对埋点进行测试的第二触发操作,确定与所触发的埋点对应的页面元素相关的元素属性信息,根据所述触发的埋点以及所述元素属性信息确定所述第二触发信息,其中所述第二触发信息用于指示所述用户所触发的埋点;以及
将所述第二触发信息发送至所述服务器。
8.根据权利要求1所述的方法,其特征在于,确定待埋点页面的页面信息,还包括:
根据所述待埋点页面中包含的对话框类型的页面元素,确定所述待埋点页面的页面信息。
9.根据权利要求1所述的方法,其特征在于,所述待埋点页面包含H5页面,并且确定待埋点页面的页面信息,包括:
通过所述终端设备的SDK确定所述终端设备的页面的第一页面信息,通过JavaScriptSDK确定所述H5页面的第二页面信息;以及
根据第一页面信息和所述第二页面信息,确定待埋点页面的页面信息。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091070.4A CN112286501A (zh) | 2020-10-13 | 2020-10-13 | 对终端设备的页面进行埋点的方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091070.4A CN112286501A (zh) | 2020-10-13 | 2020-10-13 | 对终端设备的页面进行埋点的方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286501A true CN112286501A (zh) | 2021-01-29 |
Family
ID=74496522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011091070.4A Pending CN112286501A (zh) | 2020-10-13 | 2020-10-13 | 对终端设备的页面进行埋点的方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286501A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127373A (zh) * | 2021-05-18 | 2021-07-16 | 爱驰汽车有限公司 | 可视化埋点方法、***、装置、设备及存储介质 |
CN113485694A (zh) * | 2021-07-06 | 2021-10-08 | 算话信息科技(上海)有限公司 | 一种算法的变量数据智能中台*** |
CN113553034A (zh) * | 2021-07-07 | 2021-10-26 | 北京计算机技术及应用研究所 | 一种前端埋点***输出方法 |
CN113568909A (zh) * | 2021-07-21 | 2021-10-29 | 北京无线电测量研究所 | 一种结构树的数据更新方法和*** |
CN114327207A (zh) * | 2021-11-22 | 2022-04-12 | 北京云测信息技术有限公司 | 元素定位方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304176A (zh) * | 2017-12-14 | 2018-07-20 | 广东数果科技有限公司 | 一种跨平台移动终端的可视化埋点方法 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和*** |
CN110489597A (zh) * | 2018-05-10 | 2019-11-22 | 华为技术有限公司 | 一种获取数据的方法和终端设备 |
CN111435298A (zh) * | 2019-01-11 | 2020-07-21 | 北京京东尚科信息技术有限公司 | 埋点方法、装置、电子设备、存储介质 |
CN112162739A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于js-sdk的可视化埋点方法及*** |
CN112162740A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于ios-sdk的可视化数据采集方法及*** |
-
2020
- 2020-10-13 CN CN202011091070.4A patent/CN112286501A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304176A (zh) * | 2017-12-14 | 2018-07-20 | 广东数果科技有限公司 | 一种跨平台移动终端的可视化埋点方法 |
CN110489597A (zh) * | 2018-05-10 | 2019-11-22 | 华为技术有限公司 | 一种获取数据的方法和终端设备 |
CN111435298A (zh) * | 2019-01-11 | 2020-07-21 | 北京京东尚科信息技术有限公司 | 埋点方法、装置、电子设备、存储介质 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和*** |
CN112162739A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于js-sdk的可视化埋点方法及*** |
CN112162740A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于ios-sdk的可视化数据采集方法及*** |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127373A (zh) * | 2021-05-18 | 2021-07-16 | 爱驰汽车有限公司 | 可视化埋点方法、***、装置、设备及存储介质 |
CN113485694A (zh) * | 2021-07-06 | 2021-10-08 | 算话信息科技(上海)有限公司 | 一种算法的变量数据智能中台*** |
CN113485694B (zh) * | 2021-07-06 | 2023-04-28 | 算话信息科技(上海)有限公司 | 一种算法的变量数据智能中台*** |
CN113553034A (zh) * | 2021-07-07 | 2021-10-26 | 北京计算机技术及应用研究所 | 一种前端埋点***输出方法 |
CN113553034B (zh) * | 2021-07-07 | 2022-04-05 | 北京计算机技术及应用研究所 | 一种前端埋点***输出方法 |
CN113568909A (zh) * | 2021-07-21 | 2021-10-29 | 北京无线电测量研究所 | 一种结构树的数据更新方法和*** |
CN113568909B (zh) * | 2021-07-21 | 2023-09-12 | 北京无线电测量研究所 | 一种结构树的数据更新方法和*** |
CN114327207A (zh) * | 2021-11-22 | 2022-04-12 | 北京云测信息技术有限公司 | 元素定位方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286501A (zh) | 对终端设备的页面进行埋点的方法、装置以及存储介质 | |
CN109857667B (zh) | 接口自动化测试方法、测试装置、测试设备及存储介质 | |
CN106095666B (zh) | 游戏自动化测试方法及相关装置 | |
CN106557424B (zh) | 内存测试方法、被测终端、测试客户端及*** | |
CN109446069A (zh) | 兼容性测试方法、装置、计算机设备和介质 | |
US8856748B1 (en) | Mobile application testing platform | |
CN112270149B (zh) | 验证平台自动化集成方法、***及电子设备和存储介质 | |
CN106844217A (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
CN108255709A (zh) | 脚本测试代码编写的方法、装置、终端设备及存储介质 | |
CN110716853A (zh) | 一种测试脚本录制方法、应用程序测试方法和相关装置 | |
CN110515679A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN111488109A (zh) | 用户界面的控件信息的获取方法、装置、终端及存储介质 | |
CN107480036A (zh) | iOS移动应用的自动测试方法、装置、存储介质及终端 | |
CN111367562A (zh) | 数据采集方法、装置、存储介质及处理器 | |
CN110795329A (zh) | 覆盖率测试方法及***、处理器、存储介质 | |
CN112162740A (zh) | 基于ios-sdk的可视化数据采集方法及*** | |
CN112148606B (zh) | 埋点测试方法、装置、设备及计算机可读介质 | |
CN110833693A (zh) | 游戏运行方法和装置、存储介质及电子装置 | |
CN109271315A (zh) | 脚本代码检测方法、装置、计算机设备及存储介质 | |
CN112162739A (zh) | 基于js-sdk的可视化埋点方法及*** | |
CN104081347A (zh) | 运算次序的图形表示 | |
CN112559348B (zh) | 基于jacoco的测试分析方法、***、设备以及介质 | |
CN110889116A (zh) | 一种广告拦截方法、装置及电子设备 | |
CN111984248A (zh) | 页面编辑方法和装置、存储介质及电子装置 | |
CN112162908A (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 |