GrowingIo学习
背景介绍
最近一期的开发任务中,有集成GrowingIo一项。据说这是数据埋点方面的内容。一开始以为是公司自己开发的一套sdk,接入之后,在需要数据统计的点写一条调用函数。总体上很方便,不过有时候比较难搞,关键是繁琐,各个地方到处插入。当然,后台也要开发相应的查看工具,产品经理还要决定埋点的地方,字段名称,还要经常纠结数据对不对,是客户端埋得不对还是后台收集处理有问题。总之,看似简单一件事,坑还是蛮多的。
后来听说不需要埋点,但是可以进行数据分析,集成进来比较简单,基本上是添加静态库,然后在启动的时候添加一行启动函数。既然这样,加一个任务就加一个任务吧。
产品特色
-
是一款用户行为分析工具,不需要埋点
-
是一个静态库,包括Growing.h 和 libGrowing.a
-
可以使用 CocoaPods进行管理
-
在application:didFinishLaunchingWithOptions函数中设置id和打开标识
-
需要通过URL Scheme调用App,不需要工程师埋点,可以通过网站或者GrowingIo App外部调用目标App,进行标签的“圈选”和定义,方式更加直观。
“无埋点”是“全埋点”,不会“错埋”、“漏埋”,属于全量数据采集。“圈选”只是提供可视化自定义标签的功能。在接入时,用Charles抓包,发现没有“圈选”的页面,也会向GrowingIO发数据,可以推测是全量数据采集
- 如果要更精确控制,要定义各种id,属性名字固定。
@interface UIView(GrowingAttributes)
@property (nonatomic, copy) NSString* growingAttributesUniqueTag;
@end
@interface UIViewController(GrowingAttributes)
@property (nonatomic, copy) NSString* growingAttributesPageName;
@end
- 用到了Obejct-C的动态特性,在Swift等静态语言中,估计就尴尬了
[Growing setAspectMode:GrowingAspectModeDynamicSwizzling]
诸葛IO
-
传统的“埋点”方式
-
特色是以“用户”为中心,用户信息由客户公司导入
-
如果没有输入用户信息,“用户”以cookie(网站)或者设备ID(App)来表示
-
数据可以放在云端,也可以放在客户公司的服务端。对于互联网金融类产品,更倾向于私有化部署
-
有点类似客户公司自己写的后台统计,数据由“客户端埋点”获得。相当于传统的软件服务,提供数据挖掘,表格展示等功能
-
“埋点”分为事件、属性、值、采集时机等几个要素;埋点会带来工作量,但是可以做到更精确
-
侧重点在精细化数据分析;实名前采用手机设备号标识用户,实名后关联用户ID,可以解决比如支付宝跳出又跳回来的用户标识问题。都是持久信息,并不是session之类有时效限制的信息
-
对于私有化部署,可以提供定制化需求开发,跟传统软件一样
-
近期收购DeepShare,可以区分营销渠道信息,解决运营的一大关注痛点
-
至于代码“埋点”带来的工作量,错埋,漏埋等问题,还是通过流程管理来改善
- 由业务方提供“埋点需求文档”,提升“数据驱动”的紧急、重要程度
- 控制埋点数量,随着版本迭代,逐步细化。比如第1版20个“关键点”,以后每一版5个左右具体业务“关键点”
- 提供技术协助,可以在埋点时候马上验证埋点是否正确
- 提供比如“别名”之类的手段,识别或者过滤诸如“名字录入错误”等错埋情况
- 对于互联网金融做过专门的深入分析,有互联网金融DEMO
参考资料
选择建议
-
如果是产品初期,更倾向于节省开发工作量,不愿意“埋点”,GrowingIO的“无埋点”(全埋点)比较合适。基本的统计功能也能满足需求,也支持一定的自定义功能
-
如果要求“精细化运营”,以用户为中心深入分析用户行为,将“数据驱动”提升到战略高度,并且注重信息安全,还是选择“私有化部署”的诸葛IO,并且后续定制化需求开发。相当于“外包大数据分析部门”