Android-全自动埋点方法论-下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-全自动埋点方法论-下相关的知识,希望对你有一定的参考价值。

参考技术A 前面提到了全自动埋点的范围和方法,这个章节主要记录一下关于点击事件采集的相关方法论。

需要先说明几个基础的知识,这样对于无码采集的方法论理解就更清晰,这也是做一个事情分析的逻辑。

每一个应用有一个Application,每一个Application有多个Activity,一个Activity下有一个PhoneWindow,一个PhoneWindow下有DecorView,一个DecorView下的content就是我们开发的展示给用户的界面。一个界面由ViewGroup和View组成。借用一张经典的图:

我们设置的点击事件是在ViewGroup/View上设置类似setOnClicklistener来实现。
android的事件分发机制简单来说会从Activity自上而下分发,然后看中间是否有消费的,具体不细说了。

通过上述Android开发基础知识,我们应该就能想到这个方法,本身用户行为采集也是从切面去处理的,所以AOP技术的应用就自然而然了。
我们从构建流程往下分析,看一看AOP都有几种方式实现:

这个方法在我们分析Android屏幕组成和事件分发机制那块可以想到的,既然可以通过一系列方法获取到窗口的各个对象(Activity、PhoneWindow、View),加上事件的分发机制,所以我们可以罗列一下相应的采集手段。

前面也提到了,全自动埋点数据量比较到,会采集很多数据,所以怎么样减少无效数据的采集也是摆在全自动采集方案中需要解决的一个问题。
同时还有另一个问题,全自动采集本身和业务关联不大,那么就需要通过技术手段为每一个元素view设置一个唯一的标识,而通过技术手段生成的唯一标识在业务人员看起来肯定无法理解(采集数据最终是给到业务人员使用的),所以这就是第二个需要解决的问题。
上面这两个问题有技术手段一并解决,业内通常的叫法就叫做圈选埋点,通过可视化全选的方式控制那些界面采集,那些界面不采集,以及可以给界面和元素生成业务可以理解的映射字段,这个样子也就让全埋点具体操作权放到业务运营人员手里了,由他们自行来处理。这方面的技术手段以及上述游离态控件的采集有时间再做统一的介绍。

超低技术门槛,运营人员也可以直接使用Android可视化埋点

Android可视化埋点是Android全埋点的增强。开发者可以将App界面同步至DTM界面,并在DTM界面通过可视化点击的方式添加埋点事件。目前Android可视化埋点包含两种埋点方式:普通可视化埋点和按Tag模板埋点。

相比于代码埋点,可视化埋点有以下优势:

研发人员仅需要完成DTM SDK集成,免去代码添加埋点的开发成本。

技术门槛低,可以直接在DTM界面上点击添加埋点事件,适合运营人员直接使用。

在应用发布后仍然可以灵活的添加埋点事件,解决前期埋点不充分的问题。

**本期,我们将使用按Tag模板埋点的方式,以购物商城App为例,介绍如何使用Android可视化埋点将埋点事件发送到HUAWEI Analytics。**在开始配置之前,您的App需要已集成华为分析SDK和DTM Android SDK5.0及以上版本。为便于实时看到测试数据,请通过adb命令打开调试开关(adb shell setprop debug.huawei.hms.analytics.app <package_name> )

1 建立连接

首先,登录AppGallery Connect网站,进入动态标签管理服务页面。

点击“可视化埋点”菜单,点击“按Tag模板埋点”按钮。

点击“新建”按钮,添加Huawei Analytics配置,点击“保存”按钮(如果您已经创建过模板,可以点击左侧勾选按钮选中)。

随后,您的页面右侧二维码会自动刷新,打开手机浏览器,扫描二维码。点击“开始连接”按钮,点击”打开“按钮,将App页面同步至网页端。(若提示二维码失效,点击二维码刷新)

打开可圈选控件开关,可以更加清晰地了解哪些控件可以被埋点。当前只支持设置了View.setOnClickListener的控件可被圈选埋点。

Android可视化埋点支持三种埋点类型:当前位置埋点、相同文字埋点和同类元素埋点。下面将一一举例介绍:

当前位置埋点

当前位置埋点适用于App页面布局稳定的场景中。如果App页面布局易变,请考虑使用相同文字埋点。

