具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
如图1所示,为本说明书实施例提供一种埋点应用场景示意图,服务器100中为一个应用创建动态化模板101,且动态化模板101中写入有各个行动点的埋点逻辑,客户端200在打开对应的应用以加载动态化模板101,并使用动态化框架处理渲染界面;通过预先注册的监听器,监听所述动态化模板传回的事件数据;解析所述事件数据并埋点;然后将解析后的数据统一加入埋点数据池,等待所述应用退出时将所述埋点数据池中的所有埋点数据上报服务器100,从而使得服务器200能够获取到所述埋点数据。
第一方面,如图2所示,本说明书实施例提供一种埋点方法,包括:
S202、获取待埋点的行动点;
S204、获取用于采集所述行动点的埋点数据的埋点逻辑;
S206、将所述埋点逻辑写入对应的动态化模板中,并发布所述动态化模板;
S208、在所述动态化模板运行时,获取通过所述埋点逻辑采集的所述行动点的埋点数据。
本说明实施例中提供的埋点方法应用在服务器中,所述服务器可以是笔记本电脑、台式电脑、平板电脑和一体机等设备。
其中,在步骤S202中,可以根据提出新的埋点需求,获取所述行动点;也可以根据已有埋点的修改需求,获取所述行动点,本说明书不作具体限制。
本说明书实施例中,所述行动点是指能够接收用户操作的点,所述埋点数据包括点击数据和曝光数据等数据中的一种或多种。
本说明书实施例中,所述行动点可以为一个或多个,在所述行动点为多个时,每个行动点都具体唯一的标识,以便于通过标识对行动点进行区分,其中,每个行动点的标识可以为该行动点在屏幕界面上的区块标识。
例如,参见图3,以生活号主页卡片30为例,首先获取在生活号主页卡片30上需要埋点的行动点31和行动点32,为了区分行动点31和行动点32,行动点31的唯一标识可以为a138.b1454.c2949-2.0,行动点32的唯一标识可以为a138.b1454.c2949-2.1。
其中,行动点31和行动点32是同一个卡片上的,因此,行动点31和行动点32可以具有一些共同的通用参数,例如行动点31和行动点32具有共同的通用参数包括生活号主页卡片30的卡片ID用CardId表示、生活号主页卡片30的身份ID用SourceId表示和生活号卡片30的公共ID用PublicId表示。
接下来执行步骤S204,获取利用javascript(简称JS)代码、C代码和C++代码等代码中一种代码编写的所述埋点逻辑。下面具体以所述埋点逻辑使用JS代码编写为例。
具体来讲,可以获取所述埋点逻辑的约定编写格式;然后再获取根据所述约定编写格式使用javascript代码编写的所述埋点逻辑。
本说明书实施例中,所述约定编写格式可以是服务器和客户端约定编写所述埋点逻辑的代码格式,所述约定编写格式可以是依照客户端的native代码约定格式,即使用客户端的native代码约定格式编码所述埋点逻辑,如此,使得客户端在运行携带有所述埋点逻辑的动态化模板时,能够识别并运行所述埋点逻辑,从而采集所述行动点的埋点数据。
本说明书实施例中,在所述埋点数据包括曝光数据和点击数据时,所述埋点逻辑具体包括:若检测到某个行动点被用户点击之后,则采集该行动点的曝光数据和点击数据作为该行动点的埋点数据;若检测到某个行动点曝光且未被用户点击之后,则采集该行动点的曝光数据作为该行动点的埋点数据。
具体来讲,在一个行动点被用户点击之后,该行动点必然被曝光了,此时,采集该行动点的曝光数据和点击数据;一个行动点被曝光之后,可能会被用户点击,也可能不会被用户点击,此时,在该行动点未被用户点击时,仅采集该行动点的曝光数据。
例如,参见图3,由于需要采集行动点31和行动点32的埋点数据,因此,所述埋点逻辑可以为可以为统计行动点31和行动点32的点击数据和曝光数据,所述埋点逻辑的JS代码具体如下:
其中,BizMonitor表示曝光参数,ContentID表示点击参数;通过上述埋点逻辑,在行动点31每次被点击时,采集的埋点数据为a138.b1454.c2949-2.0、BizMonitor:0354和ContentID:SD42324,在行动点每次曝光未被点击时,采集的埋点数据为a138.b1454.c2949-2.0和BizMonitor:0354,如此,通过所述埋点逻辑可以采集到行动点31的所有埋点数据;同理,通过所述埋点逻辑可以采集到行动点32的所有埋点数据。
接下来执行步骤S206,将所述埋点逻辑写入对应的动态化模板中,然后验证所述动态化模板,在验证通过之后,发布所述动态化模板,其中,在发布所述动态化模板时,可以采用灰度发布的方式进行发布,灰度发布的方式能够确保发布的实时性和可控性。
本说明书实施例中,所述动态化模板是通过鸟巢和weex等动态化框架实现热更新可执行代码的能力的模板,已发布的所述动态化模版将经由客户端动态化框架拉取并缓存,等待执行。
具体来讲,现有技术中通常是使用native代码埋点,而native代码埋点需要理解具体业务逻辑,例如用户发出的操作,需要记录用户携带的参数a其值为AA,携带的参数b其值为BB;而本说明实施例native代码不需要理解具体业务,而是由所述埋点逻辑通知native代码,此处需记录参数a其值为AA;参数b其值为BB。而且将所述埋点逻辑写入所述动态化模板中,使得所述动态化模板在发布之后,即可通过所述埋点逻辑采集行动点的埋点数据,无需等到发布新版客户端才能采集行动点的埋点数据,能够有效提高采集埋点数据的及时性。接下来执行步骤S208,在发布所述动态化模板之后,若所述动态化模板被执行,则会使用所述埋点逻辑采集所述行动点的埋点数据并上传,从而接收到所述行动点的埋点数据。
具体来讲,若客户端进入与所述行动点对应的应用中,则检测所述动态化模板的缓存情况,若已缓存则无需拉取所述动态化模板,若未缓存则拉取所述动态化模板;然后将已缓存的所述动态化模板加载,准备数据,然后使用动态化框架处理渲染界面;通过预先注册的监听器,监听所述动态化模板传回的事件数据;解析所述事件数据并埋点;然后将解析后的数据统一加入埋点数据池,等待所述应用退出时将所述埋点数据池中的所有数据上报,此过程会自动去重并保证埋点数据为最新;最后进行埋点数据采集,写入并上传,从而,使得
例如,参见图3,以客户端代码实现为例,生活号主页卡片30以一个动态化模版形式进行渲染,所述动态化模版通过开发平台进行发布,以客户端请求拉取的方式缓存在客户端。当需要进行界面渲染时,由客户端动态化引擎加载渲染,并执行写在其中的埋点逻辑以采集行动点的埋点数据,其中,客户端执行步骤具体如下:首先执行步骤4.1、进入生活号主页卡片30的主页中,检查动态化模版缓存情况(若无缓存则拉取模版);接着执行步骤4.2、将已缓存的所述动态化模版加载,准备数据,交给动态化框架处理渲染界面;接着执行步骤4.3、通过预先注册的监听器,监听所述动态化模板传回的事件数据;接着执行步骤4.4、解析所述事件数据并埋点,此过程客户端无需理解具体埋点内容,只需要依照约定的结构解析即可;接着执行步骤5、解析后的数据统一加入埋点数据池,等待退出生活号主页卡片30的主页时统一上报,此过程会自动去重,并保证埋点数据为最新;接着执行步骤6、埋点数据采集,写入并上传。到此整个流程结束,如此,使得服务器能够接收到客户端上传的埋点数据。
具体来讲,以生活号主页卡片30为例,在将所述埋点逻辑写入生活号主页卡片30的动态化模板之后,客户端在打开进入生活号主页卡片30的主页中,通过加载所述动态化模板并渲染,如此,会执行写在所述动态化模板中的所述埋点逻辑,通过所述埋点逻辑采集行动点31和行动点32的埋点数据,在退出生活号主页卡片30的主页时,将采集的行动点31和行动点32的所有埋点数据上传到服务器,使得服务器获取到行动点31和行动点32的所有埋点数据。
本说明书实施例中,通过将所述埋点逻辑写入到所述动态化模板中,使得客户端在运行发布的所述动态化模板的过程中,会自动通过所述埋点逻辑采集所述行动点的埋点数据,然后上传到服务器;如此,可以实现不依赖客户端发版,即可短时间内全量触达用户,可实时更新上报采集的埋点数据,从而提升采集埋点数据的时效性和可控性。
第二方面,基于与第一方面的同一发明构思,如图4所示,本说明书实施例提供一种埋点装置,包括:
行动点获取单元401,用于获取待埋点的行动点;以及
埋点逻辑获取单元402,用于获取用于采集所述行动点的埋点数据的埋点逻辑;
动态化模板发布单元403,用于将所述埋点逻辑写入对应的动态化模板中,并发布所述动态化模板;
埋点数据获取单元404,用于在所述动态化模板运行时,获取通过所述埋点逻辑采集的所述行动点的埋点数据。
在一种可选方式中,埋点逻辑获取单元402,具体用于获取使用javascript代码编写的所述埋点逻辑。
在一种可选方式中,埋点逻辑获取单元402,具体用于获取所述埋点逻辑的约定编写格式;根据所述约定编写格式使用javascript代码编写的所述埋点逻辑。
本说明书实施例中,所述约定编写格式可以是服务器和客户端约定编写所述埋点逻辑的代码格式,所述约定编写格式可以是依照客户端的native代码约定格式,即使用客户端的native代码约定格式编码所述埋点逻辑,如此,使得客户端在运行携带有所述埋点逻辑的动态化模板时,能够识别并运行所述埋点逻辑,从而采集所述行动点的埋点数据。在一种可选方式中,动态化模板发布单元403,具体用于通过灰度发布的方式发布所述动态化模板。
本说明书实施例中,所述动态化模板是通过鸟巢和weex等动态化框架实现热更新可执行代码的能力的模板,已发布的所述动态化模版将经由客户端动态化框架拉取并缓存,等待执行。
在一种可选方式中,所述埋点逻辑获取单元402,具体用于在所述埋点数据包括曝光数据和点击数据时,若检测到某个行动点被用户点击之后,则采集该行动点的曝光数据和点击数据作为该行动点的埋点数据;若检测到某个行动点曝光且未被用户点击之后,则采集该行动点的曝光数据作为该行动点的埋点数据。
例如,参见图3,以客户端代码实现为例,生活号主页卡片30以一个动态化模版形式进行渲染,所述动态化模版通过开发平台进行发布,以客户端请求拉取的方式缓存在客户端。当需要进行界面渲染时,由客户端动态化引擎加载渲染,并执行写在其中的埋点逻辑以采集行动点的埋点数据,其中,客户端执行步骤具体如下:首先执行步骤4.1、进入生活号主页卡片30的主页中,检查动态化模版缓存情况(若无缓存则拉取模版);接着执行步骤4.2、将已缓存的所述动态化模版加载,准备数据,交给动态化框架处理渲染界面;接着执行步骤4.3、通过预先注册的监听器,监听所述动态化模板传回的事件数据;接着执行步骤4.4、解析所述事件数据并埋点,此过程客户端无需理解具体埋点内容,只需要依照约定的结构解析即可;接着执行步骤5、解析后的数据统一加入埋点数据池,等待退出生活号主页卡片30的主页时统一上报,此过程会自动去重,并保证埋点数据为最新;接着执行步骤6、埋点数据采集,写入并上传。到此整个流程结束,如此,使得服务器能够接收到客户端上传的埋点数据。
第三方面,基于与前述实施例中埋点方法同样的发明构思,本说明书实施例还提供一种服务器,如图5所示,包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的计算机程序,所述处理器502执行所述程序时实现前文所述埋点方法的任一方法的步骤。
其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器502代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口505在总线500和接收器501和发送器503之间提供接口。接收器501和发送器503可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器502负责管理总线500和通常的处理,而存储器504可以被用于存储处理器502在执行操作时所使用的数据。
第四方面,基于与前述实施例中埋点方法的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述埋点方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。