事件上报方法及装置与流程

文档序号:18739614发布日期:2019-09-21 01:37阅读:233来源:国知局
事件上报方法及装置与流程

本发明实施例一般地涉及互联网技术领域,特别地是涉及一种事件上报方法及装置。



背景技术:

用户行为数据是网站非常重要的数据,为了收集用户浏览网站的行为数据,更好的掌握用户需求,在网站的前端埋点成为各网站收集用户行为数据的重要手段。

前端埋点主要包括页面浏览量(page view,pv)和页面中页面元素的点击量等,通过收集前端预先设定有埋点的事件,以及对收集的预先设定有埋点的事件进行分析,可作为网站功能优化、降低成本的重要数据支撑。

目前,对前端预先设定有埋点的事件的统计中,没有对预先设定有埋点的事件进行规范的分类处理,上报的数据比较混乱,导致上报前端预先设定有埋点的事件后,对预先设定有埋点的事件进行分析时,还得花大量时间对预先设定有的埋点的事件进行收集、总结,数据分析效率低下。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明实施例提供了事件上报方法及装置。

第一方面,本发明实施例提供一种事件上报方法,该事件上报方法包括:基于触发预先设定有埋点的事件,获取所述事件;确定所述事件的事件类型;提取所述事件类型对应的事件统计信息;上报所述事件以及所述事件统计信息。

在一实施例中,所述事件统计信息包括事件来源信息;所述事件来源信息通过统一资源定位符URL中添加的地址来源参数确定。

在一实施例中,所述事件类型为单页面访问事件,所述事件统计信息包括目标页面;所述目标页面采用如下方式确定:按照预设的时间间隔,获取单页面应用的当前页面地址;在所述当前页面地址与预先存储的页面地址不同之际,将所述当前页面地址对应的页面确定为所述单页面访问事件的目标页面。

在一实施例中,上报所述事件以及所述事件统计信息,包括:在所述当前页面地址与预先存储的页面地址不同之际,上报所述事件以及所述事件统计信息;所述事件上报方法还包括:将所述预先存储的页面地址更新为所述当前页面地址。

在一实施例中,若所述事件类型为页面元素访问事件类型,则采用自定义属性上报方式上报页面元素事件以及页面元素事件统计信息。

在一实施例中,所述采用自定义属性上报方式上报页面元素事件以及页面元素事件统计信息,包括:在根节点中绑定的自定义属性与页面元素预设的自定义属性一致时,上报所述页面元素事件以及所述页面元素事件统计信息;其中,所述根节点中绑定的自定义属性是对所述页面元素预设的自定义属性。

在一实施例中,上报所述页面元素事件以及所述页面元素事件统计信息之前,所述方法还包括:确定页面元素被访问时,将页面元素访问事件上报给页面根节点,并确定所述根节点中绑定了所述页面元素访问事件的上报事件方法。

第二方面,本发明实施例提供一种事件上报装置,该数据统计装置包括:获取单元,用于基于触发预先设定有埋点的事件,获取所述事件;确定单元,用于确定所述事件的事件类型;提取单元,用于提取所述事件类型对应的事件统计信息;上报单元,用于上报所述事件以及所述事件统计信息。

在一实施例中,所述事件统计信息包括事件来源信息;所述事件来源信息通过统一资源定位符URL中添加的地址来源参数确定。

在一实施例中,所述事件类型为单页面访问事件,所述事件统计信息包括目标页面;提取单元采用如下方式确定所述目标页面:按照预设的时间间隔,获取单页面应用的当前页面地址;在所述当前页面地址与预先存储的页面地址不同之际,将所述当前页面地址对应的页面确定为所述单页面访问事件的目标页面。

在一实施例中,所述上报单元还用于:在所述当前页面地址与预先存储的页面地址不同之际,上报所述事件以及所述事件统计信息;将所述预先存储的页面地址更新为所述当前页面地址。

在一实施例中,若所述事件类型为页面元素访问事件类型,所述上报单元采用自定义属性上报方式上报事件以及事件统计信息。

在一实施例中,上报单元采用如下方式进行所述自定义属性上报:对所述页面元素预设自定义属性;将所述自定义属性绑定到页面根节点;在所述根节点中绑定的自定义属性与所述页面元素预设的自定义属性一致时,上报所述页面元素事件以及所述页面元素事件统计信息。

在一实施例中,所述确定单元还用于:在上报所述页面元素事件以及所述页面元素事件统计信息之前,确定页面元素被访问时,将页面元素访问事件上报给页面根节点,并确定所述根节点中绑定了所述页面元素访问事件的上报事件方法。

