美文网首页数据分析用户行为分析
揭秘数极客Android无埋点数据采集原理

揭秘数极客Android无埋点数据采集原理

作者: 数极客用户行为数据分析 | 来源:发表于2018-08-21 17:05 被阅读0次

数据采集基本可分为代码埋点无埋点。近年来无埋点的数据采集方案越来越普及,而无埋点的实现方案也有多种,我们今天讨论的问题是数据采集的一种方案,是无需开发人员重复进行采集事件的代码埋点就能达到采集客户端所需数据的解决方案,也就是无埋点数据采集方案。

介绍无埋点数据采集方案之前,需要大家对以下几个知识点非常了解:

1.view 的事件分发机制

2. 使用gradle编译Android 项目的流程

3. 动态修改字节码

一、无埋点的意义和价值:

客户端埋点是数据收集的最基本手段,但由于业务迭代速度很快,手动埋点方案虽然灵活多变,但是极大的增加了客户端开发人员的工作量。开发完成业务功能需要花费很大的时间和精力去处理埋点事宜,而且随着迭代版本,埋点的数量会越来越多,这些老旧埋点的维护工作也需要付出很多资源,而且,手动埋点的正确性也没有想像的那么高,因为这个埋点的准确性需要开发人员非常了解业务逻辑和非常认真的检查埋点。所以,如果能够研发出一款不需要或者很少需要开发人员介入就能实现根据不同业务场景埋点的功能sdk对于提高版本迭代速度和释放开发人员的经历绝对是一件非常有价值的事情。

二、无埋点的实现原理介绍

为了实现无埋点我们需要解决事件触发的控件(view)唯一标识问题,首先我们都知道页面是由一个viewtree构成的,通过层级排列和位置顺序我们能唯一找到一个view。

我们主要是通过页面名称 + viewtree的layout名称 + layout位置 + 控件的属性来确定这个view的唯一标识。所谓的控件属性就是根据不同的view子类的特性获得相应不同的特殊属性来做到最大限度的确定唯一性。

所以我们就需要便利 view tree,首先需要获得根view,

View decorView = ((Activity)

context).getWindow().getDecorView();

之后通过事件的触发位置来遍历寻找目标控件。

当事件触发时我们可以找到目标view时,我们就可以唯一确定这个view的标识,这样我们也就可以将事件和业务数据进行绑定,为以后可视化埋点打下基础。也保证了事件的准确性和真实性。

我需要找到你要埋单的位置,之后通过在编译期修改字节码的方式将埋点代码插入到相应的位置。

在Android app的编译期进行干预,实现修改目标class文件,从而实现自动插入埋点代码。

主要过程是当编译开始时,gradle插件负责启动agent,agent 负责修改字节码,帮我们插入埋点代码。

到此我们的无埋点才算完成。

以上完成

我们只是做到了收集全量事件的目的,我们有很多时候是需要对某个特定事件做重新定义,比如登陆事件,我们需要知道一段时间内有多少人登陆,这时候我们需要在登陆事件下做特殊处理,正常思维是我们需要手动埋点之后发送,但是作为无埋点,我们就要引入一个新的概念就是可视化埋点修改,就是不需要开发人员修改代码,通过手机可视化的方式来直接修改。

先来了解下可视化埋点。

请看以下几个可视化埋点的功能界面,可以非常直观的了解无埋点的效果:

第一步:启动集成了数极客无埋点SDK的APP

第二步:切换到埋点模式,圈选埋点内容

第三步:保存圈选的按钮的可视化埋点名称

实现过程:

我们首先要知道我们点击的是哪个控件,也就是目标view,这就用到了之前说过的,我们要便利view tree,要唯一确定一个view。

当我们能找到我们点击目标view时,我们就可以将这个view拿出来,通过view的唯一标识来区分这个view,当我们将view的相关属性设置好后,我们将数据传给服务器,当时服务器配置生效后

,我们再push给客户端,当时这个事件再次发生时,我们通过view 的唯一标识就能就之前设置好的信息,和这次事件对应上,这样就实现了可视化的修改埋点的目的。

最后再介绍一下数极客:

数极客是国内新一代用户行为分析平台,支持无埋点采集、前端代码埋点采集、后端代码埋点采集等多种混合数据采集方式,  支持30多种数据可视化效果,是增长黑客必备的大数据分析工具,支持APP数据分析网站分析用户画像,独创了6大转化率分析模型,是用户行为分析领域首家应用定量分析与定性分析方法的数据分析产品,运用数极客用户行为录屏系统,可以分析并优化用户体验的细节,基于用户行为分析系统,提供了会员营销系统A/B测试工具两大数据智能应用解决方案,使得企业可以快速的实现数据驱动增长。

欢迎关注数极客微信公众号:shujujike,更全面的get无埋点及用户行为大数据分析的要点。

原创作者:杨永强 数极客 技术合伙人

相关文章

  • 揭秘数极客Android无埋点数据采集原理

    数据采集基本可分为代码埋点和无埋点。近年来无埋点的数据采集方案越来越普及,而无埋点的实现方案也有多种,我们今天讨论...

  • Android无埋点的技术选型之路

    数极客是国内新一代用户行为分析平台,支持无埋点采集,前端代码埋点采集,后端代码埋点采集等多种混合数据采集方式,支持...

  • 数据运营(6)数据采集

    数据采集的重要性不言而喻。 一、数据采集方案 目前有三种常见的数据采集方案,分别是埋点、可视化埋点、无埋点。 1....

  • 项目需求分析

    1.采集埋点日志数据 2.采集业务数据库中的数据 3.数据仓库的搭建(用户行为数仓,业务数仓) 4.分析统计业务指...

  • 数据埋点和指标字典

    数据埋点 数据埋点是一种常用的数据采集方法,埋点是数据的来源,采集数据以帮助业务人员分析网站或者app的使用...

  • Android全埋点

    什么是全埋点? 也叫做无埋点,预先收集用户的所有行为数据,然后根据实际需求,从中提取行为数据。 采集数据的点: $...

  • 【埋点学习系列】02如何设计数据埋点方案

    数据埋点是数据采集的关键一环,目前的数据采集方式归结为可视化 / 全埋点、代码埋点三类。 可视化 / 全埋点 使用...

  • 日志埋点系统的架构与实现

    1. 埋点的意义 1.1 什么是埋点? 所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语。指的是针...

  • web 埋点

    数据埋点是什么?设置数据埋点的意义?web 埋点实现原理了解一下 前端监控和前端埋点方案设计美团点评前端无痕埋点实践

  • 数据分析师之必备技能之一数据埋点

    数据埋点是一种移动端APP常规的数据采集方法,先解释下什么是埋点? 埋点是数据采集的一种方法,将移动A...

网友评论

    本文标题:揭秘数极客Android无埋点数据采集原理

    本文链接:https://www.haomeiwen.com/subject/wnpjiftx.html