应用埋点方案

前言

近期,应PM要求,对应用的埋点方案进行了调研,特在此写个博客记录分享一下。

需求分析

首先我们需要清楚埋点的实际需求是什么?对于一个产品来讲埋点无非就是想了解用户的使用习惯和产品的使用情况,从而从客户和产品的角度去了解客户群体,及其对产品的一些使用想法。本文将着重关注数据的收集而非数据分析。

数据处理

在这里,我们需要明确的一点是,数据处理的整个过程中,数据的收集是重中之重,它将是我们进行数据的分析的大前提,因为采集的数据会直接影响到最后的分析结果。

数据处理.png

因此,数据采集应具备以下几点特性:

多元性
采集过程应从不同的维度去获取数据。比如我们要采集用户相关的部分数据。那么我们可以从身高、体重、兴趣爱好等各个层次、多维度的去采集对应数据。这样的数据还原出来的用户对像才更有活性,对于今后的数据分析、包括描绘用户画像也更为有利。

准确性
准确性包含两个层次的要求:1.数据采集过程的准确性:对于特定的流程分析,我们的埋点方案要具备一定的针对性,避免无关因素的干扰。2.数据的客观性。我们不能代替客户,我们能做的只是观察并记录,臆想的数据对于我们毫无价值。

时效性
对于采集的数据,它只能反映过去的某个时刻或者某段时间的客观情况。得到的结果和结论也只能是对应过去的某个时间段而言。可能是受制于当时的网络情况、社会环境等因素的影响,才会呈现出这样的结果。所以我们在采集数据的同时最好能给它打上时间标签,方便今后的数据对比。


ok,接下里进入正题--埋点

什么是埋点?

简单的说,埋点就是定时、定点的数据采集,然后上报。
举个简单的🌰

代码埋点.png

如图,比如我们在到达页面A的时候,进行数据采集和上报,告诉服务器我是谁?我在哪里?我干了些什么?而后进入页面B,进行相同的操作,以此类推。最后后台可以根据得到的数据还原用户的各种行为,最终将这些数据呈现出来,方便运营等进行分析操作。(技术上讲,这里实际上还包含数据存储和传输等问题,不同的埋点方案的处理方式都不尽相同,这里就不做过多的阐述了。)


埋点方案一:代码埋点

代码埋点是很多人一开始就会想到的方案,也是目前最为人所知的一种方案。包括友盟在内的一些服务商目前都在使用这种方案。实现方式相信大家一看就明白,就是在需要数据采集的地方抓取数据,然后上传。

要指出的是,这里的数据采集往往会以事件的方式进行。事件包含事件名称、事件参数等,简单的点击事件统计(比如统计点击事件)仅需事件名称即可,如果想抓住事件内部的一些数据的话,比如电商领域的一些交易统计,就会在用户点击提交购买按钮的时候在事件参数里传递总价等数值。在开发文档里,后者通常会被称为自定义事件,这也是代码埋点最具灵活性的地方。

这种方案的优点在于它的准确性和针对性。指哪打哪,不浪费一发子弹。如果项目较小或者还只是在项目初期,这种方案还算可以接受,但是如果在较大的项目项目或者处于开发后期的项目来做,对于程序员来讲无疑是身心上的摧残。一方面工作量太大,这种特定的页面的数据采集方案(PM:什么?不知道埋哪里?那就都埋了吧!)能偷懒的地方都没有;另一方面,这种方案对代码的入侵性太大,很可能导致代码高耦合,并且这种方式采集的数据维度往往会太过单一。如果今后想从更高的层面或者其他角度去分析,很有可能需要重新埋点和发布版本。


做不做?!.png

埋点方案二:可视化埋点

代码埋点将核心代码和配置资源进行了分离。在每次启动的时候都会有去请求最新的埋点配置,他在一定程度上降低了代码埋点的门槛,只要客户端集成之后,PM在web上就可以进行操作(让PM自己玩去吧╮(╯▽╰)╭)

那么它是如何实现的呢?


可视化埋点.png

如图,简单来说,客户端集成SDK之后,在用户使用的过程中会定时截图,同时获取应用视图的层级关系,传到服务端。服务端会重新渲染页面,并判断控件是否可以埋点,然后关联对应的埋点事件,最后将配置信息传回客户端。

这种方式从某种程度上大大提升了应用的埋点灵活性,使用方便。当然它也有一定的局限性,比如埋点的内容有限,不能像代码埋点一样采用自定义事件,所以对于较为深入的行为分析要求,这种方案不能很好的实现。

埋点方案三:无埋点

无埋点的的技术方案,早在2013年就已提出了。它在客户端集成之后,会主动的尽可能多的收集数据,甚至连要在那里埋点的问题都省略了,我们不用去设置配置文件,如果我们想要特定的数据直接去查询即可(这就是为什么叫无埋点)。

与可视化埋点相比,无埋点主要解决的是数据的回溯问题。比如,我们想要得到某个页面的访问数量,如果是可视化埋点,就需要去配置一下埋点方案,然后发布,一段时间之后才会得到对应的数据。我们无法获取到发布之前的某个时间内的访问情况。也就是说所有想得到的数据只有在配置文件发布之后才能看到。对于无埋点方案来讲,这些数据的采集早在SDK集成的时候就开始了。某天突然想要看下,查询下就可以看到了。当然,它的缺点也是显而易见的,采集的数据越多,对于数据传输和存储的要求就会越高。

其实,有时候对于某些检测行为,我们并非一定要在客户端做。考虑到数据处理过程中的传输和存储问题(本地数据存储),在服务端进行埋点和分析会显得事半功倍。


一些国内外的服务商

Google Analytics(Firebase Analytics)
https://firebase.google.com/docs/database/ios/start
Firebase Analytics是2016年在Google I/O上推出的针对移动应用的服务。

Flurry
https://developer.yahoo.com/flurry/docs/analytics/gettingstarted/technicalquickstart/ios/

Localytics
http://docs.localytics.com/dev/ios.html

Mixpanel
https://mixpanel.com/help/reference/ios
(支持可视化埋点)

Umeng
http://dev.umeng.com/analytics/ios-doc/integration?spm=0.0.0.0.t9tzbd

Growing IO
https://help.growingio.com/SDK/iOS.html
(国内无埋点方案-无埋点的启发性更好哦)

TalkingData
https://www.talkingdata.com/tracking/documents/AdTracking_SDK_iOS_%E9%9B%86%E6%88%90%E6%96%87%E6%A1%A3.pdf

以上都是集成文档的链接,各家都有自己的特点。具体方案请视自己的情况而定。

自行搭建埋点服务

有时候我们也会遇到数据是有了,但是当要把原始数据做导出分析时又遇到问题。自己产品的数据却不能被我们自己拥有。
这里介绍两款免费开源的私有化部署方案
1.cobub razor
传送门:http://www.cobub.com
2.countly
传送门:https://count.ly


总结:
不同的埋点方案都有各自的优缺点,对于不同的业务需求,一种埋点方案明显无法满足 ,所以往往我们需要结合多种方案进行处理。

最后,希望本文能拓宽大家对于埋点的思路吧:)

若文章中有不对的地方望指正,万分感谢!
本文提到的服务商与本人没有利益关系.

参考文章
1.http://www.itechdog.com/blog/event-tracking?utm_source=tuicool&utm_medium=referral
2.http://www.jianshu.com/p/973d626fa19a
3.http://www.jianshu.com/p/4e1b371ec46a
4.https://www.zhihu.com/question/41831617

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容