1. 什么是可视化全埋点

1.1. 全埋点

在介绍可视化全埋点之前,先了解一下全埋点。

全埋点,也叫无埋点、无码埋点、无痕埋点、自动埋点。全埋点是指无需应用程序开发工程师写代码或者只写少量的代码,即可预先自动收集用户的所有或者绝大部分的行为数据,然后就可以根据实际的业务分析需求从中筛选出所需行为数据并进行分析[1]。

神策分析 iOS SDK 目前支持的全埋点事件有:App 启动、App 退出、元素点击、页面浏览。只需要客户开发人员按照正确的方式集成,然后初始化 SDK 并开启相关配置,即可在对应的事件触发时,自动采集事件和相关属性。

1.2. 可视化全埋点

1.2.1. 可视化全埋点事件

可视化全埋点事件,即通过可视化的方式把某些全埋点事件,创建成一个重新命名的虚拟事件[2],从而我们可以从已采集的数量庞大的全埋点事件中快速筛选到我们所关心的事件。

考虑到实际的应用场景,目前神策分析的可视化全埋点,支持元素点击和页面浏览事件。例如:App 的添加购物车按钮,在点击的时候会触发一个名为 "$AppClick" 的全埋点事件,并采集按钮元素和当前页面的相关信息。虽然 “添加购物车” 按钮点击触发了 "$AppClick" 事件,但是这个事件实际上包含了当前 App 内的所有元素点击触发的事件。因此,很难单独分析 “添加购物车” 按钮在某一段时间内的点击次数或地区分布等信息。

1.2.2. 自定义属性

可视化全埋点的自定义属性,其实就是通过可视化的方式将当前事件相关的属性信息添加上去。例如点击 “添加购物车” 按钮,触发 "$AppClick" 全埋点事件的时候,将当前商品名称、价格、配置信息等,作为事件属性进行采集。

考虑真实商业项目中,商品详情等信息是通过网络请求到数据,然后异步进行渲染的,因此在触发页面浏览事件的时候,可能页面数据信息尚未渲染完成或者显示缺省值,也就是说无法采集页面最终的显示信息,所以页面浏览事件如果支持自定义属性,可能很多场景下采集不准。因此目前可视化全埋点自定义属性,只支持元素点击事件。

另外,目前自定义属性,采集元素内容的同时,还支持规则处理。例如可以将内容取整、取前几个字符、只取数值等,同时也支持写正则表达式,满足更多的实际应用场景。

1.2.3. 整体流程

可视化全埋点的整体流程如图 1-1 所示:

图 1-1 可视化全埋点整体流程图

2. 为什么需要可视化全埋点

上一节简单介绍了可视化全埋点的含义和整体流程,可能大家仍然会有疑问:既然有了全埋点,为何还需要可视化全埋点?

2.1. 提升埋点效率

其实,可视化全埋点的本质就是根据一系列的筛选条件创建虚拟事件。

如果不使用可视化全埋点去分析特定的全埋点事件,就需要根据全埋点事件名称以及相关属性的特征,针对性地创建虚拟事件或者组合筛选条件进行查询。从过程可想而知非常耗费时间,对于想要查看结果的分析人员而言,这种繁琐的工作严重影响工作效率。

如果使用可视化全埋点(通过可视化的方式在前端页面简单地进行选择和命名)即可分析特定的事件或属性,这样极大地提高了埋点效率。使得分析人员不必将太多的时间耗费在埋点上,可以更多地专注于产品分析和后期决策。

2.2. 降低埋点门槛

使用可视化全埋点,能够在没有开发人员参与的情况下,分析特定的用户行为和相关属性信息。使得不熟悉技术实现的分析人员,也能快速高效地埋点,从而极大地降低了埋点门槛。

2.3. 方便迭代

在设计埋点事件时,难免会遗漏某些重要场景的事件采集。在传统的采集方案下,我们只能在 App 中重新埋点并发版。上线一段时间后,才能得到我们需要分析的数据。

可视化全埋点是基于全埋点创建的虚拟事件,因此我们不需要这些复杂的过程,就可以在神策分析平台进行事件定义,并且支持回溯分析。使得分析人员不依赖某些特定版本即可分析线上所有全埋点事件的数据,即可在版本迭代的过程中,也能采集到版本前后的完整数据,从而满足分析需求。

因为可视化全埋点是通过虚拟事件创建的 “埋点事件”,如果我们不小心删除了,可以再次创建这个 “埋点事件”。另外,历史数据不会删除。这样大大降低了设计遗漏带来的时间成本和 “事件丢失” 的影响。

2.4. 适用场景

在埋点本身质量上,代码埋点是要远优于可视化全埋点的,但是可视化全埋点在埋点成本和回溯历史方面有着无可比拟的优势。对于满足如下情景的客户来说,可视化全埋点可以在早期更好地实现数据驱动:

  • 没有研发资源或研发资源很少;

  • 项目较为早期,以交互分析为主,业务分析为辅;

  • 需要分析的大部分是活动类页面,分析诉求主要是移动端。

