如果你的公司用戶基數足夠大,那么根據埋點數據分析得到的反饋是非常有用的。除了第三方的埋點數據分析,比如友盟,如果我們希望自己也存一份數據,作為對友盟數據的對比,在iOS工程中如何實現呢?
一般的埋點分為PV(界面級別的),PA(action事件級別).下邊為了減少冗余,簡稱PV,PA。PV中的數據一般都是靜態的,與業務邏輯不相關,比如進入時間,離開時間,是否進入該界面等等。
所以這類需求是很好處理的,一般都會讓所有的controller都繼承BaseViewController。這樣左右的信息都基于一個類中,符合高聚合的表現。
那么PA的事件埋點數據如何處理呢?最傳統的方法是在每個action中添加相應的埋點數據,但是這樣功能和業務邏輯就混在一起,代碼結構很混亂,不簡潔,不優雅。
混在在一起,放眼望去,怎么埋點到處都是啊,自己都煩的不行。尤其是每一次action改變之后,對應的邏輯就要改變,我要去不同的類中去更改。實在是不勝其煩。
其實早就有解決之道,而且非常好用,這里推薦MOAspect。它校于Aspect,有一個功能很重要就是支持相同的方法名注冊,而Aspect是不支持不同類相同方法名注冊的。
這些都是都是在去年經過驗證,并且線上反饋還不錯的。大家可以放心去用,坑都是踩過的。
因為項目中的業務是分模塊來處理的,那么我們在埋點的時候也是根據業務邏輯來處理的。那么如何劃分呢?
我是這么劃分的:
Snip20160304_1.png
給出圖片,大家自己看,后邊有一個簡單的Demo,已經放在github上。順便說一句,希望大家遇到問題的時候能夠冷靜下來一點點分析。
首先為了便于修改埋點數據,給出了宏定義的.h文件
Snip20160304_2.png
然后是埋點輔助類:
Snip20160304_3.png
Snip20160304_4.png
接下來就是在具體的類中實現了:
Snip20160304_5.png
#最后的最后,如果您老人家,哦,不,小鮮肉們,覺得有用的就關注一下,不枉我寫了半個小時。
github地址:https://github.com/summerHearts/AspectTrack/tree/master 。