
移動(dòng)端日志采集:
1)除了web頁面日志采集的相關(guān)內(nèi)容來提升用戶體驗(yàn)外,還需要采集各種設(shè)備信息,以及各種設(shè)備的運(yùn)行情況,協(xié)助開發(fā)者分析各類設(shè)備特有問題
2)移動(dòng)端日志采集通過采集SDK完成,根據(jù)不同的用戶行為分成不同的事件,事件是移動(dòng)端日志采集的最小單位,基于常用的分析,把事件分為頁面事件和控件點(diǎn)擊事件等。
頁面事件:

1)SDK提供三個(gè)接口,三種接口配合使用:
①頁面展現(xiàn)接口,在進(jìn)入頁面時(shí)調(diào)用,記錄相關(guān)狀態(tài)信息
②頁面擴(kuò)展信息接口,給記錄添加相關(guān)參數(shù)
③頁面退出接口,在點(diǎn)擊詳情頁 / 點(diǎn)擊返回 / 退出軟件時(shí)調(diào)用,用于發(fā)送日志給采集服務(wù)器
2) 滲透參數(shù):把當(dāng)前頁面的某些信息傳遞到之后瀏覽的頁面,用于用戶行為路徑的還原。
控件事件:
1)采集用戶交互信息,只需要把控件相關(guān)信息告訴采集SDK即可,具體包括:

2)用戶自定義埋點(diǎn)類:包含事件名稱、事件時(shí)長(zhǎng)、事件攜帶的屬性、事件對(duì)應(yīng)的頁面
3)采集SDK默認(rèn)埋點(diǎn):包含自動(dòng)捕捉應(yīng)用崩潰、自動(dòng)捕捉應(yīng)用退出、自動(dòng)捕捉應(yīng)用前后臺(tái)切換等與業(yè)務(wù)不相關(guān)但對(duì)于分析存在價(jià)值的數(shù)據(jù)捕捉
特殊場(chǎng)景:
在日志數(shù)據(jù)量巨大時(shí),為了減少采集請(qǐng)求次數(shù)、采集服務(wù)器的壓力以及網(wǎng)絡(luò)壓力,常常在采集SDK利用頁面的生命周期進(jìn)行聚合并選擇適當(dāng)?shù)臅r(shí)機(jī)向采集服務(wù)器發(fā)送聚合請(qǐng)求。
案例說明:購(gòu)物主會(huì)場(chǎng)頁面? >>? 女裝分會(huì)場(chǎng) >> 女裝店鋪A? >>? (返回)女裝分會(huì)場(chǎng)? >> ?女裝店鋪B
存在問題:第二次女裝分會(huì)場(chǎng)的來源會(huì)被識(shí)別為女裝店鋪A,干擾用戶行為分析
解決方法:利用頁面生命周期,識(shí)別頁面復(fù)用,配合棧來識(shí)別是否是回退行為
H5 & Native 日志:
1)app分兩種:
① Native app:純app頁面
② Hybrid app:? 既有Native app頁面,也有H5嵌入app
2)由于Native頁面與H5頁面的采集方式、采集的內(nèi)容以及采集服務(wù)器均分離開,需要對(duì)兩種數(shù)據(jù)進(jìn)行關(guān)聯(lián)后在統(tǒng)一分析
3)考慮到采集SDK可以采集更多移動(dòng)設(shè)備信息;采集SDK 采集到數(shù)據(jù)后先還存在本地再擇機(jī)請(qǐng)求,選擇把H5日志歸一到Native頁面的方式
H5 & Native 日志統(tǒng)一流程:
1)H5特面中的日志采集與瀏覽器頁面采集完全相同
2)瀏覽器把javascript腳本采集到的數(shù)據(jù)打包成對(duì)象,調(diào)用WebView框架的JSBridge接口,把數(shù)據(jù)對(duì)象當(dāng)作參數(shù)傳入移動(dòng)端采集SDK
3)采集SDK把傳入的對(duì)象數(shù)據(jù)轉(zhuǎn)換成移動(dòng)端日志格式,在app端統(tǒng)一進(jìn)行日志處理緩存到本地然后擇機(jī)上傳
日志傳輸:
1)采集SDK日志收集完日志之后,進(jìn)行日志擇機(jī)上傳:

2)移動(dòng)端數(shù)據(jù)通過post請(qǐng)求發(fā)送給服務(wù)器,服務(wù)器對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證后,以Nginx的access_log方式存儲(chǔ)
3)考慮到后續(xù)數(shù)據(jù)處理以及特定時(shí)期的日志級(jí)別保障,根據(jù)應(yīng)用、日志類型對(duì)日志數(shù)據(jù)進(jìn)行分流。分流的好處在于雙十一等日志數(shù)據(jù)量巨大的時(shí)期,可以集中資源處理日志級(jí)別高的日志數(shù)據(jù)