第三方面,本发明实施例提供一种电子设备,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行上述任何方法。

第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在计算机上运行时,执行上述任何方法。

本发明实施例提供的事件上报方法及装置,基于触发预先设定有埋点的事件,获取事件,确定事件的事件类型,并提取事件类型对应的事件统计信息,将事件以及事件的统计信息进行上报,实现事件规范、清晰的上报,使数据分析更加简单,分析效率高。

附图说明

通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1是本发明实施例提供的事件上报方法实施流程图;

图2是本发明实施例提供的事件上报方法另一实施流程图;

图3是本发明实施例提供的事件上报方法又一实施流程图;

图4是本发明实施例提供的事件上报装置示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。

需要注意,虽然本文中使用“第一”、“第二”等表述来描述本发明的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。

本发明实施例提供的事件上报方法及装置,可以应用于网站对用户行为数据进行统计分析的应用场景。在该场景下,事件上报方法的执行主体可以是数据统计装置,该数据统计装置可以是计算机,移动终端等终端,本发明实施例不做限定。

图1为本发明实施例提供的事件上报方法的实施流程图。如图1所示,该方法包括:

S101:基于触发预先设定有埋点的事件,获取所述事件。

本发明实施例中涉及的事件为预先设定埋点规则的事件,获取的事件包括页面事件和页面元素事件。其中,页面事件包括单页面事件和多页面事件。

S102:确定事件的事件类型。

本发明实施例中,事件的事件类型包括页面访问事件类型和页面元素访问事件类型,其中,页面访问事件类型包括单页面访问事件类型和多页面访问事件类型。页面元素访问事件类型主要包括针对页面元素点击行为的访问类型,其中页面元素例如包括页面中的按钮、超链接、提交框等。

S103:提取事件类型对应的事件统计信息。

在一实施例中,事件统计信息可以包括目标页面、事件来源和环境信息。其中,目标页面可以是当前事件发生的页面,事件来源可以是触发当前事件的来源,环境信息是当前环境的基础信息,包括用户的ip地址,代理等信息。例如针对页面访问事件,页面A被点击跳转到页面B,则页面A就是触发页面B的事件来源,页面B就是目标页面。例如针对页面元素访问事件,页面A点击了一个收藏按钮,此时的事件来源变成了收藏,目标页面还是B页面。

S104:上报事件以及事件统计信息。

本发明实施例中,将事件以及事件统计的目标页面、事件来源和环境信息上报。

本发明实施例中,通过对事件规范的统计,使统计后的事件结构非常清晰。由此对事件进行分析会非常轻松,例如根据每个pv事件的来源即可形成一条线进行串联,实现pv漏斗转化跟踪;又例如,分析一个商品列表页各个商品的点击情况时,只需简单的将目标页面为商品列表页,事件类型为页面元素点击事件进行聚合即可。事件统计信息中的目标页面、事件来源和环境信息可以进行任意组合分析,能够便捷的从各个角度来分析上报的事件。

通过本发明实施例,可实现事件规范、清晰的上报,使数据分析更加简单,提升事件分析效率。

图2为本发明实施例提供的事件类型为单页面访问事件时,事件上报方法的实施流程图。如图2所示,该事件上报方法中,包括步骤S101至步骤S104。其中,步骤S101和步骤S102与图1中的步骤S101和步骤S102相同,在此不再赘述。

步骤S103包括步骤S1031和步骤S1032,步骤S104包括步骤S1041。

作为本发明的一个实施方式,事件类型为单页面访问事件,步骤S103提取事件类型对应的事件统计信息包括目标页面。其中,提取单页面访问事件对应的目标页面信息可包括:

S1031:按照预设的时间间隔,获取单页面应用的当前页面地址,在当前页面地址与预先存储的页面地址不同之际,将当前页面地址对应的页面确定为单页面访问事件的目标页面。

目前,随着前端技术的不断发展,前端单页面应用(single-page application,SPA)越来越普遍,SPA首次加载时会加载整个页面,然后和用户交互的过程中,不会像多页面应用一样从服务器加载页面结构,而是通过前端路由动态重写当前页面,实现与用户的交互,以达到无刷新的页面跳转效果。惯常的埋点方案中,通过监听页面加载来自动上报页面pv数据,对SPA获取页面pv数据无法适用。

另一种埋点方案,为了获取SPA前端路由动态重写的页面pv数据的统计,利用额外的上报页面pv数据的sdk方法,在SPA前端路由处调用,以进行页面pv数据的上报。这样,不仅增大了前端开发、调试的工作量,还增大了上报代码与业务代码的耦合、出错率。

