移動端日志采集:
1)除了web頁面日志采集的相關(guān)內(nèi)容來提升用戶體驗外像樊,還需要采集各種設(shè)備信息梭灿,以及各種設(shè)備的運行情況,協(xié)助開發(fā)者分析各類設(shè)備特有問題
2)移動端日志采集通過采集SDK完成漆枚,根據(jù)不同的用戶行為分成不同的事件棋嘲,事件是移動端日志采集的最小單位,基于常用的分析蕉汪,把事件分為頁面事件和控件點擊事件等流译。
頁面事件:
1)SDK提供三個接口,三種接口配合使用:
①頁面展現(xiàn)接口者疤,在進入頁面時調(diào)用福澡,記錄相關(guān)狀態(tài)信息
②頁面擴展信息接口,給記錄添加相關(guān)參數(shù)
③頁面退出接口驹马,在點擊詳情頁 / 點擊返回 / 退出軟件時調(diào)用革砸,用于發(fā)送日志給采集服務(wù)器
2) 滲透參數(shù):把當前頁面的某些信息傳遞到之后瀏覽的頁面,用于用戶行為路徑的還原糯累。
控件事件:
1)采集用戶交互信息算利,只需要把控件相關(guān)信息告訴采集SDK即可,具體包括:
2)用戶自定義埋點類:包含事件名稱泳姐、事件時長效拭、事件攜帶的屬性、事件對應(yīng)的頁面
3)采集SDK默認埋點:包含自動捕捉應(yīng)用崩潰胖秒、自動捕捉應(yīng)用退出缎患、自動捕捉應(yīng)用前后臺切換等與業(yè)務(wù)不相關(guān)但對于分析存在價值的數(shù)據(jù)捕捉
特殊場景:
在日志數(shù)據(jù)量巨大時,為了減少采集請求次數(shù)阎肝、采集服務(wù)器的壓力以及網(wǎng)絡(luò)壓力挤渔,常常在采集SDK利用頁面的生命周期進行聚合并選擇適當?shù)臅r機向采集服務(wù)器發(fā)送聚合請求。
案例說明:購物主會場頁面? >>? 女裝分會場 >> 女裝店鋪A? >>? (返回)女裝分會場? >> ?女裝店鋪B
存在問題:第二次女裝分會場的來源會被識別為女裝店鋪A风题,干擾用戶行為分析
解決方法:利用頁面生命周期判导,識別頁面復(fù)用,配合棧來識別是否是回退行為
H5 & Native 日志:
1)app分兩種:
① Native app:純app頁面
② Hybrid app:? 既有Native app頁面沛硅,也有H5嵌入app
2)由于Native頁面與H5頁面的采集方式眼刃、采集的內(nèi)容以及采集服務(wù)器均分離開,需要對兩種數(shù)據(jù)進行關(guān)聯(lián)后在統(tǒng)一分析
3)考慮到采集SDK可以采集更多移動設(shè)備信息摇肌;采集SDK 采集到數(shù)據(jù)后先還存在本地再擇機請求鸟整,選擇把H5日志歸一到Native頁面的方式
H5 & Native 日志統(tǒng)一流程:
1)H5特面中的日志采集與瀏覽器頁面采集完全相同
2)瀏覽器把javascript腳本采集到的數(shù)據(jù)打包成對象,調(diào)用WebView框架的JSBridge接口朦蕴,把數(shù)據(jù)對象當作參數(shù)傳入移動端采集SDK
3)采集SDK把傳入的對象數(shù)據(jù)轉(zhuǎn)換成移動端日志格式篮条,在app端統(tǒng)一進行日志處理緩存到本地然后擇機上傳
日志傳輸:
1)采集SDK日志收集完日志之后,進行日志擇機上傳:
2)移動端數(shù)據(jù)通過post請求發(fā)送給服務(wù)器吩抓,服務(wù)器對數(shù)據(jù)進行驗證后涉茧,以Nginx的access_log方式存儲
3)考慮到后續(xù)數(shù)據(jù)處理以及特定時期的日志級別保障,根據(jù)應(yīng)用疹娶、日志類型對日志數(shù)據(jù)進行分流伴栓。分流的好處在于雙十一等日志數(shù)據(jù)量巨大的時期,可以集中資源處理日志級別高的日志數(shù)據(jù)