CN112162740A - 基于ios-sdk的可视化数据采集方法及*** - Google Patents
基于ios-sdk的可视化数据采集方法及*** Download PDFInfo
- Publication number
- CN112162740A CN112162740A CN202011023032.5A CN202011023032A CN112162740A CN 112162740 A CN112162740 A CN 112162740A CN 202011023032 A CN202011023032 A CN 202011023032A CN 112162740 A CN112162740 A CN 112162740A
- Authority
- CN
- China
- Prior art keywords
- information
- point
- page
- embedded
- embedded point
- 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 99
- 230000000007 visual effect Effects 0.000 title claims abstract description 36
- 230000001960 triggered effect Effects 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 25
- 230000009471 action Effects 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 3
- 238000013480 data collection Methods 0.000 claims 6
- 238000007405 data analysis Methods 0.000 abstract description 8
- 238000010200 validation analysis Methods 0.000 description 23
- 238000012800 visualization Methods 0.000 description 22
- 230000006854 communication Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000009933 burial Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种基于IOS‑SDK的可视化数据采集方法,包括:接收页面信息获取指令,并将页面信息通过服务器反馈至编辑器;获取对当前页面进行埋点编辑后得到的埋点信息并绑定到当前页面;获取第一触发信号并触发当前埋点,从而生成埋点触发信息,并将其发送至编辑器,以由编辑器根据埋点触发信息确认当前埋点对应的埋点元素,完成页面埋点的创建;访问当前页面,并从服务器获取当前页面内已创建的埋点;将已创建埋点信息绑定到当前页面;获取第二触发信号并确定被触发的埋点元素,生成基于埋点生效阶段的埋点触发信息,以及传输至服务器。本发明可适用于复杂业务场景下的埋点方案,提高了数据分析结果的准确性。
Description
技术领域
本发明涉及数据采集处理技术领域,尤其是涉及一种基于IOS-SDK的可视化数据采集方法及***。
背景技术
数据统计是互联网产品迭代过程中的重要部分,主要由数据采集、数据分析两部分组成,数据采集确定数据源,快速、准确、无遗漏地采集数据,是数据采集SDK(下文简称SDK)面临的主要挑战。SDK能够针对页面元素的点击信息来统计用于分析用户交互和用户行为,对互联网产品的持续优化起到很大作用。数据采集流程大致为设计埋点、集成SDK、触发埋点、上报服务器。其中,现有的数据采集方式主要有代码采集、全埋点采集、可视化采集等。
具体地,代码采集大致流程为运营人员提出数据统计需求,产品人员设计埋点,开发人员调用SDK采集接口植入埋点,重新打包发布新版本,数据上报后运营人员进行分析。这种埋点方式采集精准且数据量小,缺点是人力和时间成本高。全埋点采集预先将埋点植入到所有页面元素,所有元素被点击后都会上报数据,运营人员筛选出关心的元素后进行数据统计,这种采集方式避免了重新发版的麻烦,缺点是数据量大,且上报数据形式单一不灵活。可视化采集可以在不发版的情况下新增采集点,且采集精准、上报数据量小,一定程度上综合了代码埋点和全埋点的优点,是数据采集发展的重要方向。
进一步,现有SDK的可视化采集技术主要有基于全埋点的可视化化、基于编辑器圈选的可视化。其中,基于全埋点的可视化采集了所有元素的点击事件,在分析数据时在编辑器中圈选所关心的数据进行分析,其技术核心还是全埋点采集。这种技术虽然能够对埋点进行可视化圈选,但本质上还是全埋点技术,仍然具有数据量大、且上报的数据只包括元素点击信息,而无法上报元素相关信息。基于设备端圈选的可视化在编辑埋点时使用设备上运行的SDK宿主程序,生成埋点指令部署后全网生效。但这种技术的可视化在手机终端设备上操作埋点,操作难度大,受限于屏幕尺寸和交互方式不能实现复杂的埋点需求。另外,基于编辑器圈选的可视化采集技术,是使用单独的网站编辑器编辑埋点,部署后全网生效。但现有的基于编辑器圈选的可视化采集技术仍然处于发展初期,现有解决方案只采集元素点击事件,对于复杂的采集环境下的采集需求尚不能满足。
发明内容
为了解决上述技术问题,本发明提供了一种基于IOS-SDK的可视化数据采集方法,包括:接收页面信息获取指令,并将页面信息通过所述服务器反馈至编辑器;获取对当前页面进行埋点编辑后得到的埋点信息,并绑定到当前页面,其中,所述埋点信息是由所述编辑器在展示所述页面信息后编辑而成的,并通过服务器发送至IOS-SDK端;获取第一触发信号并触发当前埋点,从而生成埋点触发信息,并将所述埋点触发信息发送至所述编辑器,以由所述编辑器确认当前埋点对应的埋点元素,完成页面埋点的创建;访问当前页面,并从所述服务器获取当前页面内已创建的埋点;将已创建埋点信息绑定到当前页面;获取第二触发信号,基于此,确定被触发埋点及相应的埋点元素生成基于埋点生效阶段的埋点触发信息,从而传输至所述服务器。
优选地,所述埋点信息通过圈选页面元素的方式进行编辑。
优选地,所述埋点信息包括但不限于:埋点元素的标识、埋点元素在页面结构内的位置、埋点元素的类型、埋点元素的关联属性信息、埋点元素的定位方式、埋点生效范围、页面生效范围以及生效版本,其中,所述埋点元素的定位方式选自location定位、按属性定位和同级元素定位中的一种或几种的组合。
优选地,在将已创建埋点信息绑定到当前页面步骤中,包括:解析当前页面所涉及的已创建埋点信息,按照已定义的元素定位方式,对目标埋点元素进行定位,并获取所述目标埋点元素的关联属性,其中,在已定义元素定位方式为多种时,若每种定位处理后得到的埋点元素定位结果均相同,则当前页面的元素定位操作成功,从而将该埋点元素定位结果作为所述目标埋点元素;否则,失败。
优选地,使用基于OC的runtime机制对所述触发信号进行识别,所述触发信号选自手势动作、点击信号、语音信号中的一种。
优选地,所述方法还包括:调用基于JS-SDK端的页面信息,其中,所述服务器在接收到基于IOS-SDK端的页面信息后,向所述JS-SDK端发送页面信息获取通知,使得所述JS-SDK端在该通知的指示下,将相应的页面信息反馈至所述服务器并进一步反馈至IOS-SDK端;将所述基于JS-SDK端的页面信息放入终端网页视窗元素的h5视窗属性内,从而将新的页面信息传输至所述服务器。
优选地,在埋点绑定过程中,还包括:接收含有标记Hybrid埋点的埋点信息,并对Hybrid埋点进行筛选,从而生成新的埋点信息,而后通过所述服务器将所述新的埋点信息发送至所述JS-SDK端,其中,由所述编辑器识别用户编辑的埋点信息,在含有Hybrid埋点或该埋点仅以按属性定位方式进行绑定时,在所述埋点信息中标记出当前埋点为Hybrid埋点,并将更新后的埋点信息通过服务器发送至所述IOS-SDK端。
优选地,如果当前埋点为Hybrid埋点,那么将关于当前埋点的关联元素属性通过所述服务器发送至所述JS-SDK端;如果当前埋点为非Hybrid埋点,那么在检测到当前埋点触发时,通过所述服务器向所述JS-SDK端发送第一通知,并通过所述服务器获得含有当前埋点的关联元素属性信息的埋点信息,其中,所述JS-SDK端在接收到所述第一通知后,输出所述含有当前埋点的关联元素属性信息的埋点信息。
优选地,在接收Hybrid埋点步骤之后,还包括:获取所述JS-SDK端在绑定Hybrid埋点并该埋点被触发后生成的埋点触发信息,而后将当前埋点触发信息传输至所述服务器。
另一方面,本发明还提供了一种基于IOS-SDK的可视化数据采集***,所述可视化数据采集***执行如上述所述的方法,所述可视化数据采集***包括:IOS-SDK端,其用于先接收页面信息获取指令,并将页面信息通过所述服务器反馈至编辑器,而后获取对当前页面进行埋点编辑后得到的埋点信息,并绑定到当前页面,然后,获取第一触发信号并触发当前埋点,从而生成埋点触发信息,并将所述埋点触发信息发送至所述编辑器,以由所述编辑器确认当前埋点对应的埋点元素,完成页面埋点的创建,以及访问当前页面,并从所述服务器获取当前页面内已创建的埋点,而后将已创建埋点信息绑定到当前页面,最后获取第二触发信号,基于此,确定被触发埋点及相应的埋点元素生成基于埋点生效阶段的埋点触发信息,从而传输至所述服务器来保存,其中,所述埋点信息是由所述编辑器在展示所述页面信息后编辑而成的,并通过服务器发送至IOS-SDK端;编辑器,其与所述JS-SDK端和服务器通过WebSocket方式进行通信;和所述服务器,其与所述JS-SDK端通过Http方式进行通信,用于存储并传输网站页面的页面信息、各页面内的已创建埋点信息和各页面内的已创建埋点的埋点触发信息。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
本发明提出了一种基于IOS-SDK端的可视化数据采集方法及***。该方法及***,首先使用可视化编辑器圈选方式埋点,解决埋点操作复杂,上报数据量大的问题,从而精准定位触发元素;使用属性定位的方式定位页面元素,从而解决了不同版本页面元素位置不一致导致的定位失败的问题、以及使用同级埋点技术简化复用元素埋点(例如:UITableViewCell、UICollectionViewCell等复用元素),继而能够解决复杂业务场景下的埋点方案。另外,本发明能够在埋点信息内嵌入与埋点元素相关的关联属性信息,在埋点处采集更加丰富的数据,进一步,为数据分析阶段提供了更多类型的数据资料,同时能够从多维角度对埋点采集数据进行分析,提高了数据分析结果的准确性。此外,本发明还提供了一种能够对Hybrid埋点进行处理的完整的通讯协议,使得本发明的可视化数据采集方法能够适应于不同业务场合(不同操作***)下的埋点方案。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本申请实施例的基于IOS-SDK的可视化数据采集方法的步骤图。
图2是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点编辑阶段的具体流程图。
图3是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点生效阶段的具体流程图。
图4是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点生效阶段内location定位方法的实现原理示例图。
图5是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点生效阶段内同级元素定位方法的实现原理示例图。
图6是本申请实施例的基于IOS-SDK的可视化数据采集方法中IOS设备嵌入H5页面的场景示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
数据统计是互联网产品迭代过程中的重要部分,主要由数据采集、数据分析两部分组成,数据采集确定数据源,快速、准确、无遗漏地采集数据,是数据采集SDK(下文简称SDK)面临的主要挑战。SDK能够针对页面元素的点击信息来统计用于分析用户交互和用户行为,对互联网产品的持续优化起到很大作用。数据采集流程大致为设计埋点、集成SDK、触发埋点、上报服务器。其中,现有的数据采集方式主要有代码采集、全埋点采集、可视化采集等。
现有SDK的可视化采集技术主要有基于全埋点的可视化化、基于编辑器圈选的可视化。其中,基于全埋点的可视化采集了所有元素的点击事件,在分析数据时在编辑器中圈选所关心的数据进行分析,其技术核心还是全埋点采集。这种技术虽然能够对埋点进行可视化圈选,但本质上还是全埋点技术,仍然具有数据量大、且上报的数据只包括元素点击信息,而无法上报元素相关信息。另外,基于编辑器圈选的可视化采集技术,是使用单独的网站编辑器编辑埋点,部署后全网生效。但现有的基于编辑器圈选的可视化采集技术仍然处于发展初期,现有解决方案只采集元素点击事件,对于复杂的采集环境下的采集需求尚不能满足。
因此,为了解决上述技术问题本发明提出了一种基于IOS-SDK的可视化数据采集方法(可视化数据采集方法),该方法由可视化数据采集***来完成。其中,可视化数据采集***包括IOS-SDK端(终端SDK)、网站编辑器和服务器端。具体地,该方法在埋点编辑阶段,首先,在接收到页面信息获取指令的指示下,将页面信息通过服务器反馈至编辑器;而后,获取通过编辑器在载入页面信息后以圈选页面元素的方式编辑而成的至少包括目标埋点元素和目标元素关联属性信息的埋点信息,并根据当前埋点信息对当前页面进行绑定;然后,在获取来自用户的第一触发信号后触发当前已编辑的埋点,从而生成埋点触发信息,并将当前埋点触发信息发送至编辑器,以由编辑器确认目标埋点元素,从而完成页面埋点的创建任务。进一步,本发明所述的可视化数据采集方法还需要在埋点元素成功创建后,进入埋点生效阶段。在埋点生效阶段内,IOS-SDK端与服务器直接进行通信,首先,当访问当前页面时,从服务器获得当前页面内已创建的埋点,并对埋点信息进行绑定;而后,获取第二触发信号,基于此,确定被触发埋点及相应的埋点元素,从而生成基于埋点生效阶段的埋点触发信息,并将当前埋点触发信息传输至服务器来保存。
这样,本发明解决了现有全埋点数据采集技术操作复杂、上报数据量大的问题,并且通过不仅上报页面元素还会将该页面元素的关联信息一并上报的方式,使得埋点处采集的数据更加丰富。
另外,本发明还提供了一种Hybrid埋点的通讯协议,尤其是公开了该通讯协议在IOS-SDK端的实施流程。不仅需要IOS-SDK端的参与,还需要在已嵌入于终端原生网页的H5页面中加入JS-SDK端的埋点信息,通过IOS-SDK端与JS-SDK端的数据传输来实现Hybrid埋点,传输的数据主要包括页面信息(页面结构)、埋点信息、跨平台关联属性、以及埋点触发信息。由此,本发明通过对Hybrid埋点的通讯协议的定义,实现了通过JS-SDK端、网站编辑器、服务器和IOS-SDK端之间的通信来完成的可视化Hybrid埋点功能。
在对本发明所述的可视化数据采集方法进行说明之前,先对当前可视化数据采集方法的应用环境进行说明。在本发明实施例中,通过可视化数据采集***来执行上述可视化数据采集方法(基于可视化数据采集***,执行上述可视化数据采集方法;并基于下述可视化数据采集方法,提出了当前可视化数据采集***)。参考图2和图3,本发明所述的可视化数据采集***包括:IOS-SDK端(IOS终端SDK)、网站端编辑器(以下简称“编辑器”)和服务器(其中,服务器为网站的后台服务器)。其中,在埋点编辑阶段,编辑器与IOS-SDK端之间、以及编辑器与服务器之间使用WebSocket(以下简称“ws”)来进行通信;在埋点生效阶段,服务器与IOS-SDK端通过Http方式来进行通信。
进一步,在埋点编辑阶段,编辑器、IOS-SDK端和服务器各端之间的使用ws通信方式沟通,部署埋点完成后,进入埋点生效阶段,此时,IOS-SDK端通过Http方式从服务器获取页面已创建的埋点对应的埋点信息。
进一步,IOS-SDK端,用于先接收页面信息获取指令,并将页面信息通过服务器反馈至编辑器,而后获取对当前页面进行埋点编辑后得到的埋点信息,并将当前埋点信息绑定到当前页面,然后,获取第一触发信号,并利用该信号触发当前埋点,从而生成埋点触发信息,并将当前埋点触发信息发送至编辑器,以由编辑器根据埋点触发信息确认当前埋点对应的埋点元素,完成页面埋点的创建,以及访问当前页面,并从服务器获取当前页面内已创建的埋点,而后将已创建埋点信息绑定到当前页面,最后获取第二触发信号,基于此,确定被触发埋点及相应的埋点元素,从而生成基于埋点生效阶段的埋点触发信息,并将该触发信息传输至服务器来保存。其中,埋点信息是由编辑器在展示获得的页面信息后编辑而成的,并通过服务器发送至IOS-SDK端。服务器用于存储并传输网站内各页面的页面结构信息、各页面内的已创建埋点的埋点信息(包括埋点关联属性信息)和各页面内的已创建埋点的埋点触发信息等。
图1是本申请实施例的基于IOS-SDK的可视化数据采集方法的步骤图。下面参考图1对本发明所述的基于JS-SDK端的可视化数据采集方法(即可视化数据采集***的实现方法)进行详细说明。
如图1所示,步骤S110,进入埋点编辑阶段,IOS-SDK端接收由服务器发送的页面信息获取指令,并将页面信息通过服务器反馈至编辑器;步骤S120,IOS-SDK端获取对当前页面进行埋点编辑后得到的埋点信息,并将当前埋点信息绑定到当前页面,从而定位出一个或多个埋点元素,其中,此处的埋点信息是由编辑器在展示其获得的页面信息后编辑而成的,并通过服务器将编辑好的埋点信息发送至IOS-SDK端;步骤S130,IOS-SDK端获取第一触发信号,并利用该第一触发信号触发当前埋点,从而生成埋点触发信息,并将当前基于埋点编辑阶段的埋点触发信息发送至编辑器,以由编辑器根据埋点触发信息来确认出当前埋点对应的埋点元素(即能够将当前埋点进行触发的埋点元素),从而完成页面埋点的创建,此时,埋点编辑阶段结束。这样,通过上述步骤S110~步骤S130完成了创建页面埋点的操作。
继续参考图1,在完成当前页面的埋点部署任务后,进入到埋点生效阶段,步骤S140使用浏览器再次访问当前页面,IOS-SDK端从服务器获取当前页面内所有已创建(已部署)的埋点对应的埋点信息;步骤S150在埋点生效阶段,IOS-SDK端根据已创建埋点信息来绑定当前页面;步骤S160,IOS-SDK端获取第二触发信号,在根据第二触发信号检测到已部署的埋点被触发后,生成基于埋点生效阶段的埋点触发信息,从而将当前埋点触发信息再发送至服务器,以由服务器保存。这样,通过上述步骤S140~步骤S160完成了将已部署的埋点下发到全网IOS终端(例如:手机),并在埋点被触发后采集埋点触发信息的过程,从而实现基于编辑器的可视化数据采集方案。
图2是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点编辑阶段的具体流程图。下面结合图1和图2,对本发明实施例所述的可视化数据采集方法的埋点编辑阶段的流程进行详细说明。
如图2所示,步骤S201,启动编辑器,编辑器通过ws方式连接到服务端,并将编辑器设备信息发送至服务器,步骤S202,IOS-SDK端通过ws方式连接到服务端,并将IOS设备信息发送至服务器。由于IOS设备(IOS终端)中安装了SDK程序,因此,步骤S202的一个具体示例中,IOS终端用户摇动终端设备后,即可触发IOS-SDK端通过ws方式连接到服务器端,并上报IOS设备信息。接着,步骤S203服务器端将IOS-SDK端传输的IOS设备信息发送到编辑器,步骤S204编辑器展示当前IOS设备信息,并(由编辑器用户)选中当前IOS设备后,编辑器向服务器端发送选中设备信息,从而步骤S205服务器端在接收到关于当前IOS设备信息的选中设备信息时,向当前被选中的IOS设备发送获取页面信息(页面结构)的指令,从而进入到步骤S206中。由此,通过步骤S201~步骤S205完成了IOS-SDK端、编辑器和服务器端之间的连接通讯过程,并在三者连接完成后,由服务器向IOS-SDK端发送页面信息获取指令。
具体地,在步骤S205中,编辑器用户在选中当前IOS设备后,服务器端会向IOS-SDK端发送页面信息获取指令。其中,在本发明实施例中,页面信息获取指令的格式的一个具体示例如下所示:
其中,type字段表示当前指令的类型,page_config字段的值为一个数组,每个数组元素代表一种页面元素,当前指令中包含有需要获取当前页面元素的信息内容、元素信息的属性、以及元素信息的获取方式。例如:想要获取页面中的UIButtonn元素,并获取UIButtonn元素的title属性、以及通过调用该元素对象的title方法来获取。
步骤S206,IOS-SDK端接收到页面信息获取指令后,将页面信息发送至服务器端,而后,步骤S207服务器端在接收到页面信息后,将当前页面信息传输至编辑器,以有编辑器载入当前页面信息后,对当前页面信息进行展示。
具体地,在步骤S206中,IOS-SDK端在接收到页面信息获取指令后,IOS-SDK端通过遍历当前页面内的各个元素,封装出页面信息的结果。其中,在本发明实施例中,页面信息的格式内包含如下字段:type字段表示需要告知服务器端该消息为页面信息;pages是一个数组,每个数组元素代表一个根(当前可能有多个根展示,比如:在多window情况下,则为两个根),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是一个数组,在元素定位中也会用到,每个数组元素代表一个页面元素,从下到上依次为该元素和该元素的父元素一直到根元素。这样,本发明实施例中的整个页面结构为一个树形拓扑结构,代表了各个页面元素之间的父子关系。
在编辑器展示出当前页面信息后,进入到步骤S208中。步骤S208由(编辑器用户)使用编辑器圈选页面元素的方式对当前页面的埋点进行编辑,生成相应的埋点信息,(保存后)将当前编辑好的埋点信息发送给服务器,以由服务器保存当前页面内已编辑埋点的埋点信息。具体地,在步骤S208中,编辑器用户使用编辑器圈选页面元素的方式来对当前页面的埋点进行编辑从而生成相应的埋点信息,在编辑器对该埋点信息进行保存后,将当前埋点信息发送给服务器。
需要说明的是,在本发明实施例中,编辑器用户所设置的埋点信息中不仅要设置埋点元素信息,还需要设置与埋点元素关联的关联属性信息和埋点元素定位方式等等其他信息。具体地,在完成埋点编辑后,IOS-SDK端会生成相应的埋点信息。此时,生成的埋点信息包括但不限于:一个或多个埋点元素的标识、每个埋点元素在页面结构内的位置、每个埋点元素的类型、每个埋点元素的关联属性(关联属性信息包括该关联元素定位信息、属性类型信息、以及属性内容信息等,例如:当前埋点元素为页面内的A标签,其关联属性可以为A标签的文字内容等与该标签相关的其他内容属性)、埋点元素的定位方式、触发埋点元素和关联元素的最近父元素、埋点生效范围、页面生效范围以及SDK的生效版本。其中,埋点元素的定位方法选自location定位、按属性定位和同级元素定位中的一种或几种的组合。
进一步,在本发明实施例中,关联属性可支持布尔类型、字符串类型、数字类型、文本类型中的一种或几种的组合。
进一步,在本发明实施例中,元素的关联属性是支持用户自定义的正则表达式筛选。
这样,本发明实施例所生成的埋点信息不仅仅包含有页面元素信息,更包含有多种其他类型的信息,使得埋点创建后所能采集到该埋点处种类更为丰富的采集数据,为后续基于埋点采集结果的数据分析过程提供种类范围更广的数据资料,从而分析出更为准确的用户需求。
在服务器接收到编辑器发送的针对当前页面已编辑好的埋点信息后,进入到步骤S209中。步骤S209服务器端将当前接收到的埋点信息保存到数据库中,并将当前埋点标记为非部署状态,同时,将当前接收到的埋点信息发送到IOS-SDK端,从而进入到步骤S210中。
步骤S210,IOS-SDK端会根据当前接收到的埋点信息进行解析,从而根据当前埋点信息,绑定当前页面的埋点元素。在步骤S210中,该绑定过程,会按照步骤S208中用户所设置的埋点元素定位方式来进行页面元素的绑定,此时,会得到一个或多个已定位的埋点元素,最后,在IOS-SDK端将这些定位完成的埋点元素展示出来后,从而进入到步骤S211中。
步骤S211,IOS-SDK端获取第一触发信号,并利用该信号触发当前埋点,从而生成埋点触发信息,而后将当前生成的埋点触发信息发送至服务器端,从而进入到步骤S212中。在本发明实施例中,第一触发信号是基于埋点编辑阶段下的用户触发步骤S210得到的已绑定埋点元素的信号。更进一步地说,本发明实施例使用基于OC的runtime机制对第一触发信号所指示的拦截动作进行识别。其中,第一触发信号选自手势动作、点击信号、语音信号等不同模态中的一种。需要说明的是,本发明中所述的触发信号的类型包括但不限于上述手势动作、点击、语音等形式,只要是能够有指向性的明确具体的页面元素即可。另外,在本发明实施例中,埋点触发信息包括埋点与能够触发该埋点的埋点元素之间的对应关系、当前埋点信息、埋点触发时刻、当前事件坐标、当前设备信息、埋点的属性信息、web页面信息等。
需要说明的是,埋点为非部署状态下(埋点编辑阶段),需要在展示出步骤S210中的已定位埋点元素后,由IOS-SDK端用户通过第一触发信号确定出最终触发当前埋点的一个或多个埋点元素,从而生成相应的埋点触发信息。
步骤S212服务器端在接收到当前基于埋点触发阶段的埋点触发信息后,将当前基于埋点触发阶段的埋点触发信息发送至编辑器,步骤S213编辑器接收来自服务器端的当前基于埋点触发阶段的埋点触发信息,生成触发埋点的提示信息,此时,编辑器用户通过对当前提示信息的确认,来确定出定位当前埋点元素的埋点操作已成功,从而进入到步骤S214中。
最后,步骤S214在埋点成功后,编辑器向服务器端发送变更埋点部署状态通知,使得服务器端在接收到变更埋点部署状态通知后,将当前埋点的状态从非部署状态转换为部署状态。在一个实施例中,IOS-SDK端会在生成埋点触发信息并通过服务器发送至编辑器后,使得编辑器在提示埋点触发后生成变更埋点部署状态通知,由编辑器用户通过点击编辑器的部署按钮来控制编辑器向服务端发送当前埋点部署状态通知。此时,服务器端在接收到当前埋点部署状态通知后,将当前埋点的状态从非部署状态转换为部署状态。
这样,通过上述步骤S201~步骤S214便完成了整个埋点编辑阶段。
图3是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点生效阶段的具体流程图。下面结合图1和图3,对本发明实施例所述的可视化数据采集方法的埋点生效阶段的流程进行详细说明。需要说明的是,在埋点生效阶段,IOS-SDK端会直接与服务器进行通讯。
由于IOS设备上集成了SDK,因此,如图3所示,步骤S301会通过对IOS设备上集成了的SDK进行程序冷启动操作,IOS-SDK端会通过Http方式从服务器端获取在服务器数据库存储的当前页面内已部署(已创建)的埋点对应的埋点信息,从而进入到步骤S302中。
步骤S302,IOS-SDK端根据接收到的当前页面内所有已创建埋点对应的埋点信息,将当前这些埋点信息绑定到当前页面。此时,IOS-SDK端对根据已绑定目标埋点元素形成的事件触发机制进行拦截,以等待并接收用户的第二触发信号。
在步骤S302中,首先(步骤S3021,未图示)解析当前页面所涉及的已创建埋点信息,即解析接收到的埋点信息,而后,(步骤S3022,未图示)按照埋点信息中的已定义的元素定位方式,对目标埋点元素进行定位,并获取目标埋点元素的相关属性。
下面先对IOS-SDK端的埋点信息解析过程的实现方法进行说明。在编辑器保存当前已编辑的埋点信息后,服务器将已保存的当前页面内所有已创建的埋点信息发送至IOS-SDK端。其中,上述过程中IOS-SDK端接收到的埋点信息的格式内包含如下字段:id表示代表埋点元素身份的埋点元素标识;event_type表示当前埋点的类型;location表示埋点元素在页面结构中所处的位置;related字段表示埋点元素对应的关联属性,是一个数组,意味着可以上报多个属性。prop_name用来标识是哪一种属性,pro_type为属性类型,该字段为一个数组,可以代表多个属性,每个数据位表示一个属性;key字段表示触发埋点后上报数据中标识该属性(即埋点元素的被触发标志);target字段表示关联元素属性的定位信息,是触发埋点元素和关联元素有最近的父元素;step字段表示埋点触发元素向该父元素回溯的步数,回溯到该父元素后再通过location字段定位到关联元素;props_binding字段表示按属性定位元素;binding_range字段代表指定的埋点生效范围;pages字段表示生效的页面;versions字段表示SDK的生效版本。
在对当前埋点信息进行解析后,IOS-SDK端会按照埋点信息中的元素定位方式来对当前页面进行页面埋点元素定位处理,从而得到相应的目标埋点元素。在本发明实施例中,由于元素定位方式是一种或多种定位方式的组合,因此,如果IOS-SDK端解析出的元素定位方式仅为一种,那么利用location定位方式、或按属性定位方式、或同级元素定位方式对页面埋点元素进行定位,得到相应方式的定位结果,即目标埋点元素。
另外,如果IOS-SDK端解析出的元素定位方式为多种,那么先分别利用相应的已定义方式对当前页面的埋点元素进行定位,在每种定位处理后得到的埋点元素定位结果均相同时,当前页面的元素定位操作成功,从而将该埋点元素定位结果作为目标埋点元素。此外,在每种定位处理后得到的埋点元素定位结果不一致时,当前页面的元素定位操作失败,此时,需要对用户进行相应的提示,以重新进行埋点编辑。
图4是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点生效阶段内location定位方法的实现原理示例图。下面参考图4,对本发明实施例中的location定位方式的在IOS-SDK端实现原理进行说明。
location定位是通过匹配拓扑位置定位页面元素,将当前页面的页面结构抽象为树形结构,如图4的左图所示,当前页面的页面结构为页面树形结构。如图4的右图展示了埋点信息内所含有的location字段,该字段表示以new_path定位方式定义为当前埋点的预设定位方式。
如图4所示,IOS-SDK端通过事件拦截机制对来自用户的触发信号进行识别,当用户输入的触发信号指向(点击)控件7的页面元素时,IOS-SDK端首先捕获7元素,从7节点开始向上进行节点比较,匹配到元素7(将元素的属性,如元素名字name、在父元素中的位置index、元素类型等,与location数组中子元素响应信息做对比)如果匹配成功,继续向上找父元素匹配,中途有不匹配的节点即告匹配失败,直到location字段中最后的节点1匹配成功,即定位到最终埋点元素。由此,便得到了location定位方式的埋点元素定位结果。
下面参考对本发明实施例中的按属性定位方式的在IOS-SDK端的实现原理进行说明。
页面元素绑定方式是否预先定义了按属性定位方式,是需要依据埋点信息中的props_binding字段来确定的,这种定位方式忽略了元素在页面结构中的位置,props_binding字段在IOS-SDK端的具体实现方法的一个示例,如下所示:
IOS-SDK端在通过事件拦截机制,拦截到来自用户的触发信号所指向的元素,如果当前元素的类型(class)为ANSButton即匹配成功。在按属性定位方式中,可能有多个页面元素匹配成功,因此,如果点击这些元素则都会触发该埋点。其中,prop_name的值是枚举类型,该字段的一个具体示例,如下所示:
上述示例表示当前页面所有文本内容为“触发事件”的元素都会匹配成功。这些为“触发事件”的元素都会触发当前埋点。此时,这些为“触发事件”的元素即为当前按属性定位方式的埋点元素定位结果。
进一步,在一个实施例中,如果埋点信息中同时指定了按location和按属性两种定位方式,则IOS-SDK端会同时执行以上两种定位算法,直到每种方式得到的元素定位结果全部都匹配才为页面定位成功。
按location定位的算法优点是定位精确,能唯一定位到目标元素,缺点是页面结构变化后就不能匹配,如:页面改版后会导致埋点触发不成功。按属性定位可以解决这个问题,无论元素的位置如何变化,只要属性(类型、文本)不变就能成功定位,缺点是可能定位多个元素(如果用户就是希望定位多个元素,则不是缺点)。因此,在编辑埋点时,灵活使用这两种定位方式能满足复杂的业务场景。
图5是本申请实施例的基于IOS-SDK的可视化数据采集方法在埋点生效阶段内同级元素定位方法的实现原理示例图。同级元素定位方式是用来满足列表类元素的埋点需求的。图5展示了典型的列表类元素,子元素数量不固定,滑动列表时,采用使用了元素复用技术(即移除不可见的元素,将该元素外观修改后再添加进列表,从而实现滑动的视觉效果,当前支持的此类元素包括UITableView、UICollectionView、以及前述两种元素的子类元素)。如果用户希望统计zan-1的点击情况、第1行的点击情况、或者所有行的点击情况,则需要使用同级定位功能。
下面参考图5,对本发明实施例中的同级元素定位方式的在IOS-SDK端的实现原理进行说明。在同级元素定位方式中,所定位到的埋点元素定位结果包括两类:列表固定行埋点和列表同级埋点。
在列表固定行埋点中,参考图5,例如:用户希望在第一行上进行埋点(即,“zan-0”)。这种情况下服务器端下发的埋点信息中的location字段的格式为:
在列表同级埋点中,如果用户希望将列表类所有zan按钮均作为埋点,并且上报与zan按钮同行的title,这种情况下,服务器下发的埋点信息中的location字段与列表固定行埋点的唯一区别就是没有section、row字段。此时,IOS-SDK端会识别出埋点信息内缺少section、row字段,以此来确定绑定列表下所有符合location匹配的按钮,并将这些按钮的位置对应的元素作为当前同级元素定位方式的埋点元素定位结果。在所有按钮点击后,都会触发当前埋点,从而根据埋点信息内的related字段定位到与本行关联元素位置,获取title(例如:section:0-row:0)属性。
另外,在目标埋点元素定位成功后,本发明实施例在步骤S302中,还会为获取目标埋点元素的关联属性信息。埋点元素关联属性保存埋点信息内的related字段中,以前面的列表同级埋点为例,如果埋点元素为本行按钮,那么该埋点元素的关联属性为本行的title,此时,related字段的一个具体示例如下所示:
如下图5所示,如果埋点触发元素为“zan-0”,IOS-SDK端会根据step字段上溯到其父元素ANSTableViewCell,然后,根据location字段找到元素“section:0-row:0”,从而通过函数getText获取该埋点元素的关联属性:文本。
最后,在步骤S302中,IOS-SDK端还会在成功定位到目标埋点元素和该目标埋点元素的关联属性后,生成相应的埋点生效反馈信息,从而将埋点生效反馈信息发送至服务器内,以使得IOS-SDK端的埋点生效,此时,等待已生效埋点被激活(即等待第二触发信号)。具体地,IOS-SDK端在将埋点生效反馈信息封装好后上报到服务端,埋点生效反馈信息包括:网页端用户识别码、激活时间、被激活的埋点元素及相应的事件等信息。
在完成埋点生效阶段的页面元素绑定处理后,进入到步骤S303中,以等待当前埋点被触发。需要说明的是,在埋点生效阶段,需要在展示出步骤S302中根据服务器端存储的埋点信息,并利用上述预设程序对当前页面进行元素绑定后,从而将埋点编辑阶段对应的当前埋点及相应的埋点元素的对应关系等内容绑定到当前页面,继而等到由IOS-SDK端用户通过第二触发信号对当前页面埋点进行触发。
步骤S303,IOS-SDK端获取第二触发信号,从而进入到步骤S304中。在本发明实施例中,第二触发信号是基于埋点生效阶段下的用户触发步骤S302得到的已绑定埋点元素的信号。更进一步地说,本发明实施例使用基于OC的runtime机制对第二触发信号所指示的拦截动作进行识别。其中,第二触发信号选自手势动作、点击信号、语音信号等不同模态中的一种。需要说明的是,本发明中所述的第二触发信号的类型包括但不限于上述手势动作、点击、语音等形式,只要是能够有指向性的明确具体的页面元素即可。
步骤S304,IOS-SDK端会根据第二触发信号的指示,来确定出被触发埋点以及相应的埋点元素,从而生成基于埋点生效阶段的埋点触发信息,并将当前基于埋点生效阶段的埋点触发信息发送至服务器端,以步骤S305由服务器将接收到的基于埋点生效阶段的埋点触发信息作为当前埋点的数据采集结果保存到数据库中,从而将数据库内的数据内容作为后续埋点分析的数据基础。在步骤S304中,IOS-SDK端持续检测当前埋点是否被触发。更进一步地说,在步骤S304中,通过检测第二触发信号来确定出网站中已生效埋点的页面元素是否被触发,在第二触发信号所指示了当前目标埋点对应的目标埋点元素后,当前埋点被触发;在没有指示埋点元素时,当前页面内的埋点未被触发。
需要说明的是,在本发明实施例中,基于埋点编辑阶段所生成的埋点触发信息与基于埋点生效阶段所生成的埋点触发信息的内容及格式均是一样的,但二者的作用有所差异。具体地,埋点编辑阶段所生成的埋点触发信息,其目的是将IOS-SDK端内的App页面、控件、埋点等信息投射到Web(网页端)编辑器上,Web编辑器在编辑阶段所生成的埋点信息,是在向编辑器端用户显示的基于App页面及控件下的页面信息,并在埋点编辑后得到的埋点信息,然后将埋点信息保存到了服务器上。基于生效阶段所生成埋点触发信息就是IOS-SDK端从服务器拉取埋点编辑阶段所生成的各页面内的已创建埋点信息,然后IOS-SDK端每次获取第二触发信号(用户触发相应事件,如:点击登陆按钮、注册按钮等事件)时,从所有已创建埋点信息中查找与第二触发信号所指向的埋点元素相匹配的内容,信息一致则匹配成功(如:IOS-SDK端点击APP登陆按钮的信息存在于已创建埋点信息中则匹配成功),即埋点触发成功。
进一步,在步骤S304中,IOS-SDK端会根据第二触发信号的指示,从当前页面中的所有已部署埋点中查找出该信号对应的埋点元素,并确定埋点元素所激发的埋点事件,从而生成基于埋点生效阶段下的埋点触发信息。
由此,本发明通过上述步骤S201~步骤S214以及步骤S301~步骤S305完成了基于IOS-SDK端、网站端编辑器和服务器三端之间所构成的基于JS-SDK端的可视化数据采集过程。
另外,为了满足更多业务场景,本发明还提供了一种Hybrid埋点的通讯协议,该通讯过程不仅需要终端(例如:手机)SDK的参与,还需要在已嵌入于终端原生网页的H5页面中加入JS-SDK端的埋点信息。
现在越来越多的互联网产品中嵌入了H5页面。图6是本申请实施例的基于IOS-SDK的可视化数据采集方法中IOS设备嵌入H5页面的场景示意图。图6展示了互联网产品(例如:IOS原生界面)嵌入H5页面的应用场景。
IOS原生页面和H5页面(以IOS WKWebView元素为容器)不在同一个页面结构中,开发语言也不一样,这类场景同样也有埋点统计需求,对于嵌入了H5页面的IOS原生页面的埋点称为Hybrid埋点。
为了满足Hybrid埋点需求,不仅需要IOS端SDK的支持,还需要在H5页面中加入JavaScript SDK(简称JS-SDK),通过两端SDK的数据传输来实现Hybrid埋点,传输的数据主要包括页面结构、埋点信息、跨平台关联属性、埋点触发信息,数据传输采用IOS WKWebView提供的***接口,来执行数据传输协议。这样,通过对Hybrid埋点的通讯协议的定义,实现了在JS-SDK端(即网页端数据采集器,JS-SDK为使用javascript语言编写的数据采集器)、网站编辑器、服务器和IOS-SDK端之间的通信来完成的可视化Hybrid埋点功能。
在本发明实施例所述的Hybrid埋点实施例中,首先,上述四端的可视化埋点中的埋点编辑过程的数据传输通信流程进行说明。
(1)打开埋点编辑器,编辑器通过ws方式将IOS-SDK端连接到服务端;
(2)启动IOS-SDK端的程序,触发IOS-SDK端通过ws方式连接到服务端,上报设备信息;
(3)服务端将IOS-SDK端上报的设备信息发送到编辑器;
(4)编辑器展示设备信息,编辑器用户选中当前终端设备后,发送选中设备信息到服务端;
(5)服务端向被选中的设备发送获取页面结构信息的指令;
(6)IOS-SDK端生成当前页面图片和结构(下文简称页面信息)发送到服务端;
(7)服务端将页面信息发送到编辑器,编辑器展示页面信息;
(8)编辑器根据页面信息,通过iframe标签向JS-SDK端嵌入需埋点页面(参考步骤S201);
(9)JS-SDK端开启当前埋点页面的可视化埋点状态(参考步骤S202);
(10)用户使用编辑器通过圈选页面元素的方式编辑埋点,并将当前埋点信息发送给编辑器(参考步骤S203);
(11)编辑器向服务器发送含有当前埋点信息在内的埋点信息保存通知,而后,服务端将埋点信息保存到数据库并标记该埋点为非部署状态,并将当前埋点信息发送至IOS-SDK端(参考步骤S204);
(12)IOS-SDK端将当前接收到的埋点信息绑定到当前页面元素;
(13)IOS-SDK端用户点击页面中已埋点的页面元素,触发埋点,IOS-SDK端将埋点触发信息发送到服务器端;
(14)服务器端将接收到的埋点触发信息发送到编辑器;
(15)编辑器展示埋点触发信息,并确认埋点成功;
(16)编辑器向服务器端发送含有变更埋点部署状态通知的埋点触发信息,从而完成IOS-SDK端的埋点编辑阶段。
(17)编辑器向服务端请求埋点列表(参考步骤S205);
(18)编辑器将埋点列表通过postMessage通信方式发送给JS-SDK端(参考步骤S206);
(19)JS-SDK端将当前埋点列表内的埋点信息绑定到当前页面元素(参考步骤S207);
(20)编辑器切换为测试模式,JS-SDK端选中埋点页面中的已绑定埋点的元素(参考步骤S208);
(21)JS-SDK端在已展示出当前筛选出的埋点元素附近处,展示出埋点触发信息并展示埋点已成功的提示信息(参考步骤S209);
(22)JS-SDK端通过编辑器向服务器端发送变更埋点部署状态通知,从而完成JS-SDK端的埋点编辑阶段(参考步骤S210)。
进一步,在本发明实施例所述的Hybrid埋点实施例中,继续对上述四端的可视化埋点中的埋点生效过程的数据传输通信流程进行说明。
由于IOS-SDK端的埋点生效过程,已在前述内容中进行了说明,故在此不作赘述。
IOS-SDK端在可视化埋点中的生效过程是将已部署的埋点下发到全网终端的过程,其实施流程如下所示:
A、使用浏览器重新访问或者刷新上述当前页面所在网站网页,JS-SDK端通过Http方式从服务器端获取当前页面内已部署的埋点对应的埋点信息;
B、JS-SDK端根据接收到的当前页面内已创建埋点对应的埋点信息,将当前埋点信息绑定到当前页面;
C、JS-SDK端在检测到当前已生效的埋点被触发后,将当前埋点对应的埋点触发信息发送到服务器端;
D、服务器将接收到的埋点触发信息作为当前埋点的数据采集结果保存到数据库中。
在实际应用过程中,JS-SDK端、网站编辑器、服务器和IOS-SDK端会按照上述埋点编辑阶段和埋点生效阶段对应的流程来分别进行JS-SDK端和IOS-SDK端的埋点编辑及生效操作。进一步,在基于上述四端的Hybrid埋点的编辑及生效过程中,需要在上述整体流程实施过程中,改进其中部分步骤即可形成为解决Hybrid埋点问题的完整通讯协议。
进一步,在上述JS-SDK端、网站编辑器、服务器和IOS-SDK端之间进行页面信息内的页面结构信息的传输时,IOS-SDK端编辑埋点前,首先需要将页面信息(包括页面结构)发送到服务器端,如果当前页面信息内包含H5页面,则需要将H5页面信息合并到当前页面中的。
具体地,首先,IOS-SDK端调用基于JS-SDK端的页面信息。其中,述服务器在接收到基于IOS-SDK端的页面信息后,向JS-SDK端发送页面信息获取通知,使得JS-SDK端在该通知的指示下,将相应的页面信息反馈至服务器,并进一步由服务器将基于JS-SDK端的页面信息反馈至IOS-SDK端。然后,IOS-SDK端将基于JS-SDK端的页面信息放入终端网页视窗元素的h5视窗属性内,从而将新的页面信息传输至服务器。这样,当前服务器存储的网站页面信息则是含有H5页面的页面信息,以便于后续被JS-SDK端获取到更新后的页面信息。
举例来说:
1、IOS-SDK端调用JS-SDK的window.AnalysysAgent.getVisualDomList()函数来通知JS-SDK获取页面信息(页面结构),JS-SDK调用IOS-SDK的AnalysysAgentHybrid.onVisualDomList(string)函数返回当前网站的页面信息(页面结构);
2、IOS-SDK将页面信息(页面结构)放入WebView元素的h5_view属性中,从而上传到服务器端。
进一步,在上述JS-SDK端、网站编辑器、服务器和IOS-SDK端之间进行埋点信息的传输时,当解析埋点信息并绑定页面时(涉及上述步骤(12)、(19)、B、S302),如果当前埋点包括Hybrid埋点,或者该埋点是按属性绑定的,那么IOS-SDK端需要将这些埋点信息传输给JS-SDK,由JS-SDK执行H5元素的绑定。
具体地,IOS-SDK端接收含有标记Hybrid埋点的埋点信息,并对Hybrid埋点进行筛选,从而生成针对已筛选出的Hybrid埋点得到新的埋点信息,并通过服务器将新的埋点信息发送至JS-SDK端。其中,由编辑器识别用户编辑的埋点信息,结合从服务器获取到的页面信息,在确定当前编辑的埋点信息中含有Hybrid埋点或该埋点仅以按属性定位方式进行绑定时,在埋点信息中标记出当前埋点为Hybrid埋点,并将更新后(标记后)的埋点信息通过服务器发送至IOS-SDK端。
举例来说:
1、编辑器保存Hybrid埋点时在埋点信息对应的埋点结构中加入is_hybrid字段并设置为1,保存到服务端,再由服务端下发到IOS-SDK;
2、IOS-SDK将Hybrid埋点筛选出来后,将更新后的埋点信息发送给JS-SDK(JS-SDK根据埋点信息内的is_hybrid字段是否为1或者埋点是否只以按属性方式绑定来判断当前埋点是否为Hybrid埋点)。IOS-SDK调用JS-SDK的window.AnalysysAgent.onEventList(event_list)函数来传递含有Hybrid埋点的埋点信息。此外,在IOS-SDK的H5页面加载完成后,JS-SDK也会调用IOS-SDK的AnalysysAgentHybrid.getEventList()接口函数来获取含有Hybrid埋点的埋点信息。
进一步,在上述JS-SDK端、网站编辑器、服务器和IOS-SDK端之间进行埋点信息的传输时,在埋点信息解析并完成页面绑定之后,如果当前埋点为Hybrid埋点则需要关联终端页面元素的关联属性,如果当前埋点为非Hybrid埋点,那么需要关联H5页面元素的关联属性。
具体地,在一个实施例中,(涉及上述步骤(12)、(19)、B、S302)如果在对当前页面的埋点进行绑定时,确定当埋点为Hybrid埋点(JS-SDK根据埋点信息内的is_hybrid字段是否为1或者埋点是否只以按属性方式绑定来判断当前埋点是否为Hybrid埋点),那么将关于当前埋点的关联元素属性通过服务器发送至JS-SDK端,以将含有H5页面元素的关联元素属性作为当前埋点的关联元素属性。
例如:如果当前埋点为Hybrid则关联IOS-SDK端的关联元素属性。其中,related字段的子节点中会包含location字段,JS-SDK通过此字段判断关联到终端页面元素的属性,在事件触发时,将调用IOS-SDK端的AnalysysAgentHybrid.getProperty(related)函数来获取当前JS-SDK出触发埋点的关联元素属性。
在另一个实施例中,(涉及上述步骤(12)、(19)、B、S302)如果在对当前页面的埋点进行绑定时,确定当埋点为非Hybrid埋点(JS-SDK根据埋点信息内的is_hybrid字段是否为1或者埋点是否只以按属性方式绑定来判断当前埋点是否为Hybrid埋点),那么IOS-SDK在检测到当前埋点触发时,通过服务器向JS-SDK端发送第一通知,并通过服务器获得含有当前埋点的关联元素属性信息的埋点信息。其中,JS-SDK端在接收到第一通知后,输出含有当前埋点的关联元素属性信息的埋点信息。
例如:如果当前埋点为非Hybrid则需关联H5页面元素。related字段子节点中会包含h5_path字段,IOS-SDK通过此字段判断关联到H5页面元素的属性,在事件触发时,将调用JS-SDK的window.AnalysysAgent.getProperty(related)接口函数来通知IOS-SDK需要获取当前埋点的关联元素属性,JS-SDK调用的AnalysysAgentHybrid.onProperty(prIOS-SDKoperty)接口函数来返回关联属性值。
进一步,在上述JS-SDK端、网站编辑器、服务器和IOS-SDK端之间进行埋点信息的传输时,对上述基于四端的通讯流程还会改进关于埋点触发信息的传输协议(涉及上述步骤(14)、(16)、(21)、C、S203)。具体地,在JS-SDK端检测到当前Hybrid埋点被触发后,通过IOS-SDK端将相应的埋点触发信息传输至服务器。
例如:JS-SDK获取到Hybrid埋点对应的埋点信息后,会执行页面元素与埋点信息的绑定,事件触发后,JS-SDK会调用IOS-SDK的AnalysysAgentTrack接口函数来传输埋点触发信息,此时,IOS-SDK端会将埋点触发信息上报到服务器端。由于数据通过网络发送规定且统一通过IOS-SDK发送数据,JS-SDK没有上报数据功能,所以,IOS-SDK通过与JS-SDK交互接口(AnalysysAgentTrack)获取到需要传输的数据后,需由IOS-SDK上报到服务器端。
本发明公开了一种基于IOS-SDK的可视化数据采集方法及***。该方法及***,首先使用可视化编辑器圈选方式埋点,解决埋点操作复杂,上报数据量大的问题,从而精准定位触发元素;使用属性定位的方式定位页面元素,从而解决了不同版本页面元素位置不一致导致的定位失败的问题、以及使用同级埋点技术简化复用元素埋点(例如:UITableViewCell、UICollectionViewCell等复用元素),继而能够解决复杂业务场景下的埋点方案。另外,本发明能够在埋点信息内嵌入与埋点元素相关的关联属性信息,在埋点处采集更加丰富的数据,进一步,为数据分析阶段提供了更多类型的数据资料,同时能够从多维角度对埋点采集数据进行分析,提高了数据分析结果的准确性。此外,本发明还提供了一种能够对Hybrid埋点进行处理的完整的通讯协议,使得本发明的可视化数据采集方法能够适应于不同业务场合(不同操作***)下的埋点方案。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定结构、处理步骤或材料,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种基于IOS-SDK的可视化数据采集方法,包括:
接收页面信息获取指令,并将页面信息通过所述服务器反馈至编辑器;
获取对当前页面进行埋点编辑后得到的埋点信息,并绑定到当前页面,其中,所述埋点信息是由所述编辑器在展示所述页面信息后编辑而成的,并通过服务器发送至IOS-SDK端;
获取第一触发信号并触发当前埋点,从而生成埋点触发信息,并将所述埋点触发信息发送至所述编辑器,以由所述编辑器确认当前埋点对应的埋点元素,完成页面埋点的创建;
访问当前页面,并从所述服务器获取当前页面内已创建的埋点;
将已创建埋点信息绑定到当前页面;
获取第二触发信号,基于此,确定被触发埋点及相应的埋点元素生成基于埋点生效阶段的埋点触发信息,从而传输至所述服务器。
2.根据权利要求1所述的可视化数据采集方法,其特征在于,所述埋点信息通过圈选页面元素的方式进行编辑。
3.根据权利要求1或2所的可视化数据采集方法,其特征在于,所述埋点信息包括但不限于:埋点元素的标识、埋点元素在页面结构内的位置、埋点元素的类型、埋点元素的关联属性信息、埋点元素的定位方式、埋点生效范围、页面生效范围以及生效版本,其中,所述埋点元素的定位方式选自location定位、按属性定位和同级元素定位中的一种或几种的组合。
4.根据权利要求3所述的可视化数据采集方法,其特征在于,在将已创建埋点信息绑定到当前页面步骤中,包括:
解析当前页面所涉及的已创建埋点信息,按照已定义的元素定位方式,对目标埋点元素进行定位,并获取所述目标埋点元素的关联属性,其中,
在已定义元素定位方式为多种时,若每种定位处理后得到的埋点元素定位结果均相同,则当前页面的元素定位操作成功,从而将该埋点元素定位结果作为所述目标埋点元素;否则,失败。
5.根据权利要求1~4中任一项所述的可视化数据采集方法,其特征在于,使用基于OC的runtime机制对所述触发信号进行识别,所述触发信号选自手势动作、点击信号、语音信号中的一种。
6.根据权利要求1~5中任一项所述的可视化数据采集方法,其特征在于,所述方法还包括:
调用基于JS-SDK端的页面信息,其中,所述服务器在接收到基于IOS-SDK端的页面信息后,向所述JS-SDK端发送页面信息获取通知,使得所述JS-SDK端在该通知的指示下,将相应的页面信息反馈至所述服务器并进一步反馈至IOS-SDK端;
将所述基于JS-SDK端的页面信息放入终端网页视窗元素的h5视窗属性内,从而将新的页面信息传输至所述服务器。
7.根据权利要求6所述的可视化数据采集方法,其特征在于,在埋点绑定过程中,还包括:
接收含有标记Hybrid埋点的埋点信息,并对Hybrid埋点进行筛选,从而生成新的埋点信息,而后通过所述服务器将所述新的埋点信息发送至所述JS-SDK端,其中,
由所述编辑器识别用户编辑的埋点信息,在含有Hybrid埋点或该埋点仅以按属性定位方式进行绑定时,在所述埋点信息中标记出当前埋点为Hybrid埋点,并将更新后的埋点信息通过服务器发送至所述IOS-SDK端。
8.根据权利要求7所述的可视化数据采集方法,其特征在于,
如果当前埋点为Hybrid埋点,那么将关于当前埋点的关联元素属性通过所述服务器发送至所述JS-SDK端;
如果当前埋点为非Hybrid埋点,那么在检测到当前埋点触发时,通过所述服务器向所述JS-SDK端发送第一通知,并通过所述服务器获得含有当前埋点的关联元素属性信息的埋点信息,其中,所述JS-SDK端在接收到所述第一通知后,输出所述含有当前埋点的关联元素属性信息的埋点信息。
9.根据权利要求7或8所述的可视化数据采集方法,其特征在于,在接收Hybrid埋点步骤之后,还包括:
获取所述JS-SDK端在绑定Hybrid埋点并该埋点被触发后生成的埋点触发信息,而后将当前埋点触发信息传输至所述服务器。
10.一种基于IOS-SDK的可视化数据采集***,其特征在于,所述可视化数据采集***执行如权利要求1~9中任一项所述的方法,所述可视化数据采集***包括:
IOS-SDK端,其用于先接收页面信息获取指令,并将页面信息通过所述服务器反馈至编辑器,而后获取对当前页面进行埋点编辑后得到的埋点信息,并绑定到当前页面,然后,获取第一触发信号并触发当前埋点,从而生成埋点触发信息,并将所述埋点触发信息发送至所述编辑器,以由所述编辑器确认当前埋点对应的埋点元素,完成页面埋点的创建,以及访问当前页面,并从所述服务器获取当前页面内已创建的埋点,而后将已创建埋点信息绑定到当前页面,最后获取第二触发信号,基于此,确定被触发埋点及相应的埋点元素生成基于埋点生效阶段的埋点触发信息,从而传输至所述服务器来保存,其中,所述埋点信息是由所述编辑器在展示所述页面信息后编辑而成的,并通过服务器发送至IOS-SDK端;
编辑器,其与所述JS-SDK端和服务器通过WebSocket方式进行通信;和
所述服务器,其与所述JS-SDK端通过Http方式进行通信,用于存储并传输网站页面的页面信息、各页面内的已创建埋点信息和各页面内的已创建埋点的埋点触发信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011023032.5A CN112162740A (zh) | 2020-09-25 | 2020-09-25 | 基于ios-sdk的可视化数据采集方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011023032.5A CN112162740A (zh) | 2020-09-25 | 2020-09-25 | 基于ios-sdk的可视化数据采集方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112162740A true CN112162740A (zh) | 2021-01-01 |
Family
ID=73863882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011023032.5A Pending CN112162740A (zh) | 2020-09-25 | 2020-09-25 | 基于ios-sdk的可视化数据采集方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162740A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286501A (zh) * | 2020-10-13 | 2021-01-29 | 北京易观智库网络科技有限公司 | 对终端设备的页面进行埋点的方法、装置以及存储介质 |
CN113010395A (zh) * | 2021-03-02 | 2021-06-22 | 中国工商银行股份有限公司 | 数据采集方法、装置、设备、介质和程序产品 |
CN114546377A (zh) * | 2022-01-07 | 2022-05-27 | 北京达佳互联信息技术有限公司 | 埋点处理方法、装置、电子设备及存储介质 |
CN114721915A (zh) * | 2021-01-04 | 2022-07-08 | 腾讯科技(深圳)有限公司 | 埋点方法和装置 |
CN115080150A (zh) * | 2022-07-19 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182060A (zh) * | 2018-01-31 | 2018-06-19 | 北京腾云天下科技有限公司 | 一种混合应用的埋点方法、移动终端及*** |
CN108304176A (zh) * | 2017-12-14 | 2018-07-20 | 广东数果科技有限公司 | 一种跨平台移动终端的可视化埋点方法 |
CN109508186A (zh) * | 2018-09-18 | 2019-03-22 | 众安信息技术服务有限公司 | 一种基于iOS可视化埋点的数据采集分析方法及*** |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和*** |
CN110489597A (zh) * | 2018-05-10 | 2019-11-22 | 华为技术有限公司 | 一种获取数据的方法和终端设备 |
CN110908879A (zh) * | 2019-10-16 | 2020-03-24 | 平安普惠企业管理有限公司 | 埋点数据的上报方法、装置、终端和存储介质 |
US20200097259A1 (en) * | 2015-08-12 | 2020-03-26 | Beijing Gaoyi Information Technology Co., Ltd. | Method and system for realizing data tracking by means of software development kit |
CN111581067A (zh) * | 2020-04-21 | 2020-08-25 | 北京龙云科技有限公司 | 一种数据采集方法和装置 |
-
2020
- 2020-09-25 CN CN202011023032.5A patent/CN112162740A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200097259A1 (en) * | 2015-08-12 | 2020-03-26 | Beijing Gaoyi Information Technology Co., Ltd. | Method and system for realizing data tracking by means of software development kit |
CN108304176A (zh) * | 2017-12-14 | 2018-07-20 | 广东数果科技有限公司 | 一种跨平台移动终端的可视化埋点方法 |
CN108182060A (zh) * | 2018-01-31 | 2018-06-19 | 北京腾云天下科技有限公司 | 一种混合应用的埋点方法、移动终端及*** |
CN110489597A (zh) * | 2018-05-10 | 2019-11-22 | 华为技术有限公司 | 一种获取数据的方法和终端设备 |
CN109508186A (zh) * | 2018-09-18 | 2019-03-22 | 众安信息技术服务有限公司 | 一种基于iOS可视化埋点的数据采集分析方法及*** |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和*** |
CN110908879A (zh) * | 2019-10-16 | 2020-03-24 | 平安普惠企业管理有限公司 | 埋点数据的上报方法、装置、终端和存储介质 |
CN111581067A (zh) * | 2020-04-21 | 2020-08-25 | 北京龙云科技有限公司 | 一种数据采集方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286501A (zh) * | 2020-10-13 | 2021-01-29 | 北京易观智库网络科技有限公司 | 对终端设备的页面进行埋点的方法、装置以及存储介质 |
CN114721915A (zh) * | 2021-01-04 | 2022-07-08 | 腾讯科技(深圳)有限公司 | 埋点方法和装置 |
CN114721915B (zh) * | 2021-01-04 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 埋点方法和装置 |
CN113010395A (zh) * | 2021-03-02 | 2021-06-22 | 中国工商银行股份有限公司 | 数据采集方法、装置、设备、介质和程序产品 |
CN114546377A (zh) * | 2022-01-07 | 2022-05-27 | 北京达佳互联信息技术有限公司 | 埋点处理方法、装置、电子设备及存储介质 |
CN115080150A (zh) * | 2022-07-19 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162740A (zh) | 基于ios-sdk的可视化数据采集方法及*** | |
CN107818162B (zh) | 埋点处理方法、装置、计算机设备和存储介质 | |
US11163851B2 (en) | Method, apparatus, computer device and storage medium of page displaying | |
CN110297759A (zh) | 一种制作测试页面脚本的方法、装置、设备及存储介质 | |
CN112162739A (zh) | 基于js-sdk的可视化埋点方法及*** | |
US20110035435A1 (en) | Method and system for converting desktop application to web application | |
US20110209047A1 (en) | System and method to permit language independence for web interfaces | |
CN105068815A (zh) | 页面编辑器交互装置和方法 | |
CN111866158B (zh) | 路由方法、装置、计算机设备和存储介质 | |
CN112817817B (zh) | 埋点信息查询方法、装置、计算机设备和存储介质 | |
CN113296653B (zh) | 一种仿真交互模型构建方法、交互方法及相关设备 | |
CN110244944A (zh) | 一种基于图形化编程的网络安全扫描功能实现方法 | |
CN104572837B (zh) | 在网页上提供认证信息的方法及装置 | |
CN112286501A (zh) | 对终端设备的页面进行埋点的方法、装置以及存储介质 | |
CN110941779A (zh) | 加载页面的方法、装置、存储介质及电子设备 | |
JP5286946B2 (ja) | 情報処理装置、その入力情報の復元方法及び復元プログラム | |
CN114020589B (zh) | 埋点处理方法、装置、计算机设备和存储介质 | |
CN110007842A (zh) | 网页内容选取方法及装置 | |
CN110213211B (zh) | 识别安全下载链接的方法、装置、终端及存储介质 | |
CN110377338A (zh) | 信息标注方法、介质、装置和计算设备 | |
CN113254315B (zh) | 埋点信息的上报方法、埋点方法、装置、介质、电子设备 | |
CN113515715B (zh) | 埋点事件编码的生成方法、处理方法及相关设备 | |
CN114185795A (zh) | 埋点配置方法、装置、电子设备及存储介质 | |
CN112559278B (zh) | 操作数据的获取方法和装置 | |
CN115017429A (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 |