本公开涉及通信技术领域,尤其涉及一种客户端打点上报方法、装置、电子设备和存储介质。
背景技术:
打点是由用户操作引起视图变化后,在记录视图变化时的业务数据信息,利用打点数据能够进行产品和运维的分析。客户端在获得打点数据后,会将打点数据上传至服务器。服务器可以根据客户端上报的数据进行统计,以便根据统计的数据进行数据挖掘。因此,如何避免数据重复上报以保证待上报数据的准确性,是至关重要的。
技术实现要素:
本公开提供一种客户端打点上报方法、装置、电子设备和存储介质,以至少解决相关技术中如何避免数据重复上报以保证待上报事件信息数据的准确性的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种客户端打点上报方法,包括:
在监听到目标页面中发生目标触发事件时,获取所述目标页面之中的目标文档对象模型dom节点,其中,所述目标文档对象模型dom节点中包括第一属性,所述第一属性用于表示需要打点的参数;
识别所述目标文档对象模型dom节点之中是否含有第二属性,其中,所述第二属性用于表示已发送打点日志;
响应于所述目标文档对象模型dom节点之中未含有所述第二属性,根据所述第一属性获取对应的待上报数据;以及
根据所述待上报数据生成对应的日志信息,并将所述日志信息发送给服务器。
在本公开一些实施例中,在将所述日志信息发送给服务器时,所述方法还包括:
将所述第二属性添加至所述目标文档对象模型dom节点之中。
在本公开一些实施例中,所述目标触发事件包括:
页面滚动触发事件、点击触发事件中的任意一种。
在本公开实施例中,所述目标触发事件为所述页面滚动触发事件;所述识别所述目标文档对象模型dom节点之中是否含有第二属性,包括:
识别所述目标文档对象模型dom节点的位置是否在可视窗口内;
响应于所述目标文档对象模型dom节点的当前位置在可视窗口内,识别所述目标文档对象模型dom节点之中是否含有第二属性。
在本公开实施例中,所述目标文档对象模型dom节点为多个;所述识别所述目标文档对象模型dom节点之中是否含有第二属性,包括:
针对每个所述目标文档对象模型dom节点,识别当前目标dom节点的位置是否在可视窗口内;
如果所述当前目标dom节点的位置在可视窗口内,则识别所述当前目标dom节点之中是否含有第二属性。
在本公开的一些实施例中,所述获取所述目标页面之中的目标文档对象模型dom节点,包括:
获取所述目标页面之中的所有文档对象模型dom节点;
从所述所有文档对象模型dom节点中,找出包含有所述第一属性的dom节点;
将所述包含有所述第一属性的dom节点确定为所述目标文档对象模型dom节点。
根据本公开实施例的第二方面,提供一种客户端打点上报装置,包括:
第一获取单元,被配置为在监听到目标页面中发生目标触发事件时,获取所述目标页面之中的目标文档对象模型dom节点,其中,所述目标文档对象模型dom节点中包括第一属性,所述第一属性用于表示需要打点的参数;
识别单元,被配置为识别所述目标文档对象模型dom节点之中是否含有第二属性,其中,所述第二属性用于表示已发送打点日志;
第二获取单元,被配置为响应于所述目标文档对象模型dom节点之中未含有所述第二属性,根据所述第一属性获取对应的待上报数据;
生成单元,被配置为根据所述待上报数据生成对应的日志信息;以及
发送单元,被配置为并将所述日志信息发送给服务器。
在本公开一些实施例中,所述装置还包括:
添加单元,被配置为在所述发送单元将所述日志信息发送给服务器时,将所述第二属性添加至所述目标文档对象模型dom节点之中。
在本公开一些实施例中,所述目标触发事件包括:
页面滚动触发事件、点击触发事件中的任意一种。
在本公开一些实施例中,所述目标触发事件为所述页面滚动触发事件;所述识别单元具体被配置为:
识别所述目标文档对象模型dom节点的位置是否在可视窗口内;
响应于所述目标文档对象模型dom节点的当前位置在可视窗口内,识别所述目标文档对象模型dom节点之中是否含有第二属性。
在本公开一些实施例中,所述目标文档对象模型dom节点为多个;所述识别单元具体被配置为:
针对每个所述目标文档对象模型dom节点,识别当前目标dom节点的位置是否在可视窗口内;
如果所述当前目标dom节点的位置在可视窗口内,则识别所述当前目标dom节点之中是否含有第二属性。
在本公开一些实施例中,所述第一获取单元具体被配置为:
获取所述目标页面之中的所有文档对象模型dom节点;
从所述所有文档对象模型dom节点中,找出包含有所述第一属性的dom节点;
将所述包含有所述第一属性的dom节点确定为所述目标文档对象模型dom节点。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现前述第一方面所述的客户端打点上报方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行前述第一方面所述的客户端打点上报方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行上述第一方面所述的客户端打点上报方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
在监听到目标页面中发生目标触发事件时,获取目标页面之中的目标dom节点,其中,目标dom节点中包括第一属性,第一属性用于表示需要打点的参数;识别目标dom节点之中是否含有第二属性,其中,第二属性用于表示已发送打点日志,响应于目标dom节点之中未含有第二属性,根据第一属性获取对应的待上报数据,并根据待上报数据生成对应的日志信息,并将日志信息发送给服务器。由此,本公开实施例通过第一属性从目标页面中找出需要打点的dom节点元素,并通过第二属性来判断dom节点元素是否已向服务器发送过打点日志,从而可以保证dom节点元素的打点数据的上报次数,使其保证上报一次,从而可以避免数据重复上报,从而可以保证上报数据的准确性。另外,在开发阶段,只需将打点数据以属性形式写到页面之中的dom上,即通过在dom节点增加两个属性即可实现页面目标事件触发时发出元素打点且一个元素上报一次,大大降低了开发过程的复杂度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种客户端打点上报方法的流程图。
图2是根据另一示例性实施例示出的一种客户端打点上报方法的流程图。
图3是根据又一示例性实施例示出的一种客户端打点上报方法的流程图。
图4是根据再一示例性实施例示出的一种客户端打点上报方法的流程图。
图5是根据一示例性实施例示出的一种客户端打点上报装置框图。
图6是根据另一示例性实施例示出的一种客户端打点上报装置框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,打点是常用的数据统计的方式之一,是客户端上用于统计用户对感兴趣区域的操作行为的数据上报给服务器的动作。服务器可以根据客户端上报的数据进行统计,以便根据统计的数据进行数据挖掘。可以理解,针对页面的打点方式通常有两种:一种是点击打点方式,另一种是曝光打点方式。其中,针对点击打点方式,当页面发生点击触发事件时,可对该页面进行打点操作;针对滚动打点方式,当页面发生滚动触发事件时,将出现在屏幕可视窗口内的打点元素进行曝光日志的上报。
例如,在日常运营活动实际开发过程中,经常遇到页面高度过长的情况,若想知道该页面中某模块的曝光量,需要实现该模块出现在屏幕可视窗口内发送日志上报请求,来分析用户数据行为。具体方式如下:创建第一列表,该第一列表用于维护需要打点的元素及日志上报参数;创建第二列表,该第二列表用于后续维护已发送日志的打点元素,其中,该第二列表在创建时为空列表。监听页面滚动方法,循环遍历第一列表,对每一个元素进行判断,计算当前元素位置是否在可视窗口内,如果在可视窗口内,则继续判断是否已在第二列表内,如果不在第二列表内,则发送针对该元素的打点日志上报请求,如果在第二列表内,则说明已经发送该元素的曝光点,无需再次发送日志请求。
但是,上述这种打点方式需要维护两个列表,在基于前端组件库vue的项目中,对于子组件内的模块是否在可视窗口内,需要额外判断层级及索引值,开发过程过于复杂且容易出错。
为了解决如何避免数据重复上报以保证待上报数据的准确性,降低开发过程的复杂的问题,本公开提出了一种客户端打点上报方法、装置、电子设备和存储介质。具体地,下面参考附图描述本公开实施例的客户端打点上报方法、装置、电子设备和存储介质。
图1是根据一示例性实施例示出的一种客户端打点上报方法的流程图,如图1所示,该客户端打点上报方法用于本公开实施例的客户端打点上报装置,该客户端打点上报装置被配置为电子设备中。该客户端打点上报方法包括以下步骤。
在步骤s11中,在监听到目标页面中发生目标触发事件时,获取目标页面之中的目标文档对象模型(documentobjectmodel,简称dom)节点。
其中,在本公开实施例中,目标dom节点中可包括但不限于第一属性等。其中,该第一属性用于表示需要打点的参数。
举例而言,在目标页面的开发阶段,在创建该目标页面之中的dom节点时,可将需要打点的参数以属性形式写到该dom节点上,比如,约定属性为kwai-auto-log。作为一种示例,将需要打点的参数以属性形式写到该dom节点上的代码形式可如下表示:
<divkwai-auto-log=“{action:’model1-show’,params:{index:1,type:1}}”></div>。
也就是说,可在目标页面的开发阶段,创建该目标页面的dom节点,根据打点需求将对应的需要打点的参数以属性形式写到dom节点上,这样,通过该属性来表示该dom节点需要进行打点上报,打点的数据即为该属性之中的参数所对应的数据。
作为一种示例,用户在浏览该目标页面时,客户端可对该目标页面进行打点日志上报,此时可监听该目标页面是否发生目标触发事件,在监听到该目标页面中发生目标触发事件时,可获取该目标页面之中所有dom节点,从该所有dom节点中找出所有包含有该第一属性的dom节点,并将该所有包含有该第一属性的dom节点确定为目标dom节点。
也就是说,在监听到该目标页面中发生目标触发事件时,可基于第一属性,从该目标页面之中找出所有需要打点的dom节点,这些需要打点的dom节点即为目标dom节点。
需要说明的是,在本公开一些实施例中,该目标页面可以是html(hypertextmarkuplanguage,超文本标记语言)页面,或者,h5(hypertextmarkuplanguage5,html5)页面。作为一种示例,该目标页面可为h5页面。
在步骤s12中,识别目标文档对象模型dom节点之中是否含有第二属性,其中,第二属性用于表示已发送打点日志。
在本公开实施例中,可通过利用第二属性来表示已向服务器发送过打点日志。其中,该打点日志可理解为包含有待上报数据的日志。在本步骤中,在获得目标页面之中的目标dom节点时,可判断该目标dom节点之中是否含有第二属性,以判断是否需要对该目标dom节点进行打点日志的上报。
在本公开一个实施例中,若判断该目标dom节点之中包含了第二属性,则说明该目标dom节点之前已经发送过打点日志,此时无需再向服务器发送打点日志。若判断该目标dom节点之中没有第二属性,则说明该目标dom节点尚未发送过打点日志,此时可执行步骤s13。
在步骤s13中,响应于目标文档对象模型dom节点之中未含有第二属性,根据第一属性获取对应的待上报数据。
可选地,在识别目标dom节点之中没有该第二属性时,可说明该目标dom节点尚未发送过打点日志,此时可根据该目标dom节点之中所包含的第一属性中的需要打点的参数,获取该参数对应的待上报数据。作为一种示例,该待上报数据的具体内容可由打点需求来决定,例如,该待上报数据可包括但不限于用户的行为数据等,比如该行为数据可为评论次数、视频观看时长、视频观看次数等中的任意一种或多种。
在步骤s14中,根据待上报数据生成对应的日志信息,并将日志信息发送给服务器。
可选地,基于日志的参数格式,将待上报数据写入到该日志的对应位置,以获得由该待上报数据生成的日志信息,然后,可向服务器发送日志请求,以基于该请求将该日志信息发送给服务器,以使服务器根据该日志信息中的上报数据进行统计,以便根据统计的数据进行数据挖掘。
在本公开一些实施例中,在将日志信息发送给服务器时,可将第二属性添加至目标文档对象模型dom节点之中。也就是说,在将针对该目标dom节点的打点日志发送给服务器的同时,给该目标dom节点增加该第二属性,以便通过该第二属性来表示该目标dom节点已经向服务器发送过打点日志。由此,通过在dom节点上添加用以表示已发送打点日志的第二属性,来保证该dom节点元素的打点数据的上报次数,使其保证上报一次,以避免数据重复上报,从而可以保证上报数据的准确性。
根据本公开实施例的客户端打点上报方法,在监听到目标页面中发生目标触发事件时,获取目标页面之中的目标dom节点,其中,目标dom节点中包括第一属性,第一属性用于表示需要打点的参数;识别目标dom节点之中是否含有第二属性,其中,第二属性用于表示已发送打点日志,响应于目标dom节点之中未含有第二属性,根据第一属性获取对应的待上报数据,并根据待上报数据生成对应的日志信息,并将日志信息发送给服务器。由此,本公开实施例通过第一属性从目标页面中找出需要打点的dom节点元素,并通过第二属性来判断dom节点元素是否已向服务器发送过打点日志,从而可以保证dom节点元素的打点数据的上报次数,使其保证上报一次,从而可以避免数据重复上报,从而可以保证上报数据的准确性。另外,在开发阶段,只需将打点数据以属性形式写到页面之中的dom上,即通过在dom节点增加两个属性即可实现页面目标事件触发时发出元素打点且一个元素上报一次,大大降低了开发过程的复杂度。
需要说明的是,在本公开一些实施例中,目标触发事件可包括页面滚动触发事件、点击触发事件中的任意一种。也就是说,本公开实施例的客户端打点上报方法可适用于页面滚动曝光打点场景,或者,还可适用于页面点击打点场景。为了方便本领域技术人员了解这两种场景的实现,下面将分别给出这两种场景的示例。
图2是根据另一示例性实施例示出的一种客户端打点上报方法的流程图。在本公开实施例中,该目标触发事件为页面滚动触发事件。也就是说,本公开实施例以适用于页面滚动曝光打点场景为例,如图2所示,该客户端打点上报方法包括以下步骤。
在步骤s21中,在监听到目标页面中发生页面滚动触发事件时,获取目标页面之中的目标dom节点。
其中,在本公开实施例中,目标dom节点中包括第一属性,第一属性用于表示需要打点的参数。
在步骤s22中,识别目标dom节点的位置是否在可视窗口内。
可选地,由于曝光打点需要要求该待打点的元素位置出现在客户端屏幕的可视窗口内,即当待打点的元素位置出现在可视窗口内时,触发曝光打点。因此,在获得目标页面之中包含有第一属性的dom节点(即目标dom节点)时,可先判断该目标dom节点的位置是否在屏幕的可视窗口内。
需要说明的是,判断该目标dom节点的位置是否在屏幕的可视窗口内的方式有很多种。作为一种示例,可利用目标dom节点距离顶部的高度减去可视窗口的高度,得到高度差值,然后,判断该高度差值是否小于或等于该目标dom节点本身的高度,若是,则判定该目标dom节点的位置在可视窗口内。可以理解,该目标dom节点的位置是否在屏幕的可视窗口内的判断方式还有其他方式,在此不再赘述。
在本公开实施例中,如果该高度差值大于该目标dom节点本身的高度,则说明该目标dom节点的位置不在可视窗口内,说明该目标dom节点目前尚未具备曝光打点的条件,即此时不对该目标dom节点进行曝光打点,当该目标dom节点在可视窗口内时,需对该目标dom节点进行曝光打点,由此实现了页面滚动元素曝光打点的目的。
在步骤s23中,响应于目标dom节点的当前位置在可视窗口内,识别目标dom节点之中是否含有第二属性,其中,第二属性用于表示已发送打点日志。
也就是说,当目标dom节点的当前位置在可视窗口内时,可判断该目标dom节点之中是否含有用以表示已发送过打点日志的第二属性。在本公开一些实施例中,如果判断该目标dom节点之中含有用以表示已发送过打点日志的第二属性,则说明该目标dom节点已经向服务器发送过打点日志,此时无需再对该目标dom节点进行曝光打点,以避免数据重复上报。
在步骤s24中,响应于目标dom节点之中未含有第二属性,根据第一属性获取对应的待上报数据。
可选地,在判断该目标dom节点之中没有改第二属性时,说明该目标dom节点没有进行过曝光打点,即该目标dom节点尚未向服务器发送过打点日志,此时可根据该目标dom节点之中所包含的第一属性中的需要打点的参数,获取该参数对应的待上报数据。
在步骤s25中,根据待上报数据生成对应的日志信息,并将日志信息发送给服务器。
在步骤s26中,将第二属性添加至目标dom节点之中。
根据本公开实施例的客户端打点上报方法,可以实现页面滚动元素曝光打点的目的,即在监听到目标页面中发生页面滚动触发事件时,通过第一属性从目标页面中找出需要打点的dom节点元素,并通过第二属性来判断dom节点元素是否已向服务器发送过打点日志,可以保证dom节点元素的打点数据的上报次数,使其保证上报一次,从而可以避免数据重复上报,从而可以保证上报数据的准确性。另外,在开发阶段,只需将打点数据以属性形式写到页面之中的dom上,即通过在dom节点增加两个属性即可实现页面目标事件触发时发出元素打点且一个元素上报一次,大大降低了开发过程的复杂度。
图3是根据又一示例性实施例示出的一种客户端打点上报方法的流程图。在本公开实施例中,目标文档对象模型dom节点为多个,此时可逐个依次判断每个目标dom节点是否满足曝光打点的条件,若满足,则对当前目标dom节点进行曝光打点,若不满足,则无需对当前目标dom节点的打点数据进行上报操作。具体而言,如图3所示,该客户端打点上报方法包括以下步骤。
在步骤s31中,在监听到目标页面中发生页面滚动触发事件时,获取目标页面之中的多个目标dom节点。
其中,在本公开实施例中,每个目标dom节点中包括第一属性,第一属性用于表示需要打点的参数。
在步骤s32中,针对每个目标dom节点,识别当前目标dom节点的位置是否在可视窗口内。
可选地,遍历该多个目标dom节点,判断当前目标dom节点的位置是否在可视窗口内,如果当前目标dom节点的位置不在可视窗口内,则读取下一个目标dom节点,即判断下一个目标dom节点的位置是否在可视窗口内。如果当前目标dom节点的位置在可视窗口内,则执行步骤s33。
在步骤s33中,识别当前目标dom节点之中是否含有第二属性。
也就是说,在判断当前目标dom节点的位置在可视窗口内时,判断该当前目标dom节点之中是否含有第二属性。如果判断该当前目标dom节点之中含有第二属性,则说明该当前目标dom节点已经发送过打点日志,此时可读取下一个目标dom节点,即判断下一个目标dom节点的位置是否在可视窗口内。如果判断该当前目标dom节点之中没有第二属性,则执行步骤s34。
在步骤s34中,根据第一属性获取对应的待上报数据。
也就是说,当判断当前目标dom节点的位置在可视窗口内,且该当前目标dom节点之中没有该第二属性时,可根据该当前目标dom节点之中第一属性中的打点参数获取对应的待上报数据。
在步骤s35中,根据待上报数据生成对应的日志信息,并将日志信息发送给服务器。
也就是说,可将针对该当前目标dom节点的待上报数据以日志的形式发送给服务器,以完成该当前目标dom节点的曝光打点。
在步骤s36中,将第二属性添加至当前目标dom节点之中。
也就是说,在将该当前目标dom节点的打点日志信息发送给服务器时,可给该当前目标dom节点之中增加第二属性,以表示该当前目标dom节点已经进行过曝光打点,以避免该dom节点重复打点。
根据本公开实施例的客户端打点上报方法,在监听到目标页面中发生页面滚动触发事件时,获取目标页面之中的多个目标dom节点,可将多个目标dom节点写入列表以得到dom节点列表,循环遍历该dom节点列表之中的每个目标dom节点,判断当前遍历到的目标dom节点的位置是否在可视窗口内,若不在,则读取下一个目标dom节点,即判断下一个目标dom节点的位置是否在可视窗口内,如果当前目标dom节点的位置在可视窗口内,则判断当前目标dom节点之中是否含有第二属性,若判断该当前目标dom节点之中含有第二属性,则说明该当前目标dom节点已经发送过打点日志,此时可读取下一个目标dom节点,即判断下一个目标dom节点的位置是否在可视窗口内;如果判断该当前目标dom节点之中没有第二属性,则实现对该当前目标dom节点进行曝光打点,即将该当前目标dom节点的打点数据以日志的形式发送给服务器。如果dom节点列表之中的每个目标dom节点都被读取过,则说明已完成该目标页面的滚动曝光打点,此时可退出流程。由此,通过找出目标页面之中所有有第一属性的dom节点,并依次逐个判断该dom节点是否含有第二属性,若没有第二属性则对当前dom节点进行打点日志的上报,即通过第一属性从目标页面中找出所有需要打点的dom节点元素,并通过第二属性来分别判断dom节点元素是否已向服务器发送过打点日志,可以保证dom节点元素的打点数据的上报次数,使其保证上报一次,从而可以避免数据重复上报,从而可以保证上报数据的准确性。
图4是根据再一示例性实施例示出的一种客户端打点上报方法的流程图。在本公开实施例中,目标触发事件为点击触发事件。也就是说,本公开实施例以适用于页面点击打点场景为例,如图4所示,该客户端打点上报方法包括以下步骤。
在步骤s41中,在监听到目标页面中发生点击触发事件时,获取目标页面之中的目标文档对象模型dom节点。
其中,在本公开实施例中,目标文档对象模型dom节点中包括第一属性,第一属性用于表示需要打点的参数。
在步骤s42中,识别目标文档对象模型dom节点之中是否含有第二属性,其中,第二属性用于表示已发送打点日志。
在步骤s43中,响应于目标文档对象模型dom节点之中未含有第二属性,根据第一属性获取对应的待上报数据。
在步骤s44中,根据待上报数据生成对应的日志信息,并将日志信息发送给服务器。
在本公开一些实施例中,在将日志信息发送给服务器时,可将第二属性添加至目标文档对象模型dom节点之中。
根据本公开实施例的客户端打点上报方法,可以实现页面点击打点的目的,即在监听到目标页面中发生点击触发事件时,通过第一属性从目标页面中找出需要打点的dom节点元素,并通过第二属性来判断dom节点元素是否已向服务器发送过打点日志,可以保证dom节点元素的打点数据的上报次数,使其保证上报一次,从而可以避免数据重复上报,从而可以保证上报数据的准确性。另外,在开发阶段,只需将打点数据以属性形式写到页面之中的dom上,即通过在dom节点增加两个属性即可实现页面目标事件触发时发出元素打点且一个元素上报一次,大大降低了开发过程的复杂度。
图5是根据一示例性实施例示出的一种客户端打点上报装置框图。参照图5,该装置包括:第一获取单元501、识别单元502、第二获取单元503、生成单元504和发送单元505。
具体地,第一获取单元501被配置为在监听到目标页面中发生目标触发事件时,获取目标页面之中的目标文档对象模型dom节点,其中,目标文档对象模型dom节点中包括第一属性,第一属性用于表示需要打点的参数。在本公开实施例中,目标触发事件可包括页面滚动触发事件、点击触发事件中的任意一种。
作为一种示例,第一获取单元501获取目标页面之中的所有文档对象模型dom节点,并从所有文档对象模型dom节点中,找出包含有第一属性的dom节点,并将包含有第一属性的dom节点确定为目标文档对象模型dom节点。
识别单元502被配置为识别目标文档对象模型dom节点之中是否含有第二属性,其中,第二属性用于表示已发送打点日志。在本公开一些实施例中,目标触发事件为页面滚动触发事件。其中,在本公开实施例中,识别单元502具体被配置为:识别目标文档对象模型dom节点的位置是否在可视窗口内;响应于目标文档对象模型dom节点的当前位置在可视窗口内,识别目标文档对象模型dom节点之中是否含有第二属性。
在本公开实施例中,当目标文档对象模型dom节点为多个时,识别单元502识别目标文档对象模型dom节点之中是否含有第二属性的具体实现过程可如下:针对每个目标文档对象模型dom节点,识别当前目标dom节点的位置是否在可视窗口内;如果当前目标dom节点的位置在可视窗口内,则识别当前目标dom节点之中是否含有第二属性。
第二获取单元503被配置为响应于目标文档对象模型dom节点之中未含有第二属性,根据第一属性获取对应的待上报数据。
生成单元504被配置为根据待上报数据生成对应的日志信息。
发送单元505被配置为并将日志信息发送给服务器。
在本公开一些实施例中,如图6所示,该客户端打点上报装置还可包括:添加单元606。添加单元606被配置为在发送单元605将日志信息发送给服务器时,将第二属性添加至目标文档对象模型dom节点之中。其中,图6中601-605和图5中501-505具有相同功能和结构。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。根据本公开实施例的客户端打点上报装置,通过在监听到目标页面中发生目标触发事件时,获取目标页面之中的目标dom节点,其中,目标dom节点中包括第一属性,第一属性用于表示需要打点的参数;识别目标dom节点之中是否含有第二属性,其中,第二属性用于表示已发送打点日志,响应于目标dom节点之中未含有第二属性,根据第一属性获取对应的待上报数据,并根据待上报数据生成对应的日志信息,并将日志信息发送给服务器。由此,本公开实施例通过第一属性从目标页面中找出需要打点的dom节点元素,并通过第二属性来判断dom节点元素是否已向服务器发送过打点日志,从而可以保证dom节点元素的打点数据的上报次数,使其保证上报一次,从而可以避免数据重复上报,从而可以保证上报数据的准确性。另外,在开发阶段,只需将打点数据以属性形式写到页面之中的dom上,即通过在dom节点增加两个属性即可实现页面目标事件触发时发出元素打点且一个元素上报一次,大大降低了开发过程的复杂度。
为了实现上述实施例,本公开还提供了一种电子设备,图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图7,电子设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(i/o)的接口712,传感器组件714,以及通信组件716。
处理组件702通常控制电子设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704被配置为存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
多媒体组件708包括在所述电子设备700和用户之间的提供一个输出接口的触控显示屏。在一些实施例中,触控显示屏可以包括液晶显示器(lcd)和触摸面板(tp)。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当电子设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(mic),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
i/o接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如所述组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700一个组件的位置改变,用户与电子设备700接触的存在或不存在,电子设备700方位或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件716被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述客户端打点上报方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备700的处理器执行时,使得电子设备700能够执行一种客户端打点上报方法。
一种计算机程序产品,当计算机程序产品中的指令由电子设备700的处理器执行时,使得电子设备700能够执行一种客户端打点上报方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
1.一种客户端打点上报方法,其特征在于,包括:
在监听到目标页面中发生目标触发事件时,获取所述目标页面之中的目标文档对象模型dom节点,其中,所述目标文档对象模型dom节点中包括第一属性,所述第一属性用于表示需要打点的参数;
识别所述目标文档对象模型dom节点之中是否含有第二属性,其中,所述第二属性用于表示已发送打点日志;
响应于所述目标文档对象模型dom节点之中未含有所述第二属性,根据所述第一属性获取对应的待上报数据;以及
根据所述待上报数据生成对应的日志信息,并将所述日志信息发送给服务器。
2.根据权利要求1所述的客户端打点上报方法,其特征在于,在将所述日志信息发送给服务器时,所述方法还包括:
将所述第二属性添加至所述目标文档对象模型dom节点之中。
3.根据权利要求1所述的客户端打点上报方法,其特征在于,所述目标触发事件包括:
页面滚动触发事件、点击触发事件中的任意一种。
4.根据权利要求3所述的客户端打点上报方法,其特征在于,所述目标触发事件为所述页面滚动触发事件;所述识别所述目标文档对象模型dom节点之中是否含有第二属性,包括:
识别所述目标文档对象模型dom节点的位置是否在可视窗口内;
响应于所述目标文档对象模型dom节点的当前位置在可视窗口内,识别所述目标文档对象模型dom节点之中是否含有第二属性。
5.根据权利要求4所述的客户端打点上报方法,其特征在于,所述目标文档对象模型dom节点为多个;所述识别所述目标文档对象模型dom节点之中是否含有第二属性,包括:
针对每个所述目标文档对象模型dom节点,识别当前目标dom节点的位置是否在可视窗口内;
如果所述当前目标dom节点的位置在可视窗口内,则识别所述当前目标dom节点之中是否含有第二属性。
6.根据权利要求1至5中任一项所述的客户端打点上报方法,其特征在于,所述获取所述目标页面之中的目标文档对象模型dom节点,包括:
获取所述目标页面之中的所有文档对象模型dom节点;
从所述所有文档对象模型dom节点中,找出包含有所述第一属性的dom节点;
将所述包含有所述第一属性的dom节点确定为所述目标文档对象模型dom节点。
7.一种客户端打点上报装置,其特征在于,包括:
第一获取单元,被配置为在监听到目标页面中发生目标触发事件时,获取所述目标页面之中的目标文档对象模型dom节点,其中,所述目标文档对象模型dom节点中包括第一属性,所述第一属性用于表示需要打点的参数;
识别单元,被配置为识别所述目标文档对象模型dom节点之中是否含有第二属性,其中,所述第二属性用于表示已发送打点日志;
第二获取单元,被配置为响应于所述目标文档对象模型dom节点之中未含有所述第二属性,根据所述第一属性获取对应的待上报数据;
生成单元,被配置为根据所述待上报数据生成对应的日志信息;以及
发送单元,被配置为并将所述日志信息发送给服务器。
8.根据权利要求7所述的客户端打点上报装置,其特征在于,还包括:
添加单元,被配置为在所述发送单元将所述日志信息发送给服务器时,将所述第二属性添加至所述目标文档对象模型dom节点之中。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的客户端打点上报方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的客户端打点上报方法。
技术总结