CN113656102A - 数据埋点方法及装置、存储介质、电子设备 - Google Patents

数据埋点方法及装置、存储介质、电子设备 Download PDF

Info

Publication number
CN113656102A
CN113656102A CN202110942308.8A CN202110942308A CN113656102A CN 113656102 A CN113656102 A CN 113656102A CN 202110942308 A CN202110942308 A CN 202110942308A CN 113656102 A CN113656102 A CN 113656102A
Authority
CN
China
Prior art keywords
buried point
click
point
page
buried
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
Application number
CN202110942308.8A
Other languages
English (en)
Inventor
王敏
杨运心
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Cloud Music Technology Co Ltd
Original Assignee
Hangzhou Netease Cloud Music Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Netease Cloud Music Technology Co Ltd filed Critical Hangzhou Netease Cloud Music Technology Co Ltd
Priority to CN202110942308.8A priority Critical patent/CN113656102A/zh
Publication of CN113656102A publication Critical patent/CN113656102A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及数据埋点方法及装置,存储介质和电子设备。所述方法包括:响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件;基于所述点击埋点事件调用已绑定的点击埋点的回调方法;通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。本公开的方案能够实现埋点功能的组件化,并实现将埋点信息的产生和上报进行有效的分离,便于对埋点数据上报的异步操作和实现批处理的功能,极大的提升了埋点性能,并能够大幅度减轻服务器的压力。

Description