目前,实现前端路由主要有以下两种方式:一是利用hash,通过(URL+"#"+标识符),标识符表示统一资源定位符(Uniform Resource Locator,URL)的位置,如:https://www.example.com/index.html#detail可以用来表示当前访问页面为详情页,通过改变hash标识符来实现前端路由,例如可以使用window.onhashchange事件监听URL的改变,但是IE8浏览器的以下版本,或者火狐Firefox浏览器的3.6以下版本不支持该事件。

二是利用HTML5的History API实现前端路由,History API允许浏览器会话历史记录进行操作,通过history的repalceState和pushState方法都可以实现无刷新的改变URL,但是目前没有一种js事件可以监听这两个方法带来的URL的更改。

综上,当前没有一种方法能够通用于监听SPA前端路由实现的URL改变,对于独立于业务之外的事件来说,能够通用,对于项目应用来说非常重要。

由此,本发明实施例中采用了按照预设的时间间隔检测SPA的URL的方法,该方法能够很好的兼容各种浏览器。

在一实施例中,按照预设的时间间隔,预设的时间间隔可以根据网站中一个单页面应用的页面跳转到另一个单页面应用的最小时间确定,例如一个单页面应用的页面跳转到另一个单页面应用的页面需要100ms,就可以将时间间隔设定为100ms,具体的时间间隔根据不同网站的情况而定。

在一实施例中,为了检测SPA的地址是否发生变化,可以在SPA的页面被访问时,将当前该SPA的URL存储到客户端本地,例如可以通过cookie或者js的Window.sessionStorage等属性存储到客户端本地。当按照预设的时间间隔,检测到当前的SPA的URL与客户端本地存储的SPA的URL不相同时,表明SPA发生了切换,将当前的SPA确定为目标页面。并且,将预先存储的SPA的URL更新为当前的SPA的URL。

通过本发明实施例,可通用于实现SPA前端路由动态重写的页面pv数据的统计,不需要手动调用上报代码,避免与代码的耦合,不需要关心上报代码的调用方式、上报逻辑,减少了开发、调试的工作量,提升了开发效率。

作为本发明的一个实施方式,事件类型为单页面访问事件,步骤S103提取事件类型对应的事件统计信息,包括事件来源,提取单页面访问事件对应的事件来源信息包括:

S1032:通过统一资源定位符URL中添加的地址来源参数确定事件来源信息。

目前,判断页面事件来源主要通过referrer js document属性来获取,很多情况下,利用referrer js document属性会丢失页面事件来源,例如HTTPS域名跳转到HTTP域名,鼠标拖拽打开新窗口等。

由此,本发明实施例中,在需要埋点的页面URL中添加地址来源的参数,来确定事件来源。例如一个页面需要在微博推广,也需要在微信公众号推广,就可以指定地址来源的参数的形式来区分不同流量来源。页面URL中添加地址来源的参数,例如可以是如下方式添加:微博资源位投放广告:https://m.example.com?from=weibo,其中,from为统计地址来源指定的参数,from=weibo表明该页面从微博的链接跳转而来。

对页面URL添加地址来源的参数,可以用于针对网站的广告投放,外部资源位,站内不同项目资源位等情况。

通过本发明实施例,可弥补目前页面中使用referrer js document属性判断页面事件来源时,出现事件来源丢失的情况。

作为本发明的一个实施方式,事件类型为单页面访问事件,步骤S104上报事件以及事件统计信息,包括:

S1041:按照预设的时间间隔,获取单页面应用的当前页面地址,在当前页面地址与预先存储的页面地址不同之际,上报事件以及事件统计信息。

通过本发明实施例,可及时对事件以及该事件统计信息进行上报,有利于快速的分析该事件以及该事件统计信息。

图3为本发明实施例提供的事件类型为页面元素访问事件时,事件上报方法的实施流程图。如图3所示,该事件上报方法中,包括步骤S101至步骤S105。其中,步骤S101和步骤S102与图1中的步骤S101和步骤S102相同,在此不再赘述。

步骤S103包括步骤S1033,步骤S104包括步骤S1042,在步骤S104之前,还包括步骤S105。

作为本发明的一个实施方式,事件类型为页面元素访问事件,步骤S103提取事件类型对应的事件统计信息包括事件来源。其中,提取页面元素访问事件对应的事件来源可包括:

S1033:通过统一资源定位符URL中添加的地址来源参数确定事件来源信息。

该步骤与步骤S1032实施方式相同,在此不在赘述。

作为本发明的一个实施方式,若事件类型为页面元素访问事件类型,步骤S104上报事件以及事件统计信息,包括:

S1042:采用自定义属性上报方式上报页面元素事件以及页面元素事件统计信息。