代码埋点和可视化全埋点,是神策分析提供给不同阶段的客户的两种埋点方法。从建设更坚实的数据根基的角度来说,首推代码埋点,但是如果面向一些短平快的分析诉求,可以考虑使用可视化全埋点。

3. 如何使用可视化全埋点

3.1. 进入可视化全埋点

3.1.1. 集成 SDK

在开始可视化全埋点之前,需要正确集成并初始化神策分析 iOS SDK,然后开启可视化全埋点,详见文档说明:开启可视化全埋点[3]。

3.1.2. 进入埋点页面

登录神策分析的后台环境,进入元数据管理模块,开始进行可视化全埋点。如图 3-1 所示:

图 3-1 可视化全埋点的入口

3.1.3. 扫码连接

  1. 在神策分析页面选择扫码连接,进入扫描二维码的页面。如果使用 iPhone 建议直接使用系统自带的二维码扫描功能进行扫码,然后跳转到 Safari 打开页面;Android 手机可以使用浏览器的扫一扫功能或者是微信扫一扫的功能进行扫码,根据浏览器弹窗提示的操作打开对应的 H5 页面;
  2. 手机扫码后点击 H5 页面中的「开启 App 可视化全埋点」按钮,再点击「打开」按钮后成功打开所要分析的 App;
  3. 连接 App 成功后可进行可视化全埋点。

扫码连接的过程如图 3-2 所示:

图 3-2 扫码连接示意图

3.2. 定义事件

3.2.1. 定义元素点击事件

进入可视化全埋点后,可以定义元素点击事件。选中某个可点击元素后,如图 3-3 所示:

图 3-3 选中可点击元素

可以看到限定条件如下:

  • 不限定内容(文本);
  • 限定顺序为第「3」位。

上面两个条件意味着:发生在「当前页面」下,同类元素内,在列表中顺序位置为第「3」位的元素点击事件。若元素的内容(文本)变化,埋点仍然有效。

相应的,限定特定内容的元素点击事件如图 3-4 所示:

图 3-4 限定特定内容的元素点击事件

变换一下条件,可以看到限定条件如下:

  • 限定内容(文本);
  • 不限定顺序位置。

上面两个条件意味着:发生在「当前页面」下,同类元素内,内容(文本)为「生活旅行」的元素点击事件。元素顺序变化,埋点仍然有效。元素内容(文本)变化,埋点失效。

此外,根据是否限定元素内容和元素位置进行组合。还可以满足下述场景:

  • 定义某个特定内容、特定位置的元素;
  • 定义整个列表按钮(不限内容、不限位置即可)。

需要注意的是:限定位置功能,只支持列表元素,或列表内嵌子元素。

3.2.2. 定义页面浏览事件

点击「创建页面浏览事件」按钮,在弹窗页面中,确认事件名称并点击保存即可。如图 3-5 所示:

图 3-5 创建页面浏览事件

3.3. 自定义属性

除了定义事件,还可以在页面中选择元素内容定义为该事件的属性信息,具体步骤如下:

1. 在创建元素点击事件页面中点击「添加属性」按钮,如图 3-6 所示:

图 3-6 「添加属性」按钮

2. 点击页面中的元素,并保存属性信息,如图 3-7 所示:

图 3-7 保存属性信息

3. 保存后进行确认创建事件,如图 3-8 所示:

图 3-8 创建事件

添加属性后,点击「立即购买」按钮触发 "$AppClick" 全埋点事件时,也会按照内容处理规则,采集 "product_price"(商品价格)这个属性。

4. 可视化全埋点局限性

虽然可视化全埋点有很多优点,但是也不是万能的,可视化全埋点也有其自身的局限性。

4.1. 部分事件和属性暂不支持

一些特定的元素点击事件,因为目前全埋点暂不支持采集,所以可视化全埋点也无法支持。例如:系统键盘上的切换输入法等按键的点击。

此外,某些业务相关的信息,可能不在页面中显示,目前自定义属性也无法支持。例如:商品的库存信息、商品 ID、历史价格等。

4.2. 自定义属性不支持回溯

虽然元素点击和页面浏览的可视化全埋点事件支持回溯,但是可视化全埋点自定义属性并不支持。这是由于在创建属性后才开始采集,即创建自定义属性之前的可视化全埋点事件是不包含该属性的。

5. 总结

本文是可视化全埋点系列文章的第一篇,主要介绍了可视化全埋点的相关概念和使用方式,旨在帮助大家对于可视化全埋点有一个整体的了解,后续会对可视化全埋点的具体实现进行逐步地介绍。

最后,欢迎大家加入开源社区一起讨论。

6. 参考文献

[1]王灼洲.iOS全埋点解决方案[M].北京:机械工业出版社,2020:162-197.

[2]https://manual.sensorsdata.cn/sa/latest/虚拟事件-22253779.html

[3]https://manual.sensorsdata.cn/sa/latest/enable_visualized_autotrack-34537696.html