数据埋点方法及装置、存储介质、电子设备
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及数据埋点方法及装置,存储介质和电子设备。
背景技术
本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
在目前的技术中,可以通过埋点的方式在网页中进行数据采集,再对采集的数据进行分析。例如,现有技术中包括上报工具类埋点的方案,以及标签属性类埋点的方案。其中,上报工具类埋点的方案能够将上报埋点的接口请求简单封装,给开发者调用;例如应用于页面曝光的场景中。标签属性类埋点的方案可以将点位信息、点位类型等数据通过HTML的标签属性直接附着在页面上,仅需要一层很简单的封装。
发明内容
但是,在一些技术中,上报工具类埋点的方案需要开发者自行处理所需的事件、执行埋点上报,工作量极大,成本极高,且容易出现参数的漏报、错报;而标签属性类埋点的方案对页面性能有极大的挑战,并且隐含一些不确定性。
为此,非常需要一种改进的数据埋点方法及装置、存储介质和电子设备,以提供一种开发成本低且易于维护的数据埋点方案。
在本上下文中,本发明的实施方式期望提供一种数据埋点方法和装置、存储介质和电子设备。
根据本公开的一个方面,提供一种数据埋点方法,包括:响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件;
基于所述点击埋点事件调用已绑定的点击埋点的回调方法;
通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。
在本公开的一种示例性实施例中,所述方法还包括:
通过元素监听组件监听所述页面中待检测元素对应的曝光状态;
在监听到所述页面中所述待检测元素曝光状态变化时,通知所述待检测元素对应的曝光埋点;
所述曝光埋点基于所述待检测元素变化的曝光状态生成第二埋点信息,并将所述第二埋点信息写入所述埋点上报队列。
在本公开的一种示例性实施例中,所述方法还包括:
通过交叉观察器实现所述元素监听组件,以监控所述待检测元素在所述页面中的曝光状态。
在本公开的一种示例性实施例中,所述方法还包括:
将所述第一埋点信息、第二埋点信息写入本地存储。
在本公开的一种示例性实施例中,所述方法还包括:
识别所述埋点上报队列中各埋点信息对应的埋点点位的类型;
根据点位类型对应的预设上报频率将同一类型的埋点信息统一上报。
在本公开的一种示例性实施例中,所述方法还包括:
读取所述埋点上报队列中各埋点信息对应的配置信息,并根据所述配置信息确定所述埋点信息对应的上报时机。
在本公开的一种示例性实施例中,所述方法还包括:
在所述页面对应的页面入口执行初始化,加载埋点对应的配置文件;
注册所述页面对应的曝光事件;以及
启动所述埋点上报队列对应的定时任务。
根据本公开的一个方面,提供一种数据埋点装置,包括:
点击响应模块,用于响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件;
回调方法调用模块,用于基于所述点击埋点事件调用已绑定的点击埋点的回调方法;
点击事件上报模块,用于通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。
在本公开的一种示例性实施例中,所述装置还包括:
曝光检测模块,通过元素监听组件监听所述页面中待检测元素对应的曝光状态;
曝光处理模块,用于在监听到所述页面中所述待检测元素曝光状态变化时,通知所述待检测元素对应的曝光埋点;
曝光事件上报模块,用于所述曝光埋点基于所述待检测元素变化的曝光状态生成第二埋点信息,并将所述第二埋点信息写入所述埋点上报队列。
在本公开的一种示例性实施例中,所述曝光检测模块包括:通过交叉观察器实现所述元素监听组件,以监控所述待检测元素在所述页面中的曝光状态。
在本公开的一种示例性实施例中,所述装置还包括:
数据存储模块,用于将所述第一埋点信息、第二埋点信息写入本地存储。
在本公开的一种示例性实施例中,所述装置还包括:
上报处理模块,用于识别所述埋点上报队列中各埋点信息对应的埋点点位的类型;根据点位类型对应的预设上报频率将同一类型的埋点信息统一上报。
在本公开的一种示例性实施例中,所述装置还包括:
配置信息处理模块,用于读取所述埋点上报队列中各埋点信息对应的配置信息,并根据所述配置信息确定所述埋点信息对应的上报时机。
在本公开的一种示例性实施例中,所述装置还包括:
初始化处理模块,用于在所述页面对应的页面入口执行初始化,加载埋点对应的配置文件;注册所述页面对应的曝光事件;以及启动所述埋点上报队列对应的定时任务。
根据本公开的一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时上述的数据埋点方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据埋点方法。
根据本公开实施方式的数据埋点方法,通过预先为点击埋点时间绑定点击埋点的回调方法,从而可以在待检测控件被点击后触发对应的点击埋点事件,并调用对应的点击埋点的回调方法,实现埋点功能的组件化。并且,通过将该点击事件对应的第一埋点信息写入埋点上报对队列,实现将埋点信息的产生和上报进行有效的分离,进而便于对埋点数据上报的异步操作和实现批处理的功能,极大的提升了埋点性能,并能够大幅度减轻服务器的压力。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的数据埋点方法的流程图;
图2示意性地示出了根据本发明实施方式的数据埋点方法的***架构示意图;
图3示意性地示出了根据本公开实施方式的数据初始化的方法的流程图;
图4示意性地示出了根据本公开实施方式的面对曝光埋点的数据埋点方法的示意图;
图5示意性地示出了根据本公开实施方式的页面中元素曝光的示意图;
图6示意性地示出了根据本发明实施方式的数据上报方法的示意图;
图7示意性地示出了根据本公开实施方式的页面执行的火焰图;
图8示意性地示出了根据本公开实施方式的数据埋点装置的方框图;
图9示出了根据本公开实施方式的存储介质的示意图;以及
图10示意性示出了根据公开实施方式的电子设备的方框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提供一种数据埋点方法、数据埋点装置、存储介质和电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
发明概述
本发明人发现,在相关技术中,对于上报工具类埋点,能够将上报埋点的接口请求简单封装,给开发者调用,使用起来比较繁琐。例如页面曝光的应用场景,开发者需要自己判断页面的曝光开始和曝光结束,计算相应的曝光时长,拼接必要的参数,然后调用工具执行上报。该方案虽然简单,能够提供轻量级的埋点方案,但缺陷也比较明显,例如:使用比较繁琐,开发体验较差;开发者需要自行处理所需的事件,执行埋点上报,工作量极大,成本极高;由于需要开发者自行处理埋点上报参数,很容易出现参数的漏报、错报;因为需要开发者自行处理埋点的上报参数,很难约束不同页面,不同模块的埋点形成统一的规范,可维护性和可靠性较差。在相关的标签属性类埋点方案中,能够将点位信息,点位类型等数据通过HTML的标签属性直接附着在页面上。但是这样的方案由于仅仅是向HTML元素附加自定义的标签属性,所以一定程度上可以说是框架无关的,对接目前前端主流的react、vue等框架,仅需要一层很简单的封装。由于组件层简化,需要在页面加载完成后立即的执行初始化操作中,遍历整个文档的每个DOM元素,这样的操作对页面性能的影响极大,特别是经过服务端渲染的复杂页面,DOM元素规模越大,性能的损耗也会越大。另外,由于页面中的DOM结构不是一成不变的,可能新的需要曝光的元素会随时***页面中,所以该方案还需要通过MutationObserver API监听页面元素的变化,实时响应埋点属性标签的变化,这对页面运行时的性能也是一种极大的挑战,很可能会阻塞用户的操作。最后,由于大量数据是附着在元素的标签属性上的,点击等事件通常会基于事件冒泡机制,在最外层的body上处理,一旦中间某层阻止了事件的传播,会导致埋点的遗漏。所以此类方案存在一定的不确定性。
鉴于上述内容,本发明的基本思想在于:通过组件封装埋点功能,从而可以提升开发效率。并且通过无侵入式的组件设计,可以提升埋点性能,不干扰常规的产品逻辑。以及,将埋点数据的产生和上报进行分离,实现对埋点数据上报的批处理,提升埋点性能,减轻服务器压力。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面结合附图及实施例来描述根据本公开示例性实施方式的数据埋点方法。
参考图2示,图2示意性示出了可以应用本公开实施例的技术方案的示例性***架构的示意图。如图2所示,***架构可以包括配置终端设备201和服务器203。其中,上述的终端设备可以是手机、电脑、平板电脑等智能终端设备。终端设备201和服务器203之间通过网络202进行数据传输。网络可以包括各种连接类型,例如有线通信链路、无线通信链路等等。其中,图2中的终端设备和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器203可以是多个服务器组成的服务器集群等。上述的数据埋点方法可以在服务器端或者用户侧的终端设备执行。或者,也可以由服务器端和用户终端协作执行。例如,用户可以在终端设备上对页面中的元素进行埋点,对于采集的埋点数据可以上传至服务器,用于进行数据分析。
参考图1所示,所述数据埋点方法可以包括以下步骤:
S11、响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件;
S12、基于所述点击埋点事件调用已绑定的点击埋点的回调方法;
S13、通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。
在本公开实施方式的数据埋点方法中,一方面,通过预先为点击埋点时间绑定点击埋点的回调方法,从而可以在待检测控件被点击后触发对应的点击埋点事件,并调用对应的点击埋点的回调方法,实现埋点功能的组件化。另一方面,通过将该点击事件对应的第一埋点信息写入埋点上报对队列,实现将埋点信息的产生和上报进行有效的分离,进而便于对埋点数据上报的异步操作和实现批处理的功能,极大的提升了埋点性能,并能够大幅度减轻服务器的压力。
在本公开的示例性实施方式中,上述的数据埋点方法可以包括初始化过程。参考图3所示,具体可以包括:
步骤S101,在所述页面对应的页面入口执行初始化,加载埋点对应的配置文件;
步骤S102,注册所述页面对应的曝光事件;以及
步骤S103,启动所述埋点上报队列对应的定时任务。
在本公开的示例性实施方式中,在浏览器页面中,在进入页面后,可以对页面及页面内容进行初始化。具体的,可以在页面入口执行Tracker.init方法加载埋点配置文件,同时注册页面曝光相关事件,启动定时任务处理埋点上报队列中已采集待上传的各点位对应的数据。
具体的,可以在页面中对应的元素布置埋点点击(Tracker Click)组件和埋点曝光(Tracker Exposure)组件。其中,可以针对页面中的按钮布置点击埋点组件,为页面中的元素布置曝光埋点组件。
在对页面进行初始化时,还可以同步对SDK(Software Development Kit,件开发工具包)进行初始化。对于页面的曝光,可以通过对浏览器的页面生命周期中的visibilitychange(页面可见性)事件进行监控,并将其作为采集页面曝光的时机,来确定页面的曝光开始时间和页面的曝光结束时刻。
在步骤S11中,响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件。
在本公开的示例性实施方式中,提供一种点击埋点组件(Tracker Click),应用于点击埋点,可以布置于页面中的控件或按钮,对用户在页面中的点击事件进行相关数据的采集。
当用户在页面中点击按钮或者控件时,即上述的待检测控件,便可以首先触发该埋点对应的点击埋点事件。
具体来说,点击埋点组件可以通过包裹在业务组件外层,或者包裹在DOM元素外层,实现无侵入式的点击埋点组件。其优势在于,不会对页面中的其他组件造成侵入,导致后续的不可维护,涉及到的埋点组件也不会耦合到业务组件中去,也不引入任何新的DOM(Document Object Model,文档对象模型)。
举例来说,可以通过将待检测控件配置为点击埋点的子级组件的方式来实现将点击埋点组件包裹在业务组件的外层;并将点击埋点组件与点击事件进行绑定。举例来说,基于React框架,点击埋点组件的实现可以包括:
Figure BDA0003215560530000091
点击埋点组件会传入handle Click回调函数,开发者在使用点击埋点组件时只需调用即可。例如,可以通过以下方式进行调用:
Figure BDA0003215560530000092
在实现调用后对页面进行渲染,最终渲染完成的html(Hyper Text MarkupLanguage,超文本标记语言)仅包含点击按钮(button),从而实现无侵入式的点击埋点组件。
在步骤S12中,基于所述点击埋点事件调用已绑定的点击埋点的回调方法。
在本公开的示例性实施方式中,在触发点击埋点事件后,便可以调用对应的点击埋点组件对应的回调方法。例如,调用上述的handle Click函数。
在步骤S13中,通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。
在本公开的示例性实施方式中,通过调用的点击埋点组件的回调函数对用户点击行为的相关参数进行采集,并生成点击埋点数据,即上述的第一埋点信息,从而生成针对用户当前点击事件的埋点数据。然后,便可以将该第一埋点信息写入埋点上报队列中。
举例来说,上述的第一埋点信息可以包括用户行为数据,例如埋点标识、时间、事件类型、交互内容等;或者,还可以包括页面环境数据,例如页面加载进度、异常信息、响应时延等。
在本公开的示例性实施方式中,上述的点击埋点组件包裹DOM元素或者React组件,并为点击埋点组件绑定点击事件,点击事件的回调函数由埋点库实现并暴露给点击埋点组件。当用户在页面中产生点击行为时,便可以调用点击埋点组件的回调函数,从而记录用户行为,产生埋点数据并上报。举例来说,用户的点击行为触发埋点数据的产生及上报,可以通过以下方法:
Figure BDA0003215560530000101
具体来说,当用户在页面上点击button(按钮)之后,便会触发按钮的on Click事件(点击埋点事件),从而触发点击埋点组件的handle Click回调方法,它属于TrackerClick(点击***)的内部方法,我们在组件内部根据Tracker Click的name属性查找它在配置文件中的相关配置并把点位加入到埋点上报队列中。
在本公开的示例性实施方式中,针对页面中的曝光埋点,提供一种无侵入式的曝光埋点组件(Tracker Exposure),用于曝光埋点。参考图4所示,上述的数据埋点方法还可以包括:
步骤S21,通过元素监听组件监听所述页面中待检测元素对应的曝光状态;
步骤S22,在监听到所述页面中所述待检测元素曝光状态变化时,通知所述待检测元素对应的曝光埋点;
步骤S23,所述曝光埋点基于所述待检测元素变化的曝光状态生成第二埋点信息,并将所述第二埋点信息写入所述埋点上报队列。
在步骤S21中,通过元素监听组件监听所述页面中待检测元素对应的曝光状态。
在本公开的示例性实施方式中,对于页面中的待检测元素,预先布置曝光埋点。在页面初始化时,便可以自动注册关于页面曝光的相关事件。
具体来说,可以通过交叉观察器实现所述元素监听组件,以监控所述待检测元素在所述页面中的曝光状态。其中,交叉观察器是指Intersection Observer API,是一个异步观察目标元素与其祖先元素或顶级文档视窗交叉状态的接口。举例来说,元素监听组件的实现方法可以包括:
Figure BDA0003215560530000111
Figure BDA0003215560530000121
参考图5所示,被虚线框标记的待检测元素,当出现在视窗Viewport中时,便可以通过Intersection Observer API获取待检测元素的曝光通知。并且,还可以自定义曝光比例。
举例来说,在React框架下,上述的曝光埋点组件的实现,可以通过以下方法:
Figure BDA0003215560530000122
Figure BDA0003215560530000131
在本公开的示例性实施方式中,可以通过将待检测元素配置为曝光埋点组件的子级组件,实现对DOM元素或React组件的包裹,进而实现无侵入式的曝光埋点组件。另外,还可以将曝光埋点组件配置为元素监听组件的子级组件,从而可以在元素监听组件监听到待检测元素在页面中曝光时,首先将该信息通知至元素曝光组件。对于曝光埋点组件,开发者在使用时,只需调用该曝光埋点组件即可,如上述对点击埋点组件的调用方式。例如,曝光埋点组件的使用方法可以包括:
Figure BDA0003215560530000132
在步骤S22中,在监听到所述页面中所述待检测元素曝光状态变化时,通知所述待检测元素对应的曝光埋点。
在本公开的示例性实施方式中,当监听到待检测元素在页面中曝光时,便可以生成针对该待检测元素的曝光事件;并将将该曝光事件的消息通知已绑定的曝光埋点组件。
在步骤S23中,所述曝光埋点基于所述待检测元素变化的曝光状态生成第二埋点信息,并将所述第二埋点信息写入所述埋点上报队列。
在本公开的示例性实施方式中,曝光埋点组件在接收到曝光事件时,便可以采集该待检测元素的相关数据,例如曝光开始时间、曝光结束时间、曝光时长、待检测元素的标识信息、网络状态等等。基于采集的各项参数生成曝光埋点数据,即上述的第二埋点信息,并添加至埋点上报队列中。
在一些示例性实施方式中,对于曝光埋点组件来说,基于Intersection ObserverAPI实现用于监听元素曝光的基础组件Observer,即元素监听组件。在曝光埋点组件中,通过Observer组件监听元素曝光,而曝光时长等参数由曝光埋点组件进行处理,然后把处理好的点位通过内部的append方法添加到埋点上报队列中。从而实现当检测到待检测元素出现在视窗中时,曝光埋点组件便能够获取该消息,并生产对应的曝光埋点数据并上报。
基于上述内容,在本公开的示例性实施方式中,在将上述的点击埋点数据和曝光埋点数据写埋点上报队列的同时,还可以将点击埋点数据和曝光埋点数据,即第一埋点信息和第二埋点信息,同步写入本地存储。或者,也可以是内存队列的本地存储。从而使得埋点上报队列中的数据未能及时上报时,在下一次打开页面时可以及时将数据进行补发。
在本公开的示例性实施方式中,参考图6所示,上述的方法还可以包括:
步骤S31,识别所述埋点上报队列中各埋点信息对应的埋点点位的类型;
步骤S32,根据点位类型对应的预设上报频率将同一类型的埋点信息统一上报。
具体来说,可以将埋点的触发和埋点数据的上报划分为两个独立的里程。对于数据上报队列而言,可以配置一定的队列上报机制,用于控制***到队列中的各埋点对应的埋点数据。具体而言,可以为数据上报队列配置异步定时任务。具体的,在数据上报队列中,可以预先配置不同类型的数据具有不同的上报频率。例如,将点击埋点对应的埋点数据上报频率配置为2s,将曝光埋点对应的埋点数据上报频率配置为1s。基于预先配置的不同的上报频率,可以将埋点上报队列中当前的点击埋点的各点击埋点数据统计上报,以及将当前的曝光埋点数据统一上报,实现对上报数据的定时处理。通过将同一类型的埋点数据合并在一起同时上报,可以有效减少请求数,避免服务端压力过大。此外,各埋点数据在上报前还可以自动添加公共参数。
或者,在一些示例性实施方式中,在将埋点数据写入埋点上报队列后,还可以读取埋点上报队列中各事件对应的配置信息,并根据配置信息确定该事件的埋点数据对应的上报时机。
具体的,基于页面中元素的不同重要程度、不同业务需求以及不同的数据分析要求,可以不同的事件或元素配置或自定义不同的上报策略,并根据上报策略生成对应的配置文件。在数据上报队列中,可以为该些单独设置配置文件的埋点数据添加区别的标识信息,并使数据上报队列可以对该些埋点数据按自定义的规则进行上报。例如,对付款类的按钮的点击埋点,可以配置其埋点数据为实时上报。或者,对于其他统计类的曝光埋点数据,可以配置其埋点数据的上报周期为2h,等等。
此外,对于数据上报队列,还可以将点击埋点数据的上报和曝光埋点数据的上报配置不同的子任务,从而实现不同子任务的异步定时执行。
对于埋点上报队列来说,可以通过一配置文件来管理相关的配置信息,例如上报频率、定时任务等参数。可以利用JSON格式维护配置字段。
埋点上报队列机制通过将埋点数据的产生和上报过程分离,使SDK的架构更加清晰合理,同时通过频率控制,批量处理的方式,极大的提升了埋点性能,减轻服务器压力。
举例来说,异步处理的数据上报方法可以基于Promise API的fetch方法。例如,其实现方法可以包括以下内容:
Figure BDA0003215560530000161
此外,在一些其他的实施方式中,对于埋点数据采集、上报过程的内部调度可以基于Macro Task(宏任务)和Micro Task(微任务)的异步事件循环来实现,从而使得整个过程拆分为多个微小的任务依次执行。举例来说,在初始化过程中,可以将为埋点加载对应的配置文件、注册曝光时间、启动定时任务分别配置对应的微任务。对于数据上报过程,可以为曝光埋点数据的上报、点击埋点数据的上报分别配置对应的微任务。
例如,执行初始化操作时,可以使用set Timeout为0的函数(Macro Task)将“页面级别的曝光”和“定时任务的启动”两个操作拆分在子任务中,避免初始化操作执行时间过长、产生longtask,影响用户交互。举例来说,其实现方法可以包括:
Figure BDA0003215560530000162
Figure BDA0003215560530000171
综上所述,本公开提供的数据埋点方法,提供了无侵入式的点击埋点组件和曝光埋点组件,以组件的形式实现埋点,使用时将埋点组件包裹在业务组件或者DOM元素的外层,不会对页面中的其他组件造成侵入,也不会引入新的DOM元素,对页面的整体结构没有影响;对业务逻辑代码也没有侵入,完全解耦,利于后期维护且开发成本低。并且,通过设置埋点上报的缓冲队列,将产生的埋点数据首先写入该队列中,通过配置定时任务定时处理队列中的信息,针对不同类型的点也可以应用不同的上报频率,实现自动合并批量上报,避免大量请求堆积影响页面性能,节省请求数。能够对实时性要求高的点位立即上报,实时性要求不高的点位批量上报,有效的减轻服务器压力。另外,通过异步无阻塞的埋点SDK设计,参考图7所示的页面执行结果,实现无longtask(长耗时任务),对页面性能没有任何影响。
示例性装置
在介绍了本公开示例性实施方式的数据埋点方法之后,接下来,参考图8对本公开示例性实施方式的数据埋点装置进行描述。
参考图8所示,本公开示例性实施方式的数据埋点装置80可以包括:点击响应模块801,回调方法调用模块802,点击事件上报模块803。其中,
所述点击响应模块801可以用于响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件。
所述回调方法调用模块802可以用于基于所述点击埋点事件调用已绑定的点击埋点的回调方法。
所述点击事件上报模块803可以用于通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。
根据本公开的示例性实施例,所述装置80还可以包括:曝光检测模块、曝光处理模块和曝光事件上报模块。其中,
所述曝光检测模块可以用于通过元素监听组件监听所述页面中待检测元素对应的曝光状态。
所述曝光处理模块可以用于在监听到所述页面中所述待检测元素曝光状态变化时,通知所述待检测元素对应的曝光埋点。
所述曝光事件上报模块可以用于所述曝光埋点基于所述待检测元素变化的曝光状态生成第二埋点信息,并将所述第二埋点信息写入所述埋点上报队列。
根据本公开的示例性实施例,所述曝光检测模块包括:通过交叉观察器实现所述元素监听组件,以监控所述待检测元素在所述页面中的曝光状态。
根据本公开的示例性实施例,所述装置80还可以包括:数据存储模块。
所述数据存储模块可以用于将所述第一埋点信息、第二埋点信息写入本地存储。
根据本公开的示例性实施例,所述装置80还可以包括:配置信息处理模块,
所述配置信息处理模块可以用于读取所述埋点上报队列中各埋点信息对应的配置信息,并根据所述配置信息确定所述埋点信息对应的上报时机。
根据本公开的示例性实施例,所述装置80还可以包括:初始化处理模块。
所述初始化处理模块可以用于在所述页面对应的页面入口执行初始化,加载埋点对应的配置文件;注册所述页面对应的曝光事件;以及启动所述埋点上报队列对应的定时任务。
由于本公开实施方式的数据埋点装置的各个功能模块与上述数据埋点方法公开实施方式中相同,因此在此不再赘述。
示例性存储介质
在介绍了本公开示例性实施方式的数据埋点方法和装置之后,接下来,参考图9对本公开示例性实施方式的存储介质进行说明。
参考图9所示,描述了根据本公开的实施方式的用于实现上述数据处理方法的程序产品90,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
在介绍了本公开示例性实施方式的存储介质之后,接下来,参考图10对本公开示例性实施方式的电子设备进行说明。
图10显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同***组件(包括存储单元820和处理单元810)的总线830、显示单元840。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤。
存储单元820可以包括易失性存储单元,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以包括数据总线、地址总线和控制总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口850进行。电子设备800还包括显示单元840,其连接到输入/输出(I/O)接口850,用于进行显示。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了音频播放装置和音频分享装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种数据埋点方法,其特征在于,包括:
响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件;
基于所述点击埋点事件调用已绑定的点击埋点的回调方法;
通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。
2.根据权利要求1所述的数据埋点方法,其特征在于,所述方法还包括:
通过元素监听组件监听所述页面中待检测元素对应的曝光状态;
在监听到所述页面中所述待检测元素曝光状态变化时,通知所述待检测元素对应的曝光埋点;
所述曝光埋点基于所述待检测元素变化的曝光状态生成第二埋点信息,并将所述第二埋点信息写入所述埋点上报队列。
3.根据权利要求2所述的数据埋点方法,其特征在于,所述方法还包括:
通过交叉观察器实现所述元素监听组件,以监控所述待检测元素在所述页面中的曝光状态。
4.根据权利要求3所述的数据埋点方法,其特征在于,所述方法还包括:
将所述第一埋点信息、第二埋点信息写入本地存储。
5.根据权利要求3所述的数据埋点方法,其特征在于,所述方法还包括:
识别所述埋点上报队列中各埋点信息对应的埋点点位的类型;
根据点位类型对应的预设上报频率将同一类型的埋点信息统一上报。
6.根据权利要求3所述的数据埋点方法,其特征在于,所述方法还包括:
读取所述埋点上报队列中各埋点信息对应的配置信息,并根据所述配置信息确定所述埋点信息对应的上报时机。
7.根据权利要求1所述的数据埋点方法,其特征在于,所述方法还包括:
在所述页面对应的页面入口执行初始化,加载埋点对应的配置文件;
注册所述页面对应的曝光事件;以及
启动所述埋点上报队列对应的定时任务。
8.一种数据埋点装置,其特征在于,包括:
点击响应模块,用于响应于对页面中待检测控件的点击操作,触发所述待检测控件对应的点击埋点事件;
回调方法调用模块,用于基于所述点击埋点事件调用已绑定的点击埋点的回调方法;
点击事件上报模块,用于通过所述回调方法获取所述点击埋点对应的第一埋点信息,并将所述第一埋点信息写入埋点上报队列。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任一项所述的数据埋点方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任一项所述的数据埋点方法。
CN202110942308.8A 2021-08-17 2021-08-17 数据埋点方法及装置、存储介质、电子设备 Pending CN113656102A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110942308.8A CN113656102A (zh) 2021-08-17 2021-08-17 数据埋点方法及装置、存储介质、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110942308.8A CN113656102A (zh) 2021-08-17 2021-08-17 数据埋点方法及装置、存储介质、电子设备

