Skip to content

agan112/wumaindian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wumaindian--用oc来实现无埋点技术。

什么是无埋点

大数据分析系统分为四个阶段,第一个阶段数据采集,把数据采集上来。第二,传输到服务器,第三,进行建模和统计。我们都是做数据清洗,把脏数据清洗掉。第四步进行数据展示。这一块儿,百分点会把这些数据做推荐,还有一些标签和画像。

而埋点就发生在这个源头第一阶段。所谓埋点就是通过在代买的关键部位植入统计代码。说白了就是日志统计。那么无埋点又是什么玩意儿呢?主要解决什么问题?

主要三个问题。第一,开发者依赖性,如果做埋点,需要开发者下载第三方SDK,熟悉SDK编写埋点代码。我们目的就是不用开发人员来做这些。通过运维人员也是可以达到这个效果。

第二个问题就是解决成本过高,我们可以通过这种可视化操作,把代码和配制进行分离,这样效率更高,降低成本。

第三,避免代码写死。这样就是可以动态更新,更加高效。

我们看一下无埋点,说了这么多,并不是一行代码不用植入。还是需要写一些代码,需要调用SDK初始化代码,我们的目标是什么?少写代码,尽可能通过几行代码,就可以把SDK集成进去,关键业务统计指标都是通过程序来自动收集,然后,通过后台的配制。可以达到热更新。通过这种热更新的方法,直接改后台配制,不需要再一次发布版本。

埋点和无埋点

简单说一下,无埋点的流程,这是无埋点管理端,因为SDK是没有界面可以跟用户交互的。我们采用手机摇一摇来跟服务器建立连接,我们看下一个界面。我们把当前这个APP界面,可以直接投到这个服务端,服务端会把当前可点击这些元素都列出来,并且框起来。然后,这里我当时是对“活动”按钮做了一个埋点的操作。埋点操作完以后,这边有一个生效,生效了以后,其他用户使用的时候,点击活动的时候就会采集这个数据,直接发到服务端。

我们接着看一下,可以做埋点和无埋点的比较。埋点和无埋点,就是相辅相成的,埋点是适用于一些比较复杂的应用场景。比如说我除了想知道这个点击事件,还想多带一些参数。例如加入购物车行为,我还想知道商品价格和数量等信息,这个还是需要通过埋点写代码,把详细的参数加入到代码里面采集这些信息。而无埋点针对一些简单的操作,一个按纽统计点了没有?或者点击多少次?

怎么做

整体的架构,后台的管理端,SDK都是属于客户端,有两台服务器,一个配制服务器和一个通信服务器,SDK和配制界面跟这个服务器进行交互,也是把这些生成配制写到配制服务器,SDK真正采集数据的时候,就是把这个数据发送到这个探头服务。最终进入这些大数据的存储Hive里面。

APP的界面如何传输到配制界面?我们当时做这一块儿设计的时候,想到两个方案,第一个,通过一些远程桌面的协议来实现。大家之前做过这种应该有了解,我之前也是做过这些东西。第一,比较的复杂,用在这种场景里面不太现实。再就是通过这种远程桌面协议把PC桌面弄到手机上面。反过来,这样做的很少。所以,最终我们是舍弃了这种方案,采用第二种。第二种就是比较的简单了,我对当前的屏幕进行截图,截图完了以后做一些处理。做一些压缩,然后传到服务端,服务端进行展现,就把屏幕截图展现出来。

屏幕截图做完了,下一步,需要在管理界面进行配置,对于可点击的组件进行配置,就需要把这些界面框起来。你需要把它展现出来。我们接着看一下,怎么拿到屏幕控件信息。这个是算整个技术里面比较关键的一点。这一块儿主要就是三个问题。第一,就是获取时机。第二,就是拿控件什么信息,什么信息是需要用到的。第三,就是比较关键的,如何生成控件的唯一ID,ID是在程序内部生成。需要保证在不同的手机上面,这些ID是一样的。还要保证每一次启动ID都是不变。IOS主要是用Runtime技术,通过hook把点击事件系统函数指针替换一下,换成自己的函数。然后,我们先做一些处理,处理完以后,我们再调系统原来函数。这样的话就可以自动捕获,发送到服务端,从而采集到这个数据。Android的思想类似。

运营人员在后台管理配置页面,选择需要无埋点的控件,发送到客户端,下次客户端启动的时候,从服务器获得这些配置,运行时hook一下viewcontroller的viewDidAppear,配置当前页面无埋点控件,添加自己的点击事件,单独的上报数据即可。

(o゜▽゜)o☆[BINGO!]

这个项目主要分享了什么

主要是分享了客户端模拟获得后端的配置的无埋点控件之后,客户端自动添加无埋点控件的处理过程。主要是对这个技术的可行性研究。可能有写得不够好的地方,欢迎您指正。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published