一种支持动态场景配置的可视化埋点方法
文献发布时间:2023-06-19 10:16:30
技术领域
本发明涉及一种可视化埋点方法,特别涉及一种支持动态场景配置的可视化埋点方法。
背景技术
数据支撑业务的发展,驱动决策的落地。建立完整的数据采集、上报和分析平台非常必要,而其中数据采集的全面,精准和效率尤其重要。可视化埋点通过客户端发送自身交互界面的控件信息到MIS端,通过可视化界面配置埋点信息,其埋点维护较友善,且埋点成本比代码埋点低,但是,存在着以下几个问题:
1、对控件配置的埋点只能是固定的埋点值;
2、对控件配置的埋点只能由单一的点击事件触发;
3、无法实现带有逻辑判断的场景式的埋点配置;
4、针对新的业务场景无法支持动态的埋点更新。
因此,现有的可视化埋点方法有待提高。
发明内容
本发明要解决的技术问题是克服现有技术的缺陷,提供一种支持动态场景配置的可视化埋点方法,通过可视化埋点的事件类型和业务参数的配置,实现可视化埋点的动态场景配置,提高了数据采集的效率且实现了多场景下的埋点配置。
本发明为解决上述技术问题而采用的技术方案是提供一种支持动态场景配置的可视化埋点方法,包括如下步骤:S1:移动客户端埋点SDK采集页面中可埋点控件的信息,并发送所述可埋点控件的数据至MIS端;S2:MIS端在接收到所述可埋点控件的数据后,根据可埋点控件的类型进行埋点信息的配置;S3:MIS端在埋点信息配置完成后,通过长连接将埋点文件下发到移动客户端;S4:移动客户端埋点SDK在事件发生时,检测下发的埋点文件并匹配获取相应的埋点值。
进一步地,步骤S2中所述可埋点控件为需要场景化判断的控件时,通过添加事件类型和业务参数来根据场景配置不同的埋点信息;所述可埋点控件为单一事件触发控件时,则配置固定的埋点值。
进一步地,MIS端在配置需要场景化判断的控件的埋点信息时,选择添加的事件类型包括点击事件和手势事件,所述点击事件包括通用点击事件和PV事件,所述手势事件包括长按手势事件、拖动手势事件、滑动手势事件和缩放手势事件;同一个控件可设置多个事件类型,并根据具体的事件类型对应设置埋点值。
进一步地,MIS端在配置需要场景化判断的控件的埋点信息时,对于同一控件,设有不同的业务场景时,通过添加业务参数来关联不同的业务场景,所述业务参数包括业务参数名称和参数值;对于不同的业务场景添加不同的业务参数,并根据业务参数设置埋点值。
进一步地,所述业务参数在MIS端以页面为单位进行存储,在同一页面中,所有控件皆可关联相应的业务参数;同一控件根据事件类型和业务场景的不同可关联多个不同的业务参数。
进一步地,所述步骤S4中具体包括:S41:移动客户端埋点SDK监控所有已埋点控件事件的触发,包括点击事件和手势事件;移动客户端埋点SDK通过AOP的方式截获事件的触发;S42:移动客户端在已埋点控件事件发生时,检测下发的埋点文件,并在埋点文件中匹配控件名称和事件类型;S43:根据匹配的控件名称和事件类型判断是否存在业务参数,如存在,则通过运行时值检测得到业务参数的参数值;运行时值在iOS应用中通过运行时runtime得到,安卓应用中通过反射得到;S44:通过业务参数的业务参数名称和参数值来匹配获取触发的埋点值。
进一步地,所述步骤S43中同一控件关联多个业务参数时,移动客户端埋点SDK在事件触发时遍历检测每个业务参数来匹配埋点值。
进一步地,还包括场景化埋点配置的更新,在MIS端对需要更新埋点配置的控件进行埋点信息的配置;在更新的埋点信息配置完成后,通过长连接将更新的埋点文件下发到移动客户端;移动客户端埋点SDK在事件发生时,检测下发的更新后的埋点文件并匹配获取相应的埋点值。
进一步地,所述步骤S1中移动客户端埋点SDK嵌设在iOS应用或者安卓应用中,移动客户端埋点SDK采集当前页面截图和中可埋点控件的位置和尺寸信息。
与现有技术相比,本发明的有益效果如下:
本发明提供的支持动态场景配置的可视化埋点方法,实现了动态场景化的埋点配置,可以结合具体的事件类型和业务场景进行埋点采集,极大地提高了数据采集的灵活性和可扩展性,降低了埋点的开发成本和时间成本;对于移动应用线上出现的新增场景和复杂场景可以实现逻辑性埋点的动态配置和修改,使埋点可以根据应用线上运营的场景情况进行相应的更新,而无需依赖客户端发版。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中支持动态场景配置的可视化埋点方法流程图;
图2为本发明实施例中业务参数关联示意图;
图3为本发明实施例中业务参数判断流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为本发明实施例中支持动态场景配置的可视化埋点方法流程图。
请参见图1,本发明实施例的支持动态场景配置的可视化埋点方法,包括如下步骤:
S1:移动客户端埋点SDK(SoftwareDevelopmentKit软件开发工具包)采集页面中可埋点控件的信息,并发送所述可埋点控件的数据至MIS(ManagementInformationSystem管理信息系统)端;移动客户端埋点SDK嵌设在iOS(iOS是由苹果公司开发的移动操作系统)应用或者安卓应用中,移动客户端埋点SDK采集当前页面截图和中可埋点控件的位置和尺寸信息。
S2:MIS端在接收到所述可埋点控件的数据后,根据可埋点控件的类型进行埋点信息的配置;
S3:MIS端在埋点信息配置完成后,通过长连接将埋点文件下发到移动客户端;
S4:移动客户端埋点SDK在事件发生时,检测下发的埋点文件并匹配获取相应的埋点值。
具体地,本发明实施例的支持动态场景配置的可视化埋点方法,步骤S2中所述可埋点控件为需要场景化判断的控件时,通过添加事件类型和业务参数来根据场景配置不同的埋点信息;所述可埋点控件为单一事件触发控件时,则配置固定的埋点值。
MIS端在配置需要场景化判断的控件的埋点信息时,选择添加的事件类型包括点击事件和手势事件,所述点击事件包括通用点击事件和PV(PageView页面浏览量)事件,所述手势事件包括长按手势事件、拖动手势事件、滑动手势事件和缩放手势事件;同一个控件可设置多个事件类型,并根据各个具体的事件类型对应设置不同的埋点值。
对于同一控件,设有不同的业务场景时,通过添加业务参数来关联不同的业务场景,所述业务参数包括业务参数名称和参数值;对于不同的业务场景添加不同的业务参数,并根据业务参数设置埋点值。
业务参数在MIS端以页面为单位进行存储,在同一页面中,所有控件皆可关联相应的业务参数;同一控件根据事件类型和业务场景的不同关联多个不同的业务参数。
请参见图2,以对订单详情页面中的取消订单按钮设置埋点为例,需要根据不同的业务场景即订单类型来设置,如果业务场景是包车单订单类型,则埋点值为A,如果业务场景是预约单订单类型,则埋点值为B;
在MIS端添加订单类型作为业务参数,业务参数名称为订单类型,关联属性为移动端代码中的变量名,参数值为包车单和预约单,对应的关联值为0和1;埋点配置人员只需关注业务参数名称和参数值,关联属性和关联值是由开发人员提供,目的在埋点SDK在控件事件触发时读取关联属性的关联值,由关联属性的关联值关联到业务参数名称和参数值,根据此业务参数值匹配不同的埋点内容。
具体地,本发明实施例的支持动态场景配置的可视化埋点方法,步骤S4中具体包括:
S41:移动客户端埋点SDK监控所有已埋点控件事件的触发,包括点击事件和手势事件;移动客户端埋点SDK通过AOP(AspectOrientedProgramming面向切面编程)的方式截获事件的触发;
iOS应用中是通过runtime来实现AOP的,通过hook事件的响应方法来截获控件点击和手势操作(具体原理是采用Objective-C的MethodSwizzling机制,在运行时修改类的方法列表中SEL对应的函数IMP地址,从而将两个方法进行交换)。在实际应用时通常使用业内广泛使用的第三方框架Aspects。
Android应用中实现AOP有多种方法,常用的有两种:一是使用APT(AnnotationProcessingTool),从JAVA6开始,规范化为PluggableAnnotationProcessing。开发过程中定义编译期的注解,再通过继承Proccesor实现代码生成逻辑,实现了编译期生成代码,代表框架有DataBinding和AndroidAnnotation;二是通过Gradle插桩的方式来实现。AndroidGradle工具提供了TransfromAPI,该API允许第三方Plugin在打包dex文件之前的编译过程中操作.class文件。在编译期,通过onClick、onItemClick等方法对控件事件进行监听,继而通过注解的方式来实现AOP。注解(Annotation)是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理,通过使用Annotation,可以在不改变原有逻辑的情况下,在源文件中嵌入补充的信息。在实际应用时通常使用业内广泛使用的第三方框架AspectJ。
S42:移动客户端在已埋点控件事件发生时,检测下发的埋点文件,并在埋点文件中匹配控件名称和事件类型;
S43:根据匹配的控件名称和事件类型判断是否存在业务参数,如存在,则通过运行时值检测得到业务参数的参数值;运行时值在iOS应用中通过runtime得到,安卓应用中通过反射得到;
iOS应用中是通过runtime获取运行时的实例,对于实例的变量值,通过KVC的方式获取。KVC(Key-valuecoding)键值编码,是指iOS的开发中,允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值;而不需要调用明确的存取方法。这样就可以在运行时动态地访问和修改对象的属性,而不是在编译时确定。
Android应用中则是通过JAVA语言的反射机制在运行时获取属性值。JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为JAVA语言的反射机制。
S44:通过业务参数的业务参数名称和参数值来匹配获取触发的埋点值,同一控件关联多个业务参数时,移动客户端埋点SDK在事件触发时遍历检测每个业务参数来匹配埋点值。
针对新的业务场景,需要进行动态的埋点更新时,在MIS端对需要更新埋点配置的控件进行埋点信息的配置;在更新的埋点信息配置完成后,通过长连接将更新的埋点文件下发到移动客户端;移动客户端埋点SDK在事件发生时,检测下发的更新后的埋点文件并匹配获取相应的埋点值。
请同时参见图3,需要进行动态的埋点更新,在MIS端对埋点配置的控件进行埋点信息的配置时,首先判读是否有业务逻辑,有业务逻辑则读取页面业务参数,显示可用的参数列表,确认是否需要新增业务参数,若需要新增业务参数则增加业务参数并映射代码内变量作为关联属性的关联值,由关联属性的关联值关联到业务参数名称和参数值,根据此业务参数值匹配埋点内容,生成埋点配置表。
以图2中的业务场景为例,在MIS端在订单详情页面中对取消订单按钮增加业务参数,参数名称为用户类型,关联属性为移动端代码中的变量名;配置完成后下发至移动客户端,移动客户端埋点SDK接收到最新埋点配置文件后,在取消订单按钮被点击时读取对应的订单类型和用户类型业务参数,并根据关联值来匹配不同的埋点内容。
综上所述,本发明实施例的支持动态场景配置的可视化埋点方法,实现了动态场景化的埋点配置,可以结合具体的事件类型和业务场景进行埋点采集,极大地提高了数据采集的灵活性和可扩展性,降低了埋点的开发成本和时间成本;对于移动应用线上出现的新增场景和复杂场景可以实现逻辑性埋点的动态配置和修改,使埋点可以根据应用线上运营的场景情况进行相应的更新,而无需依赖客户端发版。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种支持动态场景配置的可视化埋点方法
- 一种动态配置埋点的方法及设备