Publications (1)

Publication Number Publication Date
CN113656102A true CN113656102A (zh) 2021-11-16

Family

ID=78479928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110942308.8A Pending CN113656102A (zh) 2021-08-17 2021-08-17 数据埋点方法及装置、存储介质、电子设备

Country Status (1)

Country Link
CN (1) CN113656102A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546377A (zh) * 2022-01-07 2022-05-27 北京达佳互联信息技术有限公司 埋点处理方法、装置、电子设备及存储介质
CN114692058A (zh) * 2022-06-01 2022-07-01 天津市普迅电力信息技术有限公司 基于vue架构下的自动化埋点方法、***、电子设备
CN116708063A (zh) * 2022-12-23 2023-09-05 荣耀终端有限公司 日志上报方法、电子设备、云服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182060A (zh) * 2018-01-31 2018-06-19 北京腾云天下科技有限公司 一种混合应用的埋点方法、移动终端及***
CN109474619A (zh) * 2018-12-17 2019-03-15 中国平安财产保险股份有限公司 数据加密上报方法及装置、数据解密方法及装置
CN110908879A (zh) * 2019-10-16 2020-03-24 平安普惠企业管理有限公司 埋点数据的上报方法、装置、终端和存储介质
CN112256701A (zh) * 2020-10-22 2021-01-22 广东万唯计算机服务有限公司 一种动态埋点数据采集***及其使用方法
CN113206869A (zh) * 2021-04-13 2021-08-03 上海哔哩哔哩科技有限公司 数据采集方法、装置、存储介质和电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182060A (zh) * 2018-01-31 2018-06-19 北京腾云天下科技有限公司 一种混合应用的埋点方法、移动终端及***
CN109474619A (zh) * 2018-12-17 2019-03-15 中国平安财产保险股份有限公司 数据加密上报方法及装置、数据解密方法及装置
CN110908879A (zh) * 2019-10-16 2020-03-24 平安普惠企业管理有限公司 埋点数据的上报方法、装置、终端和存储介质
CN112256701A (zh) * 2020-10-22 2021-01-22 广东万唯计算机服务有限公司 一种动态埋点数据采集***及其使用方法
CN113206869A (zh) * 2021-04-13 2021-08-03 上海哔哩哔哩科技有限公司 数据采集方法、装置、存储介质和电子设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546377A (zh) * 2022-01-07 2022-05-27 北京达佳互联信息技术有限公司 埋点处理方法、装置、电子设备及存储介质
CN114692058A (zh) * 2022-06-01 2022-07-01 天津市普迅电力信息技术有限公司 基于vue架构下的自动化埋点方法、***、电子设备
CN114692058B (zh) * 2022-06-01 2022-08-02 天津市普迅电力信息技术有限公司 基于vue架构下的自动化埋点方法、***、电子设备
CN116708063A (zh) * 2022-12-23 2023-09-05 荣耀终端有限公司 日志上报方法、电子设备、云服务器及存储介质
CN116708063B (zh) * 2022-12-23 2024-06-11 荣耀终端有限公司 日志上报方法、电子设备、云服务器及存储介质