采用自定义属性上报方式上报页面元素事件以及页面元素事件统计信息,包括:在根节点中绑定的自定义属性与页面元素预设的自定义属性一致时,上报所述页面元素事件以及所述页面元素事件统计信息;其中,所述根节点中绑定的自定义属性是对所述页面元素预设的自定义属性。

作为本发明的一个实施方式,事件类型为页面元素访问事件,上报事件以及事件统计信息之前,事件上报方法还包括:

S105:确定页面元素被访问时,将页面元素访问事件上报给页面根节点,并确定根节点中绑定了页面元素访问事件的上报事件方法。

通常,页面元素点击事件的上报方法一种方法绑定在页面元素的onclick事件上,这样的话,如果页面元素已经绑定了业务代码相关的onclick事件,则需要处理业务代码与上报代码之间的兼容工作,而页面元素本身具有onclick事件的情况非常普遍,这样处理兼容的工作量会非常大。或者,在独立的js代码中选择需要上报点击事件的页面元素,并在该页面元素上绑定上报方法,这样就会出现,针对每一个页面元素都需要编写一个选择器,并绑定上报事件的上报方法。

本发明实施例中,当页面加载时,会将页面元素的上报事件方法绑定到根节点,当页面元素被访问时,使用js事件冒泡特性将该页面元素点击事件一级一级的向上传递到根节点,如果根节点上绑定的上报事件方法和该页面元素点击事件中的上报方法一致,则上报该页面元素事件以及该页面元素点击事件统计信息。

通过本发明实施例,在根结点绑定上报事件方法来获取发生页面元素点击事件的上报方法,可实现自定义属性方式上报事件以及事件统计信息。该方式不需要处理上报代码与业务的逻辑兼容,避免了单独编写js代码选择页面元素来绑定上报方法,提高了开发效率。

本发明实施例提供的事件上报方法,通过确定事件的事件类型,并针对单页面访问事件或者页面元素访问事件分别提取与事件类型对应的事件统计信息,将事件以及事件的统计信息进行上报,实现事件规范、清晰的上报,使数据分析更加简单,分析效率高。

基于相同的发明构思,本发明实施例还提供了一种数据统计装置,

如图4所示,本发明实施例提供的数据统计装置200,该装置200包括:获取单元201,用于基于触发预先设定有埋点的事件,获取所述事件;确定单元202,用于确定所述事件的事件类型;提取单元203,用于提取所述事件类型对应的事件统计信息;上报单元204,用于上报所述事件以及所述事件统计信息。

在一实施例中,所述事件统计信息包括事件来源信息;所述事件来源信息通过统一资源定位符URL中添加的地址来源参数确定。

在一实施例中,所述事件类型为单页面访问事件,所述事件统计信息包括目标页面;提取单元采用如下方式确定所述目标页面:按照预设的时间间隔,获取单页面应用的当前页面地址;在所述当前页面地址与预先存储的页面地址不同之际,将所述当前页面地址对应的页面确定为所述单页面访问事件的目标页面。

在一实施例中,所述上报单元采用如下方式上报所述单页面访问事件以及所述单页面访问事件统计信息:在所述当前页面地址与预先存储的页面地址不同之际,上报所述单页面访问事件以及所述单页面访问事件统计信息;上报单元还用于:将所述预先存储的页面地址更新为所述当前页面地址。

在一实施例中,若所述事件类型为页面元素访问事件类型,所述上报单元采用自定义属性上报方式上报页面元素事件以及页面元素事件统计信息。

在一实施例中,上报单元采用如下方式对页面元素事件以及页面元素事件统计信息进行自定义属性上报:在根节点中绑定的自定义属性与页面元素预设的自定义属性一致时,上报所述页面元素事件以及所述页面元素事件统计信息;其中,所述根节点中绑定的自定义属性是对所述页面元素预设的自定义属性。

在一实施例中,所述确定单元还用于:在上报所述页面元素事件以及所述页面元素事件统计信息之前,确定页面元素被访问时,将页面元素访问事件上报给页面根节点,并确定所述根节点中绑定了所述页面元素访问事件的上报事件方法。

本发明实施例还提供一种电子设备,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行上述可能的实施方式中任一所述的方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时,执行上述可能的实施方式中任一所述的方法。

可以理解的是,虽然本文中使用“第一”、“第二”等表述来描述本发明的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。

进一步可以理解的是,本发明实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。

本发明实施例涉及的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。

此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。

出于示例和描述的目的,已经给出了本发明实施的前述说明。前述说明并非是穷举性的也并非要将本发明限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本发明的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本发明的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本发明。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1