一种页面埋点上报方法、装置、电子设备和存储介质与流程
未命名
07-15
阅读:140
评论:0
1.本技术涉及互联网技术领域,尤其涉及一种页面埋点上报方法、装置、电子设备和计算机存储介质。
背景技术:
2.目前,用户行为的数据分析在互联网产品中是必不可少的一部分,随着越来越多的应用(application,app)采用flutter技术进行开发,数据埋点的需求越来越多。但是flutter作为一种描述性用户界面(user interface,ui)框架,本身并没有提供ui组件的曝光时机,这给数据的埋点带来了挑战,增加埋点成本。
3.相关技术中,开发人员采用全埋点(即自动埋点)方案,该方案的理想状态是开发人员只要接入一次,在后续的需求迭代中就不再需要开发;该方案需要自动采集数据,对于页面、组件等元素需要生成对应的身份标识号(identity document,id);然而,在生成id时会使用到类的名称,以及组件在组件树中的路径,但是这些都很容易随着代码的变更而发生变化,甚至同一个业务场景的组件也会因为条件的不同导致生成不同的id,因此id的不连续性经常发生,而且变更发生后无法及时察觉,导致采集的数据不准确,增加了维护成本。此外,全埋点方案会产生大量的无用数据,增加了数据处理压力。
技术实现要素:
4.本技术实施例提供一种页面埋点上报方法、装置、电子设备和计算机存储介质。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供了一种页面埋点上报方法,应用于页面埋点上报系统,所述系统包括曝光控制器,所述方法包括:
7.确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且所述每一曝光埋点具有唯一的标识信息;
8.利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果;
9.基于所述监听结果,确定所述曝光控制器的当前状态,并根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域;
10.根据所述每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。
11.在一些实施例中,所述根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域,包括:
12.通过afterlayout微件获取所述每一曝光埋点对应的renderbox;
13.通过inheritedscope获取所述每一曝光埋点对应的曝光区域;
14.将所述每一曝光埋点记录到对应的曝光区域中;
15.根据所述曝光控制器的当前状态和所述曝光区域中已记录的每一曝光埋点对应的renderbox,确定所述每一曝光埋点的展示区域。
16.在一些实施例中,在所述曝光埋点为页面曝光埋点的情况下,所述页面曝光埋点
对应的曝光区域为所述曝光控制器,所述根据所述曝光控制器的当前状态和所述曝光区域中已记录的每一曝光埋点对应的renderbox,确定所述每一曝光埋点的展示区域,包括:
17.利用所述曝光控制器启动一个延时任务;
18.在所述延时任务达到延时时长后,确定所述曝光控制器的当前状态是否符合要求;
19.在确定所述曝光控制器的当前状态符合要求的情况下,对所述曝光控制器中已记录的页面曝光埋点进行遍历,并根据遍历到的所述页面曝光埋点对应的renderbox,确定所述页面曝光埋点的展示区域。
20.在一些实施例中,在所述曝光埋点为组件曝光埋点的情况下,所述组件曝光埋点对应的曝光区域为所述页面曝光埋点,所述方法还包括:
21.在确定所述页面曝光埋点的展示区域后,对所述页面曝光埋点中已记录的组件曝光埋点进行遍历,并根据遍历到的所述组件曝光埋点对应的renderbox,确定所述组件曝光埋点的展示区域。
22.在一些实施例中,所述方法还包括:
23.确定与所述组件曝光埋点关联的当前组件;
24.对所述当前组件的后代组件进行命中测试,得到测试结果;
25.基于所述测试结果,完成点击事件的上报。
26.在一些实施例中,所述基于所述测试结果,完成点击事件的上报,包括:
27.在根据所述测试结果,确定所述后代组件中包括可点击组件的情况下,通过自定义的点击手势识别器(tapgesturerecognizer)对所述当前组件的rejectgesture方法进行重写;
28.根据重写后的当前组件的rejectgesture方法,完成点击事件的上报。
29.在一些实施例中,所述利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果,包括:
30.所述曝光控制器通过routeaware接口监听所述每一曝光埋点对应的路由事件,得到所述监听结果。
31.本技术实施例提供一种页面埋点上报装置,应用于页面埋点上报系统,所述系统包括曝光控制器,所述装置包括第一确定模块、获取模块、第二确定模块和上报模块,其中,
32.第一确定模块,用于确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且所述每一曝光埋点具有唯一的标识信息;
33.获取模块,用于利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果;
34.第二确定模块,用于基于所述监听结果,确定所述曝光控制器的当前状态,并根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域;
35.上报模块,用于根据所述每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。
36.本技术实施例提供一种电子设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的页面埋点上报方法。
37.本技术实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的页面埋点上报方法。
38.本技术实施例提供一种页面埋点上报方法、装置、电子设备和计算机存储介,所述方法应用于页面埋点上报系统,所述系统包括曝光控制器,所述方法包括:确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且所述每一曝光埋点具有唯一的标识信息;利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果;基于所述监听结果,确定所述曝光控制器的当前状态,并根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域;根据所述每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。
39.可以看出,本技术实施例中,每个添加至目标页面的曝光埋点均具有唯一的标识信息;即,各曝光埋点的标识信息是预先定义的,无需在埋点过程中自动生成,如此,可以解决相关技术中因自动生成元素id造成的采集数据不准确、维护成本高的问题;此外,由于目标页面的每一曝光埋点是开发者根据产品业务需求主动添加的,因而可以更精确的对目标页面的必要组件进行埋点统计,减少无用数据的上报,降低数据处理的压力,确保数据的稳定性。
附图说明
40.图1为本技术实施例的一种页面埋点上报方法的流程图;
41.图2为本技术实施例的一种目标页面的数据结构示意图;
42.图3为本技术实施例的一种页面埋点上报系统的结构示意图;
43.图4为本技术实施例的一种页面埋点上报装置的组成结构示意图;
44.图5为本技术实施例的一种电子设备的结构示意图。
具体实施方式
45.下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述。
46.以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本技术,并不用于限定本技术。另外,以下所提供的实施例是用于实施本技术的部分实施例,而非提供实施本技术的全部实施例,在不冲突的情况下,本技术记载的技术方案可以任意组合的方式实施。
47.需要说明的是,在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分处理器、部分程序或软件等等)。
48.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、
b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
49.在本技术的一些实施例中,页面埋点上报方法可以利用页面埋点上报装置中的处理器实现,上述处理器可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程逻辑门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。
50.埋点是一种常用数据采集方法,通过在应用的页面中进行埋点,可以获取与页面对应的用户数据。用户数据的准确性在后续的各种决策中具有很重要的意义,保证埋点的正确性非常重要。因此,在应用上线之前,通常需要进行埋点测试。
51.图1为本技术实施例的一种页面埋点上报方法的流程图,如图1所示,该流程可以包括:
52.步骤10:确定添加至目标页面的至少一个曝光埋点。
53.示例性地,目标页面可以是根据产品业务需求定义的flutter页面,产品业务需求表示与互联网产品相关的业务需求;其中,flutter页面的基本构建元素是微件(widget),每个微件又可以包含一个或多个微件,通过微件的层层包裹,最终构造出一颗微件树;即,flutter页面的数据结构是由多个微件组成的微件树,且微件树里面只有包含关系,参见图2。
54.图2为本技术实施例的一种目标页面的数据结构示意图,如图2所示,该结构图包括三个自定义组件:曝光控制器、页面曝光埋和组件曝光埋点,以及flutter sdk提供的官方组件:页面脚手架(scaffold)、多页面视图组件(pageview)和ui组件微件;图中所示组件从上到下是包含关系,下级是上级的子节点。
55.需要说明的是,上述三个自定义组件的基本构建元素都是flutter微件,只需要利用这三个自定义组件各自包裹住需要曝光的微件即可,简单易用;下面分别对这三个自定义组件进行说明。
56.其中,曝光控制器与页面路由是一对一的关系。页面曝光埋点是页面级别的曝光埋点,无从属埋点;在大部分场景也是与页面路由一对一,但是如果采用了多页面视图组件(pageview),则业务上可能会把每个页面(page)元素都视为一个完整页面,该场景就是一个页面路由对应多个页面曝光埋点。组件曝光埋点是页面中的某个元素,从属于页面曝光埋点,即组件曝光埋点是页面内的组件曝光埋点;因为在埋点数据统计时,一般需要把页面中的元素跟页面进行关联;同时组件曝光埋点支持点击埋点,可以实现更精细的埋点统计。
57.本技术实施例中,至少一个曝光埋点中每一曝光埋点是根据产品业务需求定义后,通过开发人员手动添加至目标页面的。
58.示例性地,添加至目标页面的至少一个曝光埋点包括一个曝光埋点和多个曝光埋点的情况;在至少一个曝光埋点为一个曝光埋点的情况下,该曝光埋点为页面曝光埋点;在至少一个曝光埋点为多个曝光埋点的情况下,多个曝光埋点中至少存在一个页面曝光埋,其余曝光埋点可以为组件曝光埋点,也可以为页面曝光埋点和组件曝光埋点的组合。
59.示例性地,若目标页面为一个购物车页面,该页面整体需要进行曝光埋点,即,需要对应添加一个页面曝光埋点;此外,购物车页面中的各个商品也需要进行曝光埋点,即,
需要对应添加各个组件曝光埋点。
60.需要说明的是,每一曝光埋点在添加至目标页面前,都会定义一个唯一的标识信息,用于标识该曝光埋点,例如,可以是id,一般可以用字符串表示。
61.示例性地,若目标页面为一个购物车页面,页面曝光埋点的id可以定义为page_id_shopping_trolley,后续在页面曝光埋点的构造函数中传入该id,当购物车页面展示后,页面曝光埋点便会上报相应的埋点数据,并携带自身id。
62.步骤11:利用曝光控制器获取每一曝光埋点对应的路由事件的监听结果。
63.在一些实施例中,利用曝光控制器获取每一曝光埋点对应的路由事件的监听结果,可以包括:曝光控制器通过routeaware接口监听每一曝光埋点对应的路由事件,得到监听结果。
64.示例性地,routeaware接口为页面路由切换监听接口,是flutter sdk提供的用于监控页面的组件,当页面展示和隐藏时都能监听到对应的路由事件。
65.本技术实施例中,曝光控制器通过routeaware接口监听每一曝光埋点对应的路由事件,进而获取每一曝光埋点对应的路由事件的监听结果。
66.示例性地,监听结果可以包括以下两种:监听到路由的推送(push)消息和未监听到路由的push消息。
67.步骤12:基于监听结果,确定曝光控制器的当前状态,并根据曝光控制器的当前状态,确定每个曝光埋点的展示区域;
68.示例性地,基于监听结果,确定曝光控制器的当前状态,可以包括:若基于监听结果,确定监听到路由的push消息,则将曝光控制器的当前状态标记为展示状态;反之,若基于监听结果,确定未监听到路由的push消息,则保持曝光控制器的原有状态不变。
69.在一些实施例中,根据曝光控制器的当前状态,确定每一曝光埋点的展示区域,包括:通过afterlayout微件获取每一曝光埋点对应的renderbox;通过inheritedscope获取每一曝光埋点对应的曝光区域;将每一曝光埋点记录到对应的曝光区域中;根据曝光控制器的当前状态和曝光区域中已记录的每一曝光埋点对应的renderbox,确定每一曝光埋点的展示区域。
70.示例性地,下面以曝光埋点为页面曝光埋点进行说明,在目标页面渲染的布局阶段完成后,页面曝光埋点会通过afterlayout微件获取对应的renderbox,后续,通过renderbox可以计算出页面曝光埋点在屏幕中的位置信息,并根据该位置信息确定页面曝光埋点的展示区域。
71.示例性地,页面曝光埋点会通过inheritedscope获取到对应的曝光区域,并把自己记录到曝光区域中;需要说明的是,页面曝光埋点对应的曝光区域为曝光控制器。
72.进一步地,当曝光控制器确定页面曝光埋点被记录进来后,会根据曝光控制器的当前状态和曝光区域中已记录的页面曝光埋点对应的renderbox,确定每一曝光埋点的展示区域。
73.在一些实施例中,根据曝光控制器的当前状态和曝光区域中已记录的每一曝光埋点对应的renderbox,确定每一曝光埋点的展示区域,可以包括:利用曝光控制器启动一个延时任务;在延时任务达到延时时长后,确定曝光控制器的当前状态是否符合要求;在确定曝光控制器的当前状态符合要求的情况下,对曝光控制器中已记录的页面曝光埋点进行遍
历,并根据遍历到的页面曝光埋点对应的renderbox,确定页面曝光埋点的展示区域。
74.这里,延时任务的延时时长可以根据实际情况对应设置,本技术实施例对此不作限定;例如,延时时长可以设置为10ms。
75.示例性地,在延时任务达到延时时长后,如果曝光控制器的当前状态为展示状态,则确定曝光控制器的当前状态符合要求;反之,如果曝光控制器的当前状态不为展示状态,则确定曝光控制器的当前状态不符合要求。
76.示例性地,在确定曝光控制器的当前状态为展示状态的情况下,利用曝光控制器对已记录的页面曝光埋点进行遍历,并根据遍历到的页面曝光埋点对应的renderbox,确定页面曝光埋点的展示区域。
77.可以理解地,启动延时任务可以降低曝光计算的频次,降低因频繁计算导致的数据不稳定,进而达到降噪目的。
78.在一些实施例中,在曝光埋点为组件曝光埋点的情况下,组件曝光埋点对应的曝光区域为页面曝光埋点,上述方法还可以包括:在确定页面曝光埋点的展示区域后,对页面曝光埋点中已记录的组件曝光埋点进行遍历,并根据遍历到的组件曝光埋点对应的renderbox,确定组件曝光埋点的展示区域。
79.需要说明的是,组件曝光埋点的实现原理和上述页面曝光埋点的实现原理基本类似,在确定页面曝光埋点的展示区域后,即,当页面曝光埋点是否曝光的结果计算完成后,就会触发组件曝光埋点的曝光计算,利用页面曝光埋点对已记录的组件曝光埋点进行遍历。不同点就是,组件曝光埋点在布局之后,会把自己记录到对应的页面曝光埋点中,因为页面曝光埋点不仅是一个曝光元素,同时也是一个曝光区域,继承自exposurescope。
80.示例性地,对于组件曝光埋点在屏幕中展示区域的计算,可以为:组件曝光埋点对应的状态类通过renderbox的localtoglobal方法获取到自身基于屏幕的全局坐标,然后拿到对应的合成层在屏幕中的位置,两者进行与运算,就可以获取到组件曝光埋点的展示区域。如果展示区域与组件曝光埋点自身大小的比例大于展示比例,就认为产生了一次曝光。
81.示例性地,通过renderbox的localtoglobal方法可以拿到组件曝光埋点基于屏幕的全局坐标,但是这个全局坐标可能会超出屏幕,比如瀑布流页面很多view都是在屏幕外面,只有向上滑动才会出现在屏幕中。接着,获取渲染树根view(renderview)的全局坐标,然后与合成层剪切区域(如果有的话)的全局坐标进行区域重叠运算,可以得到组件曝光埋点所在的合成层的展示区域。之后,组件曝光埋点基于屏幕的全局坐标与合成层的展示位置进行区域重叠运算,即对应上述与运算,可以得到组件曝光埋点的真实展示区域。
82.这里,展示比例可以通过exposureconfig的visiblepercent函数进行设置(exposureconfig用于保存全局的配置参数,比如曝光事件回调、展示比例、是否打开调试日志等);对于展示比例的取值,可以根据实际情况对应设置,例如,可以取值为50%。
83.步骤13:根据每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。
84.示例性地,在根据上述步骤得到每一曝光埋点的展示区域后,根据每一曝光埋点的展示区域,确定每一曝光埋点是否在屏幕中,如果确定是,则基于每一曝光埋点的标识信息,上报对应曝光埋点的埋点数据;如果确定否,则当前不进行埋点数据的上报。
85.进一步地,在每次上报埋点数据之后,还可以将埋点数据中及时移除,降低因重复上报造成的数据异常。
86.本技术实施例提供一种页面埋点上报方法,该方法应用于页面埋点上报系统,该系统包括曝光控制器,该方法包括:确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且每一曝光埋点具有唯一的标识信息;利用曝光控制器获取每一曝光埋点对应的路由事件的监听结果;基于监听结果,确定曝光控制器的当前状态,并根据曝光控制器的当前状态,确定每一曝光埋点的展示区域;根据每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。可以看出,本技术实施例中,每个添加至目标页面的曝光埋点均具有唯一的标识信息;即,各曝光埋点的标识信息是预先定义的,无需在埋点过程中自动生成,如此,可以解决相关技术中因自动生成元素id造成的采集数据不准确、维护成本高的问题;此外,由于目标页面的每一曝光埋点是开发者根据产品业务需求主动添加的,因而可以更精确的对目标页面的必要组件进行埋点统计,减少无用数据的上报,降低数据处理的压力,确保数据的稳定性。
87.在一些实施例中,上述方法还可以包括:确定与组件曝光埋点关联的当前组件;对当前组件的后代组件进行命中测试,得到测试结果;基于测试结果,完成点击事件的上报。
88.示例性地,组件曝光埋点可以通过exposureclick实现点击事件的捕获。flutter的点击事件主要分为命中测试、事件分发、事件竞争三个阶段。本技术实施例中的点击埋点可以通过命中测试、事件竞争这两个阶段来实现。
89.示例性地,在命中测试阶段,首先确定与组件曝光埋点关联的当前组件,并对当前组件的后代组件进行命中测试,得到测试结果;其中,测试结果包括:后代组件中包括命中测试的可点击组件、后代组件中未包括命中测试的可点击组件;这里,当后代组件中包括命中测试的可点击组件时,将exposureclick设置为命中;当后代组件中未包括命中测试的可点击组件时,就将exposureclick设置为未命中。
90.这里,exposureclick可以理解为是一个虚拟按钮,真实的按钮是exposureclick的后代微件(flutter使用微件树的形式来描述ui,除了根节点,每个微件都有父代微件)。在后续事件竞争中,总是后代微件胜出,因为后代微件总是排在竞争者列表的前面,而且flutter sdk中只允许一个可点击组件命中测试。
91.在一些实施例中,基于测试结果,完成点击事件的上报,可以包括:在根据测试结果,确定后代组件中包括可点击组件的情况下,通过自定义的点击手势识别器tapgesturerecognizer对当前组件的rejectgesture方法进行重写;根据重写后的当前组件的rejectgesture方法,完成点击事件的上报。
92.示例性地,在事件竞争阶段,只有命中测试的可点击组件才会参与事件竞争,所以,只要exposureclick到达了事件竞争阶段,就说明当前需要进行点击曝光。在flutter的系统方案中,只可能有一个可点击组件在竞争中胜出,exposureclick作为可点击组件的祖先微件,在事件竞争中肯定会落败,导致无法捕捉到点击事件。
93.示例性地,事件竞争阶段中可点击组件会被添加到一个列表中,孩子组件排在父亲组件的前面,当孩子组件竞争胜出后,会执行孩子组件的acceptgesture方法,而父亲组件(指的就是点击埋点)的rejectgesture方法会被执行,本技术实施例,通过自定义一个点击手势识别器tapgesturerecognizer,重写父亲组件的rejectgesture方法,强制执行acceptgesture方法,这样就会有两个组件赢的事件竞争,一个是真正的可点击组件比如按钮(button),另一个就是点击埋点exposureclick,从而可以触发点击事件的上报。
94.可以看出,本技术实施例通过曝光控制器、页面曝光埋点、组件曝光埋点三个元素实现业务的手动曝光,操作简单,开发工作量小;同时组件曝光埋点支持点击事件的捕获,实现点击埋点。
95.为了能够更加体现本技术的目的,在本技术上述实施例的基础上,进行进一步的说明。
96.本技术实施例还提供了一种页面埋点上报系统的结构示意图,如图3所示,该系统包括曝光控制器exposurecontroller、页面曝光埋点exposurepage和组件曝光埋点exposureitem;图3中1、n表示的箭头是uml的包含关系,表示一个可以包含多个。inheritedscope类继承自inherited微件,inherited微件是flutter sdk提供的用于在微件树中快速有效的进行数据共享的组件。inheritedscope用于把组件曝光埋点exposureitem关联到页面曝光埋点exposurepage。因为上报组件曝光埋点对应的埋点数据时,页面内部组件的埋点需要关联页面曝光埋点上报。
97.示例性地,曝光控制器exposurecontroller、页面曝光埋点exposurepage和组件曝光埋点exposureitem都属于有状态微件,其中,曝光控制器exposurecontroller对应的状态类为exposurecontrollerstate,可以简称为状态类曝光控制器;页面曝光埋点exposurepage对应的状态类为exposurepagestate,可以简称为状态类页面曝光埋点;组件曝光埋点exposureitem对应的状态类为exposureitemstate,可以简称为状态类组件曝光埋点。
98.这里,以曝光控制器exposurecontroller为例,对曝光控制器exposurecontroller和exposurecontrollerstate的关系进行说明,可以将曝光控制器exposurecontroller理解为对外接口,exposurecontrollerstate理解为真正的代码实现。
99.exposurerenderbox继承自上述renderbox,用于监听页面的布局事件,以及计算展示区域,并基于展示区域,确定对应组件是否展示在屏幕上。需要说明的是,上述实施例已结合图3所示部分对页面曝光埋点、组件曝光埋点以及点击埋点的过程进行过说明,此处不再赘述。
100.图4为本技术实施例的一种页面埋点上报装置的组成结构示意图,用于对图1中方法的具体实现,如图4所示,该装置包括:第一确定模块40、获取模块41、第二确定模块42和上报模块43,其中,
101.第一确定模块40,用于确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且所述每一曝光埋点具有唯一的标识信息;
102.获取模块41,用于利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果;
103.第二确定模块42,用于基于所述监听结果,确定所述曝光控制器的当前状态,并根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域;
104.上报模块43,用于根据所述每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。
105.在一些实施例中,所述第二确定模块42,还用于:
106.通过afterlayout微件获取所述每一曝光埋点对应的renderbox;
107.通过inheritedscope获取所述每一曝光埋点对应的曝光区域;
memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质。
127.具体来讲,本实施例中的一种页面埋点上报方法对应的计算机程序指令可以被存储在光盘、硬盘、u盘等存储介质上,当存储介质中的与一种页面埋点上报方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种页面埋点上报方法。
128.基于前述实施例相同的技术构思,参见图5,本技术实施例还提供了一种电子设备50,可以包括:存储器51和处理器52;其中,
129.存储器51,用于存储计算机程序和数据;
130.处理器52,用于执行存储器中存储的计算机程序,以实现前述实施例的任意一种页面埋点上报方法。
131.在实际应用中,上述存储器51可以是易失性存储器(volatile memory),例如ram;或者非易失性存储器(non-volatile memory),例如rom、快闪存储器(flash memory)、硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,并向处理器52提供指令和数据。
132.上述处理器52可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的页面埋点上报装置,用于实现上述处理器功能的电子器件还可以为其它,本技术实施例不作具体限定。
133.在一些实施例中,本技术实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
134.上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。本技术所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
135.本技术所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本技术所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
136.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
137.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
138.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
139.以上,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
技术特征:
1.一种页面埋点上报方法,其特征在于,应用于页面埋点上报系统,所述系统包括曝光控制器,所述方法包括:确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且所述每一曝光埋点具有唯一的标识信息;利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果;基于所述监听结果,确定所述曝光控制器的当前状态,并根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域;根据所述每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。2.根据权利要求1所述的方法,其特征在于,所述根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域,包括:通过afterlayout微件获取所述每一曝光埋点对应的renderbox;通过inheritedscope获取所述每一曝光埋点对应的曝光区域;将所述每一曝光埋点记录到对应的曝光区域中;根据所述曝光控制器的当前状态和所述曝光区域中已记录的每一曝光埋点对应的renderbox,确定所述每一曝光埋点的展示区域。3.根据权利要求2所述的方法,其特征在于,在所述曝光埋点为页面曝光埋点的情况下,所述页面曝光埋点对应的曝光区域为所述曝光控制器,所述根据所述曝光控制器的当前状态和所述曝光区域中已记录的每一曝光埋点对应的renderbox,确定所述每一曝光埋点的展示区域,包括:利用所述曝光控制器启动一个延时任务;在所述延时任务达到延时时长后,确定所述曝光控制器的当前状态是否符合要求;在确定所述曝光控制器的当前状态符合要求的情况下,对所述曝光控制器中已记录的页面曝光埋点进行遍历,并根据遍历到的所述页面曝光埋点对应的renderbox,确定所述页面曝光埋点的展示区域。4.根据权利要求3所述的方法,其特征在于,在所述曝光埋点为组件曝光埋点的情况下,所述组件曝光埋点对应的曝光区域为所述页面曝光埋点,所述方法还包括:在确定所述页面曝光埋点的展示区域后,对所述页面曝光埋点中已记录的组件曝光埋点进行遍历,并根据遍历到的所述组件曝光埋点对应的renderbox,确定所述组件曝光埋点的展示区域。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:确定与所述组件曝光埋点关联的当前组件;对所述当前组件的后代组件进行命中测试,得到测试结果;基于所述测试结果,完成点击事件的上报。6.根据权利要求5所述的方法,其特征在于,所述基于所述测试结果,完成点击事件的上报,包括:在根据所述测试结果,确定所述后代组件中包括可点击组件的情况下,通过自定义的点击手势识别器对所述当前组件的rejectgesture方法进行重写;根据重写后的当前组件的rejectgesture方法,完成点击事件的上报。7.根据权利要求1至3任一项所述的方法,其特征在于,所述利用所述曝光控制器获取
所述每一曝光埋点对应的路由事件的监听结果,包括:所述曝光控制器通过routeaware接口监听所述每一曝光埋点对应的路由事件,得到所述监听结果。8.一种页面埋点上报装置,其特征在于,应用于页面埋点上报系统,所述系统包括曝光控制器,所述装置包括:第一确定模块,用于确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且所述每一曝光埋点具有唯一的标识信息;获取模块,用于利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果;第二确定模块,用于基于所述监听结果,确定所述曝光控制器的当前状态,并根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域;上报模块,用于根据所述每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。9.一种电子设备,其特征在于,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
技术总结
本申请提供一种页面埋点上报方法、装置、电子设备和计算机存储介质,该方法包括:确定添加至目标页面的至少一个曝光埋点;每一曝光埋点是根据产品业务需求定义的,且所述每一曝光埋点具有唯一的标识信息;利用所述曝光控制器获取所述每一曝光埋点对应的路由事件的监听结果;基于所述监听结果,确定所述曝光控制器的当前状态,并根据所述曝光控制器的当前状态,确定所述每一曝光埋点的展示区域;根据所述每一曝光埋点的展示区域和标识信息,实现对应埋点数据的上报。应埋点数据的上报。应埋点数据的上报。
技术研发人员:任建勇
受保护的技术使用者:京东科技信息技术有限公司
技术研发日:2023.03.16
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