首先,以”加入购物车“事件为例,介绍如何使用”当前位置埋点“。进入商品详情页面,鼠标选中“加入购物车”按钮并单击,在弹出的对话框中选择”当前位置“选项,点击”确定“按钮。在右侧表单中添加埋点名称以及相关参数。

您可以根据实际需要手动输入相关内容。您也可以通过”加号“按钮添加内容,您还可以通过”小手“按钮选择App页面中的元素作为内容。配置完成后,点击右下角确定按钮完成配置

验证配置是否正确,能否将”加入购物车“事件发送到Huawei Analytics。点击概览页面的预览按钮,进入版本预览页面,用移动端浏览器扫描二维码或者通过adb命令启动预览。

点击App中的”加入购物车“按钮,触发埋点事件上报,在Huawei Analytics分析平台菜单栏"应用调试"中查看上报的事件是否与DTM中的配置一致。至此,DTM的配置验证完成。

接下来可以发布DTM版本,让配置对现网所有App生效。进入版本管理页面,创建并发布一个版本。

相同文字埋点

当App页面布局发生变化时,”当前位置“埋点可能会失效。为了降低该缺陷带来的影响,提供了相同文字埋点。当被埋点控件位置易变,内容不变时,优先选择相同文字埋点。

以”购买商品“事件为例(此时“购买”按钮位置易变),介绍如何使用”相同文字埋点“。进入商品详情页面,鼠标选中“购买”按钮并单击,在弹出的对话框中选择”相同文字“选项,点击”确定“按钮。

在右侧表单中添加埋点名称以及相关参数。您可以根据实际需要手动输入相关内容。您也可以通过”加号“按钮添加内容,您还可以通过”小手“按钮选择App页面中的元素作为内容。配置完成后,点击右下角确定按钮完成配置

验证配置是否正确,能否将”购买商品“事件发送到HUAWEI Analytics。点击概览页面的预览按钮,进入版本预览页面,用移动端浏览器扫描二维码或者通过adb命令启动预览。

点击App中的购买按钮,触发埋点事件上报,在HUAWEI Analytics分析平台菜单栏"应用调试"中查看上报的事件是否与DTM中的配置一致。至此,DTM的配置验证完成。

接下来可以发布DTM版本,让配置对现网所有App生效。进入版本管理页面,创建并发布一个版本。

同类元素埋点

对于通过 ListView、GridView、RecyclerView、ViewPager 实现的列表页面:比如商品列表页面,轮播图。

如果想统计列表中的每一项埋点事件,通过当前位置埋点或者相同文字埋点,是很难实现的,同类元素埋点正是为解决这一问题而产生的。

当您使用同类元素埋点对列表中的某一项进行埋点时,与该埋点项具有相同布局的项也会被埋上相同事件。

下面以商品列表页面为例,来详细介绍如何使用同类元素埋点。进入“商品列表”页面,鼠标选中其中任何一项并单击,在弹出的对话框中选择”同类元素“选项,点击”确定“按钮。此时你会看到与被埋点项具有相同布局的项也被加上绿色背景框。

在右侧表单中添加埋点名称以及相关参数。您可以根据实际需要手动输入相关内容。您也可以通过”加号“按钮添加内容,您还可以通过”小手“按钮选择App页面中的元素作为内容。配置完成后,点击右下角确定按钮完成配置。验证配置是否正确,能否将商品列表项事件发送到HUAWEI Analytics。

点击概览页面的预览按钮,进入版本预览页面,用移动端浏览器扫描二维码或者通过adb命令启动预览。随机点击App中的商品列表中的某一项,触发埋点事件上报,在HUAWEI Analytics分析平台菜单栏"应用调试"中查看上报的事件是否与DTM中的配置一致。至此,DTM的配置验证完成。

接下来可以发布DTM版本,让配置对现网所有App生效。进入版本管理页面,创建并发布一个版本。

欲了解更多HMS Core 动态标签管理服务详情,请参阅官网

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

以上是关于Android-全自动埋点方法论-下的主要内容,如果未能解决你的问题,请参考以下文章

ASM的基础使用 Android 自动化埋点方案原理剖析

Android 可视化埋点方案

还在手动埋点么?out 了!不到百行代码实现自动埋点

2021年最新Android大厂面试题来袭!已拿到offer

埋点自动化测试框架设计

字节跳动大规模实践埋点自动化测试框架设计