埋点曝光处理方法、装置及设备
技术领域
本公开涉及互联网及大数据技术领域,尤其涉及一种埋点曝光处理方法、装置及设备。
背景技术
埋点分析是目前网站分析或APP(Application,应用程序)产品分析最常用的数据采集方法,并且是一种良好的私有化部署数据采集方式,可用来统计用户的行为。
埋点分析一般可通过代码方法收集用户访问和点击数据的操作,当用户打开一个网页并点击时,若该网页设置了埋点代码,则该网页页面的埋点代码就会被执行,该代码片段作为数据采集脚本,该脚本会将采集完的数据回传给服务器进行处理。埋点曝光是埋点分析的其中一种处理方式,是指用户在浏览页面时,网页能够通过滚动条的位置监听滑动行为的发生,由于浏览页面通过多个页面显示,网页在滑动过程中可能引起当前显示页面中的埋点进行曝光(即被看到或被浏览),从而使得该网页中不同位置的埋点根据用户是否进行浏览来确定是否上报埋点数据。
目前APP埋点分析主要包括两种方法。第一种方法是预先设定好需要的目标数据,工程师根据不同的需求将代码埋到相应的页面位置上,用于追踪和记录用户的行为,并实时把数据传送到后台数据库和服务器端。第二种方法是使用第三方统计工具插件实现移动终端例如手机需要获得的数据。采用第二种方法,数据可能被第三方掌握,有数据泄密风险,因此目前大多数公司都采用第一种方法进行统计分析。第一种方法中,当存在持续埋点事件时,例如对于页面滚动事件,在页面滚动时,在使用的控件的item(项目)上设置有是否上传过埋点数据的标记,可以根据此标记确定是否要将埋点数据上报给服务器。其中,item为父控件中的子控件,父控件一般包含两种类型:可回收控件和不可回收控件。
但是,使用的控件有些是可回收控件例如RecycleView(列表组件,该组件是Android(安卓)平台的原生列表组件),可回收控件存在回收机制,即在页面滑动过程中,系统为了防止可回收控件的子控件占用过多的内存而在子控件滑动不可见时回收已经创建的子控件,在下次滑动时重新复用已经回收的子控件,而不会重新创建新的子控件;这样,当设有是否上传过埋点数据的标记的子控件item被回收后如果再次复用,该标记会被重新初始化,造成可回收控件的数据丢失,而可回收控件会被重新进行埋点并可能重复将埋点数据上报给服务器,从而影响埋点分析准确性。
发明内容
为克服相关技术中存在的问题,本公开提供一种埋点曝光处理方法、装置及设备,能提高埋点分析准确性。
根据本公开实施例的第一方面,提供一种埋点曝光处理方法,包括:
获取可回收控件在屏幕内所有可见的第一子控件的索引位置;
仅在所述第一子控件为在屏幕内首次可见时,将该第一子控件的索引位置作为埋点数据上报给服务器。
在一种实施方式中,所述仅在所述第一子控件为在屏幕内首次可见时,将该第一子控件的索引位置作为埋点数据上报给服务器,包括:
在第一次屏幕滑动停止时,将所获取的在屏幕内所有可见的的第一子控件确定为在屏幕内首次可见;
将所述在屏幕内所有可见的第一子控件的索引位置存储到预设存储区中,并作为埋点数据上报给服务器。
在一种实施方式中,所述仅在所述第一子控件为在屏幕内首次可见时,将该第一子控件的索引位置作为埋点数据上报给服务器,还包括:
在非第一次屏幕滑动停止时,根据所述预设存储区中未包含所获取的第一子控件的索引位置,确定所述第一子控件为在屏幕内首次可见;
将确定为在屏幕内首次可见的第一子控件的索引位置作为埋点数据上报给服务器,并增加到所述预设存储区中。
在一种实施方式中,所述根据所述预设存储区中未包含所获取的第一子控件的索引位置,确定所述第一子控件为在屏幕内首次可见,包括:
根据所述预设存储区中未包含所获取的第一子控件的索引位置的特征值,确定所述第一子控件为在屏幕内首次可见。
在一种实施方式中,所述第一子控件为item项目子控件。
在一种实施方式中,所述方法还包括:
获取所述不可回收控件的第二子控件在屏幕内的位置和所述不可回收控件在屏幕内的位置;
根据所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器。
在一种实施方式中,所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中按以下方式确定:
如果所述第二子控件在屏幕内的X轴坐标与所述第二子控件的宽度之和,小于或等于所述不可回收控件在屏幕内的X轴坐标;及所述第二子控件在屏幕内的Y轴坐标与所述第二子控件的高度之和,小于或等于所述不可回收控件在屏幕内的Y轴坐标;则确定所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中。
在一种实施方式中,所述根据所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器,包括:
根据所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,且预设存储区中未包含所述第二子控件的特征值,
则将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器,并将所述第二子控件的特征值增加到所述预设存储区中。
根据本公开实施例的第二方面,提供一种埋点曝光处理装置,包括:
第一获取模块,用于获取可回收控件在屏幕内所有可见的第一子控件的索引位置;
第一埋点上报模块,用于仅在所述第一子控件为在屏幕内首次可见时,将所述第一获取模块获取的第一子控件的索引位置作为埋点数据上报给服务器。
在一种实施方式中,所述第一埋点上报模块包括:
第一处理子模块,用于在第一次屏幕滑动停止时,将所获取的在屏幕内所有可见的的第一子控件确定为在屏幕内首次可见;将所述在屏幕内所有可见的第一子控件的索引位置存储到预设存储区中,并作为埋点数据上报给向服务器;
第二处理子模块,用于在非第一次屏幕滑动停止时,根据所述预设存储区中未包含所获取的第一子控件的索引位置,确定所述第一子控件为在屏幕内首次可见;将确定为在屏幕内首次可见的第一子控件的索引位置作为埋点数据上报给向服务器,并增加到所述预设存储区中。
在一种实施方式中,所述装置还包括:
第二获取模块,用于获取所述不可回收控件的第二子控件在屏幕内的位置和所述不可回收控件在屏幕内的位置;
第二埋点上报模块,用于根据所述第二获取模块获取的第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器。
在一种实施方式中,所述第二埋点上报模块根据所述第二获取模块获取的第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,且预设存储区中未包含所述第二子控件的特征值,则将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器,并将所述第二子控件的特征值增加到所述预设存储区中。
根据本公开实施例的第三方面,提供一种终端设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
根据本公开实施例的第四方面,提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开的实施例提供的技术方案,先获取可回收控件在屏幕内所有可见的第一子控件的索引位置;然后仅在所述第一子控件为在屏幕内首次可见时,将该第一子控件的索引位置作为埋点数据上报给服务器。也就是说,如果所述第一子控件为在屏幕内不是首次可见时,就不会将该第一子控件的索引位置作为埋点数据上报给服务器,这样就不受子控件被回收带来的影响,不依赖可回收控件的回收机制,不会再出现重复上报描点数据的问题,可回收控件的子控件的索引位置的数据也不会丢失,从而可以提高埋点分析准确性,也实现了第一控件的整体曝光处理。
本公开的实施例提供的技术方案,还可以在第一次屏幕滑动停止时,将所获取的在屏幕内所有可见的的第一子控件确定为在屏幕内首次可见;将所述在屏幕内所有可见的第一子控件的索引位置存储到预设存储区中,并作为埋点数据上报给服务器;或者,在非第一次屏幕滑动停止时,根据所述预设存储区中未包含所获取的第一子控件的索引位置,确定所述第一子控件为在屏幕内首次可见;将确定为在屏幕内首次可见的第一子控件的索引位置作为埋点数据上报给服务器,并增加到所述预设存储区中。这样,除了可以提高埋点分析准确性,可回收控件的子控件的索引位置的数据也不会丢失,可以在预设存储区例如临时存储区中存储。
本公开的实施例提供的技术方案,还可以针对不可回收控件的子控件进行统一处理,例如针对不可回收控件的第二子控件,可以根据所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器,这样不再是像相关技术那样每个控件独自实现曝光,而是可以采用统一的方法实现控件曝光。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是根据本公开一示例性实施例示出的一种埋点曝光处理方法的流程示意图;
图2是根据本公开一示例性实施例示出的一种埋点曝光处理方法的流程另一示意图;
图3是根据本公开一示例性实施例示出的一种埋点曝光处理方法中可回收控件中的ietm子控件的流程处理示意图;
图4是根据本公开一示例性实施例示出的一种埋点曝光处理方法中不可回收控件的子控件的流程处理示意图;
图5是根据本公开一示例性实施例示出的一种埋点曝光处理装置的结构示意图;
图6是根据本公开一示例性实施例示出的一种埋点曝光处理装置的结构另一示意图;
图7是根据本公开一示例性实施例示出的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本公开提供了一种埋点曝光处理方法,能提高埋点分析准确性。
以下结合附图详细描述本公开实施例的技术方案。
图1是根据本公开一示例性实施例示出的一种埋点曝光处理方法的流程示意图。该流程可以应用于可回收控件的子控件的处理,例如第一子控件类型,该第一子控件例如可以为item子控件。
参见图1,该方法包括:
在步骤101中,获取可回收控件在屏幕内所有可见的第一子控件的索引位置。
该步骤可以遍历可回收控件在屏幕内第一个可见的第一子控件和最后一个可见的第一子控件,从而获取可回收控件在屏幕内所有可见的第一子控件的索引位置的索引位置。
其中,所述第一子控件可以为item子控件。
在步骤102中,仅在所述第一子控件为在屏幕内首次可见时,将该第一子控件的索引位置作为埋点数据上报给服务器。
该步骤中,在第一次屏幕滑动停止时,将所获取的在屏幕内所有可见的的第一子控件确定为在屏幕内首次可见;将所述在屏幕内所有可见的第一子控件的索引位置存储到预设存储区中,并作为埋点数据上报给服务器。
或,
在非第一次屏幕滑动停止时,根据所述预设存储区中未包含所获取的第一子控件的索引位置,确定所述第一子控件为在屏幕内首次可见;将确定为在屏幕内首次可见的第一子控件的索引位置作为埋点数据上报给服务器,并增加到所述预设存储区中。
其中,可以是根据所述预设存储区中未包含所获取的第一子控件的索引位置的特征值例如哈希值,确定所述第一子控件为在屏幕内首次可见。
也就是说,如果所述第一子控件为在屏幕内首次可见,将该第一子控件的索引位置作为埋点数据上报给服务器,如果所述第一子控件在屏幕内非首次可见,例如第一子控件被回收且重复被使用后是第二次可见或第三次可见等,则不将该第一子控件的索引位置作为埋点数据上报给服务器。
从该实施例可以看出,本公开的实施例提供的技术方案,先获取可回收控件在屏幕内所有可见的第一子控件的索引位置;然后仅在所述第一子控件为在屏幕内首次可见时,将该第一子控件的索引位置作为埋点数据上报给服务器。也就是说,如果所述第一子控件为在屏幕内不是首次可见时,就不会将该第一子控件的索引位置作为埋点数据上报给服务器,这样就不受子控件被回收带来的影响,不依赖可回收控件的回收机制,不会再出现重复上报描点数据的问题,可回收控件的子控件的索引位置的数据也不会丢失,从而可以提高埋点分析准确性,也实现了第一控件的整体曝光处理。
图2是根据本公开一示例性实施例示出的一种埋点曝光处理方法的流程另一示意图。该流程可以应用于不可回收控件的子控件的处理,例如第二子控件类型。
参见图2,该方法包括:
在步骤201中,获取不可回收控件的第二子控件在屏幕内的位置和所述不可回收控件在屏幕内的位置。
在步骤202中,根据所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器。
该步骤中,所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中可以按以下方式确定:如果所述第二子控件在屏幕内的X轴坐标与所述第二子控件的宽度之和,小于或等于所述不可回收控件在屏幕内的X轴坐标;及所述第二子控件在屏幕内的Y轴坐标与所述第二子控件的高度之和,小于或等于所述不可回收控件在屏幕内的Y轴坐标;则确定所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中。
需说明的是,该步骤可以根据所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,且预设存储区中未包含所述第二子控件的特征值,则将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器,并将所述第二子控件的特征值增加到所述预设存储区中。
从该实施例可以发现,本公开的实施例提供的技术方案,还可以针对不可回收控件的子控件进行统一处理,可以根据所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器,这样不再是像相关技术那样每个控件独自实现曝光,而是可以采用统一的方法实现控件曝光。
图3是根据本公开一示例性实施例示出的一种埋点曝光处理方法中可回收控件中的ietm子控件的流程处理示意图。图3与图1相比,更详细描述了本公开的方案。
该方案可针对可回收控件中的item子控件整体曝光。以可回收控件为RecycleView为例,在第一次屏幕滑动停止时,可以获取到第一个可见的item子控件和最后一个可见的item子控件的索引位置,然后遍历其中的所有可见的item子控件的索引位置,并放入预设存储区例如设置的临时存储区进行存储,标记为首次可见(也即第一次可见)的item子控件的索引位置,也即这些item子控件都为屏幕内首次可见,并对这些item子控件的索引位置做埋点曝光事件,将索引位置作为埋点数据上报给服务器。在临时存储区存储时,可以是直接存储item子控件的索引位置,也可以是存储item子控件的索引位置的特征值例如哈希值,哈希值可根据哈希算法计算得到。
在后续的每次屏幕滚动停止时,都判断item子控件是否在屏幕内首次可见,如果不是屏幕内首次可见,对item子控件的索引位置不做埋点曝光事件,不上报埋点数据给服务器;如果是屏幕内首次可见,item子控件的索引位置就是新的数据,则对item子控件的索引位置做埋点曝光事件,将索引位置作为埋点数据上报给服务器。
参见图3,该方法包括:
在步骤301中,在第一次屏幕滑动停止时,获取可回收控件在屏幕内第一个可见的item子控件和最后一个可见的item子控件的索引位置。
在步骤302中,循环遍历在屏幕内第一个可见的item子控件和最后一个可见的item子控件之间的item子控件,获取可回收控件在屏幕内所有可见的item子控件的索引位置的索引位置。
在步骤303中,将所述在屏幕内所有可见的item子控件确定为在屏幕内首次可见,将所有可见的item子控件的索引位置存储到临时存储区中,并作为埋点数据上报给服务器。
该步骤中,将所有可见的item子控件的索引位置存储到临时存储区中,可以是直接存储item子控件的索引位置,也可以是存储item子控件的索引位置的哈希值。首次存储时,可以先清空临时存储区。
该步骤中,对这些item子控件的索引位置做埋点曝光事件,将索引位置作为埋点数据上报给服务器。
在步骤304中,在后续每次屏幕滑动停止时,获取可回收控件在屏幕内第一个可见的item子控件和最后一个可见的item子控件的索引位置。
在步骤305中,循环遍历在屏幕内第一个可见的item子控件和最后一个可见的item子控件之间的item子控件,获取可回收控件在屏幕内所有可见的item子控件的索引位置的索引位置。
在步骤306中,判断获取的item子控件是否为在屏幕内首次可见,如果是屏幕内首次可见,进入步骤307,如果不是屏幕内首次可见,进入步骤309。
该步骤中,如果临时存储区中未包含所获取的item子控件的索引位置,确定所述item子控件为在屏幕内首次可见,如果临时存储区中包含了所获取的item子控件的索引位置,确定所述item子控件为在屏幕内非首次可见。其中,可以是如果临时存储区中未包含所获取的item子控件的索引位置的哈希值,则确定所述item子控件为在屏幕内首次可见。需说明的是,本公开方案中以哈希值作为特征值为例但不局限于此,也可是其他类型的数值作为特征值。
在步骤307中,将确定为在屏幕内首次可见的item子控件的索引位置作为埋点数据上报给服务器。
该步骤中,对这些item子控件的索引位置做埋点曝光事件,将索引位置作为埋点数据上报给服务器。
在步骤308中,将确定为在屏幕内首次可见的item子控件的索引位置增加到临时存储区中。
该步骤中更新临时存储区的数据集合,将确定为在屏幕内首次可见的item子控件的索引位置增加到临时存储区中。
需说明的是,步骤307和308没有必然的顺序关系。
在步骤309中,不将确定为在屏幕内非首次可见的item子控件的索引位置作为埋点数据上报给服务器。
该步骤中,因为获取的item子控件不是在屏幕内首次可见,不符合上报条件,因此item子控件的索引位置不上报给服务器。
从该实施例可以看出,本公开的实施例提供的技术方案,在可回收控件在执行页面滚动持续埋点事件时,可以避免控件回收造成的数据丢失,可以不受子控件被回收带来的影响,不依赖可回收控件的回收机制,不会再出现重复上报描点数据的问题,从而可以提高埋点分析准确性,另外也可避免错埋、漏埋等问题。
图4是根据本公开一示例性实施例示出的一种埋点曝光处理方法中不可回收控件中的子控件的流程处理示意图。图4与图2相比,更详细描述了本公开的方案。
该方案可实现不可回收控件的子控件的统一处理。针对不可回收控件的子控件,在屏幕滑动停止时,判断该不可回收控件的子控件在屏幕内的位置是否全部属于不可回收控件在屏幕内的位置中。该判断方法可以是:获取子控件在屏幕中的X轴和Y轴方向上的坐标点,如果X轴的坐标加上该子控件的宽度小于或等于该不可回收控件在屏幕中坐标的位置,Y轴的坐标加上该子控件的高度小于或等于该不可回收控件在屏幕中坐标的位置,则确定该不可回收控件的子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中。
如果所述不可回收控件的子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将不可回收控件的子控件在屏幕内的位置作为埋点数据上报给服务器,如果所述不可回收控件的子控件在屏幕内的位置不是全部属于不可回收控件在屏幕内的位置中,将不将不可回收控件的子控件在屏幕内的位置作为埋点数据上报给服务器。
参见图4,该方法包括:
在步骤401中,获取不可回收控件的子控件在屏幕内的位置和不可回收控件在屏幕内的位置。
在步骤402中,判断不可回收控件的子控件在屏幕内的位置是否全部属于不可回收控件在屏幕内的位置中,如果全部属于不可回收控件在屏幕内的位置中,进入步骤403,如果不是全部属于不可回收控件在屏幕内的位置中,进入步骤406。
在步骤403中,判断临时存储区中是否包含不可回收控件的子控件的哈希值,如果没有包含不可回收控件的子控件的哈希值,进入步骤404,如果包含不可回收控件的子控件的哈希值,进入步骤406。
本公开方案中,可在临时存储区存储已经向服务器上报过埋点数据的不可回收控件的子控件的哈希值,这样可进一步用于对不可回收控件的子控件的判断处理。需说明的是,此处以哈希值为例但不局限于此,也可是其他类型的特征值。
在步骤404中,将不可回收控件的子控件在屏幕内的位置作为埋点数据上报给服务器。
该步骤中,对这些不可回收控件的子控件在屏幕内的位置做埋点曝光事件,将在屏幕内的位置作为埋点数据上报给服务器。
在步骤405中,将不可回收控件的子控件的哈希值增加到临时存储区中。
该步骤中,该步骤中更新临时存储区的数据集合,将不可回收控件的子控件的哈希值增加到临时存储区中。
需说明的是,步骤404和405没有必然的顺序关系。
在步骤406中,不将不可回收控件的子控件在屏幕内的位置作为埋点数据上报给服务器。
该步骤中,因为不可回收控件的子控件在屏幕内的位置不是全部属于不可回收控件在屏幕内的位置中,不符合上报条件,因此不可回收控件的子控件在屏幕内的位置不上报给服务器。
需说明的是,上述步骤中也可以不需要步骤404的判断,可以直接根据不可回收控件的子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,则将不可回收控件的子控件在屏幕内的位置作为埋点数据上报给服务器。
从该实施例可以发现,本公开的实施例提供的技术方案,可以针对不可回收控件子控件进行统一处理,在页面滚动停止时通过统一的方法判断该子控件是否在屏幕内,采用统一的方法实现控件曝光,不再是像相关技术那样每个控件独自实现曝光,更方便用户使用。
与前述应用功能实现方法实施例相对应,本公开还提供了一种埋点曝光处理装置、终端设备及相应的实施例。
图5是根据本公开一示例性实施例示出的一种埋点曝光处理装置的结构示意图。
参见图5,一种埋点曝光处理装置50,包括:第一获取模块51、第一埋点上报模块52。
第一获取模块51,用于获取可回收控件在屏幕内所有可见的第一子控件的索引位置。第一获取模块51,可以遍历可回收控件在屏幕内第一个可见的第一子控件和最后一个可见的第一子控件,从而获取可回收控件在屏幕内所有可见的第一子控件的索引位置的索引位置。所述第一子控件可以为item子控件。
第一埋点上报模块52,用于仅在所述第一子控件为在屏幕内首次可见时,将所述第一获取模块51获取的第一子控件的索引位置作为埋点数据上报给服务器。第一埋点上报模块52可以在第一次屏幕滑动停止时,将所获取的在屏幕内所有可见的的第一子控件确定为在屏幕内首次可见;将所述在屏幕内所有可见的第一子控件的索引位置存储到预设存储区中,并作为埋点数据上报给服务器;或,在非第一次屏幕滑动停止时,根据所述预设存储区中未包含所获取的第一子控件的索引位置,确定所述第一子控件为在屏幕内首次可见;将确定为在屏幕内首次可见的第一子控件的索引位置作为埋点数据上报给服务器,并增加到所述预设存储区中。
可以发现,本公开的实施例提供的技术方案,先获取可回收控件在屏幕内所有可见的第一子控件的索引位置;然后仅在所述第一子控件为在屏幕内首次可见时,将该第一子控件的索引位置作为埋点数据上报给服务器。也就是说,如果所述第一子控件为在屏幕内不是首次可见时,就不会将该第一子控件的索引位置作为埋点数据上报给服务器,这样就不受子控件被回收带来的影响,不依赖可回收控件的回收机制,不会再出现重复上报描点数据的问题,可回收控件的子控件的索引位置的数据也不会丢失,从而可以提高埋点分析准确性,也实现了第一控件的整体曝光处理。
图6是根据本公开一示例性实施例示出的一种埋点曝光处理装置的结构另一示意图。
参见图6,一种埋点曝光处理装置60,包括:第一获取模块51、第一埋点上报模块52、第二获取模块53、第二埋点上报模块54。其中,第一获取模块51、第一埋点上报模块52的功能可参见图5中的描述。
所述第一埋点上报模块52包括:第一处理子模块521、第二处理子模块522。
第一处理子模块521,用于在第一次屏幕滑动停止时,将所获取的在屏幕内所有可见的的第一子控件确定为在屏幕内首次可见;将所述在屏幕内所有可见的第一子控件的索引位置存储到预设存储区中,并作为埋点数据上报给向服务器。
第二处理子模块522,用于在非第一次屏幕滑动停止时,根据所述预设存储区中未包含所获取的第一子控件的索引位置,确定所述第一子控件为在屏幕内首次可见;将确定为在屏幕内首次可见的第一子控件的索引位置作为埋点数据上报给向服务器,并增加到所述预设存储区中。
第二获取模块53,用于获取所述不可回收控件的第二子控件在屏幕内的位置和所述不可回收控件在屏幕内的位置。
第二埋点上报模块54,用于根据所述第二获取模块53获取的第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器。
所述第二埋点上报模块54,可以根据所述第二获取模块53获取的第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中,且预设存储区中未包含所述第二子控件的特征值,则将所述第二子控件在屏幕内的位置作为埋点数据上报给服务器,并将所述第二子控件的特征值增加到所述预设存储区中。
其中,所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中可以按以下方式确定:如果所述第二子控件在屏幕内的X轴坐标与所述第二子控件的宽度之和,小于或等于所述不可回收控件在屏幕内的X轴坐标;及所述第二子控件在屏幕内的Y轴坐标与所述第二子控件的高度之和,小于或等于所述不可回收控件在屏幕内的Y轴坐标;则确定所述第二子控件在屏幕内的位置全部属于不可回收控件在屏幕内的位置中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
图7是根据本公开一示例性实施例示出的一种计算设备的结构示意图。该计算设备可以是移动终端设备但不局限于此。
参见图7,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的方法中的部分或全部。
上文中已经参考附图详细描述了本公开的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本公开所必须的。另外,可以理解,本公开实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本公开实施例装置中的模块可以根据实际需要进行合并、划分和删减。
此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本公开的上述方法的各个步骤的部分或全部。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本公开的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。