iOS數(shù)據(jù)埋點

1.最近公司做了一個關(guān)于高端理財?shù)捻椖?,之前一些項目主要是通過第三方“友盟”進行數(shù)據(jù)統(tǒng)計。這次公司在項目中提出了數(shù)據(jù)埋點的需求,自己采集使用app人群的數(shù)據(jù),自己在后臺進行大數(shù)據(jù)的分析。

2.埋點分為頁面統(tǒng)計和事件統(tǒng)計,公司為項目中每個頁面定義了唯一的pageId,就為了這件事我們和產(chǎn)品爭論了很長時間,我們客戶端希望我們只傳頁面對應(yīng)的類名,然后后臺根據(jù)數(shù)據(jù)自己關(guān)聯(lián)。產(chǎn)品又說安卓和iOS的類名可能不一樣,所以他們不能統(tǒng)一。我們又給出了方案,我們新增一個字段"type"用來區(qū)分是安卓還是iOS,然后你們自己在關(guān)聯(lián)。后來還是胳膊扭不過大腿,pageId傳了,"type"也傳了。。。干不過那就想辦法做吧,頁面怎么和pageId關(guān)聯(lián)就成了一個問題,既然一一對應(yīng),我就想到了字典,那就寫在一個本地plist文件里吧。每次進入頁面和離開頁面都要去plist去取,也不太合適,我就寫了單例,只讀取一次plist。但是還要每次去單例里去值,所以后來又想了一個辦法,給基類定義一個屬性,每次讀取到了就保存下來,只要頁面沒有被銷毀,每次就不要重新取了,也算是做到了性能方面的優(yōu)化吧。

3.事件統(tǒng)計比較簡單,每個事件對應(yīng)一個事件id,所以只要硬編碼定義事件id,在需要加的地方加一下就行了,和友盟的mobClick方法類似。

4.事件和頁面埋點數(shù)據(jù)都存到本地,達到一定的條數(shù)就上傳,傳完就刪除。我也限制了最大存儲條數(shù),以防在斷網(wǎng)和服務(wù)器異常的情況下無限制的往本地存儲。

5.最后上Demo,github地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容