Similar Documents

Publication Publication Date Title
CN113656102A (zh) 数据埋点方法及装置、存储介质、电子设备
US20200057658A1 (en) Method and system for loading resources
CN107239389B (zh) 一种在混合app中确定用户操作记录的方法及装置
US9584364B2 (en) Reporting performance capabilities of a computer resource service
CN108595316B (zh) 分布式应用的生命周期管理方法、管理器、设备和介质
US9886366B2 (en) Replay-suitable trace recording by service container
US8037458B2 (en) Method and system for providing a common structure for trace data
US20080127108A1 (en) Common performance trace mechanism
CN105408873A (zh) 诊断数据的基于活动的采样
CN111190673B (zh) 基于操作监测的页面展示方法、装置和电子设备
CN107045475B (zh) 测试方法和装置
CN106357719A (zh) 用于网络应用的基于页面的事件相关
US20090265719A1 (en) Application macro recording utilizing method interception
CN111813629A (zh) 一种Web页面的监控数据生成方法、装置及设备
CN113010395A (zh) 数据采集方法、装置、设备、介质和程序产品
US10339533B2 (en) Methods and systems for scalable session emulation
CN110188308B (zh) 客户端自动打点上报方法、存储介质、设备及***
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN113312036B (zh) Web页面的大屏显示方法、装置、设备及存储介质
CN113220403A (zh) h5拦截Android返回事件的方法、装置及电子设备
CN111475423A (zh) 数据录入方法、装置、电子设备及可读存储介质
CN110045952B (zh) 代码调用方法与装置
US9384120B2 (en) Testing of transaction tracking software
CN112650959A (zh) 页面加载时长的统计方法、装置、设备及存储介质
CN116069535A (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