可视化全埋点系列文章之功能介绍篇相关推荐

  1. 神策数据 App 可视化全埋点 2.0 重磅升级!抢先体验

    伴随着大数据计算能力的软硬件环境成熟,国内大部分企业的数据意识在逐渐提升,寄希望于数据高效应用,基于数据驱动的力量推动决策落地.在这个过程中,数据采集作为数据应用的起点,其重要性不言而喻. 目前,神策 ...

  2. STM8S全解析之系列文章1---STM8S芯片项目需求与解决方案

    STM8S全解析之系列文章1-STM8S芯片项目需求与解决方案 <STM8S全解析之系列文章1-STM8S芯片项目需求与解决方案> <STM8S全解析之系列文章2-在IAR上新建ST ...

  3. QQ机器人{功能介绍篇}

    嗯,农历腊月二十九,第一篇博客,聊聊最近工作之余写的一个玩意,QQ机器人. 什么都不说,先演示下功能: 1.首先呢,不管是什么途径得到了这个链接(这里通过QQ消息): 2.访问:qqrobot.clu ...

  4. 【Linux系列文章】基本命令介绍

    Linux系列文章 第五章 基本命令 文章目录 Linux系列文章 1.常用快捷键 2.文件目录类 3.时间日期类 3.1显示时间 3.2 date 设置系统时间 3.3 查看日历 4.用户管理命令 ...

  5. Unity小地图Minimap制作全面功能介绍篇

    本系列文章将讲述如何制作小地图. 功能如下: 小地图制作和美化       https://blog.csdn.net/alayeshi/article/details/115914212 小地图展示 ...

  6. 2009刀片服务器导购系列文章之戴尔篇

    --> 作者:小云 自从2000年刀片服务器这一产品形态开始进入市场以来,厂商对这一产品的期望值一直是一浪高过一浪.根据有关评测机构的预测,未来2年刀片服务器市场的增长将保持在60%左右,刀片服 ...

  7. 欧姆龙cp1hum读保护解密步骤_欧姆龙PLC的NJ系列NJ产品功能介绍

    欧姆龙PLC的NJ 系列NJ 运动.逻辑和视觉集于一体 欧姆龙PLC的NJ 系列NJ 特点 One Machine Control 运动.逻辑和视觉集于一体 将组成机械所需的各种控制设备汇集于一体,使 ...

  8. T4系列文章之三:介绍T4语法

    T4语言的语法很简单,可以说一学就会.它不像C#或Java一样有那么多的限制,所以,只要会C#语音,然后再学习一些T4应该注意的地方,那么就OK了. T4模板的基本结构可以分成5类:指令块(Direc ...

  9. Qt系列文章010-Qt容器类介绍

    1 前言    前面已经详细阐述了Qt 中QtGlobal 包含的常用数据类型和方法还有一些宏定义,因为篇幅的问题,所以做了上下两章来讲.方便各位消化和耐看!那么今天这章主要就是讲解Qt 独有的迭代器 ...

  10. 最全PDF转换器使用方法以及功能介绍 文件转换不再困难

    查看全文 http://www.taodudu.cc/news/show-5801302.html 相关文章: 学习实用工具集锦 数学建模笔记-1 两种将ppt文件转换成pdf格式的方法 实现pdf图 ...

最新文章

  1. 详解 | 自动泊车中鱼眼相机实现车位线感知
  2. Centos 6.5 监控路由器、思科交换机Nagios (三)
  3. 计算机的云是什么意思_高考倒计时!现在学什么专业好?答案是……
  4. 移动界面控件Essential Studio for Mobile MVC图表控件解析
  5. SICP 1.20经验
  6. HTML5 Canvas 绘制六叶草
  7. [ASP.NET Core MVC] 如何实现运行时动态定义Controller类型?
  8. android gradle 语法,Gradle 1.语法
  9. 智能机器人路径规划及代码_AI割草机器人用ML+传感器自动规划路径
  10. 如何使用cocos2dx-jsbinding 来处理分辨率适配
  11. mysql巡检常用命令_mysql 常用命令
  12. I.MX6 gpio-keys driver hacking
  13. 读大道至简——编程的精义感想
  14. SourceTree Win10 安装不成功解决过程记录
  15. Oracle+PL+SQL从入门到精通.丁士锋.清华大学出版社.2012
  16. Vue.js(九) 第三方常用插件
  17. Xmind思维导图教程
  18. 麻将为什么是顶级随机设计?
  19. Autofac之类型注册
  20. 数睿数据深度 | 中国软件网对话数睿数据总裁刘超:深挖数据驱动、企业级无代码

热门文章

  1. 被动语态用于现在时,要在助动词 be 后 + ing
  2. Win10系统更新显卡驱动无限蓝屏重启-驱动人生解决方案
  3. ubuntu系统调节电脑亮度
  4. Android实践:基于聚合数据的手机号码归属地查询
  5. Linux#使用ll命令
  6. java vo的使用_使用VO传递参数的设计 | 学步园
  7. python帮你获取王者荣耀金币
  8. P1540 机器翻译洛谷题解
  9. 英语语法基础01(句子结构)
  10. 兰斯洛特·δ零式·开发计划