青團(tuán)社埋點系統(tǒng)的變遷
使用
Android
在application中初始化埋點庫
QTracker.init(app, qTrackerBuilder);
注冊點位
用注冊的方式代替手動曝光和點擊
之前已有的注冊方式
TraceTagHelper.INSTANCE.makeTag(findViewById(R.id.page_title_right_group), "rightGrouop", EventEntityCompat.INSTANCE.getEventEntity(TrackerConstant.Page.MESSAGE_P2P, TrackerConstant.Module.MODULE_SIX, 1), true);
結(jié)合HADES的點位特點式散,改造成
TrackerTagHelper.makeTag(view, "4232", "400110010000") // view處理
埋點的目標(biāo)就是將點位和View綁定瘫证,通過設(shè)置HADES提供的id和positionId,可支持后續(xù)的校驗幻工,上報岩饼,查詢等功能。
Dialog
Dialog,PopWindow都有自己的DecorView察藐,因此不在Activity的ViewTree上,無法直接關(guān)聯(lián)Activity舟扎。QTracker庫封裝了幾個基礎(chǔ)組件分飞,內(nèi)部托管了生命周期中的曝光和點擊邏輯
- Dialog -> TrackerDialog
- DialogFragment -> TrackerDialogFragment
- BottomSheetDialogFragment -> BottomSheetTrackerDialogFragment
- PopupWindow -> TrackerPopupWindow
RecyclerView
原生的RV將綁定的邏輯放在onBindView中,參考Demo中的RV目錄
TraceTagHelper.makeItemTag(holder.itemView, "4232", "400110010000", position) // ViewHolder等列表處理
特殊場景
網(wǎng)絡(luò)請求后在根據(jù)數(shù)據(jù)進(jìn)行綁定睹限,需要在請求返回后更新tag譬猫,并手動調(diào)用曝光請求
曝光請求:ActivityTrackerHelper.instance.exposure()
Flutter
BaseTrack作為TrackerEvent的父類,實現(xiàn)toJSON方法
UME中新增TrackerInfoInspector羡疗,在回調(diào)中調(diào)用原生的上報插件
if(kDebugMode){
bool enableUME = true;
//Ume調(diào)試插件初始化
PluginManager.instance // 注冊插件
..register(TrackerInfoInspector(uploadCallback: (eventMap){
FlutterTrackerPlugin.uploadHades(eventMap);
},))
}
- 原生端實現(xiàn)上報插件
埋點可視化
開發(fā)環(huán)境中有配套的工具集染服,在dev tool中可開啟
Android
- 開啟埋點可視化工具
打開左上角dev tool,點擊埋點可視化工具開啟“T”浮窗叨恨。
- 點位查詢
頁面會有可視化開關(guān)“T”柳刮,點擊開啟,頁面會新增蒙層痒钝。
開啟可視化工具后秉颗,所有事件都會被攔截,單擊需要查看的View送矩,工具會在對應(yīng)View上覆蓋一層點位信息圖層蚕甥,同時復(fù)制點位到剪切板上。
再次點擊開關(guān)“T”栋荸,關(guān)閉菇怀,同時恢復(fù)頁面交互。
- 上報點位
長按需要上報的View晌块,可視化工具會將id和positionId一起傳遞到上報彈窗敏释,檢查,點擊上報即可摸袁。
- 校驗點位
長按需要上報的View,在上報彈窗中點擊校驗义屏,即可校驗id和positionId是否匹配靠汁。匹配成功按鈕變綠,失敗變紅
Flutter
- flutter頁面點擊UME闽铐,打開TrackerInfo
- 點擊widget查看點位
- 長按Widget喚起上報工具