青團社埋點系統(tǒng)的變遷

t_5.png
使用
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);
結合HADES的點位特點,改造成
TrackerTagHelper.makeTag(view, "4232", "400110010000") // view處理
埋點的目標就是將點位和View綁定,通過設置HADES提供的id和positionId,可支持后續(xù)的校驗,上報,查詢等功能。
Dialog
Dialog,PopWindow都有自己的DecorView,因此不在Activity的ViewTree上,無法直接關聯Activity。QTracker庫封裝了幾個基礎組件,內部托管了生命周期中的曝光和點擊邏輯
- Dialog -> TrackerDialog
- DialogFragment -> TrackerDialogFragment
- BottomSheetDialogFragment -> BottomSheetTrackerDialogFragment
- PopupWindow -> TrackerPopupWindow
RecyclerView
原生的RV將綁定的邏輯放在onBindView中,參考Demo中的RV目錄
TraceTagHelper.makeItemTag(holder.itemView, "4232", "400110010000", position) // ViewHolder等列表處理
特殊場景
網絡請求后在根據數據進行綁定,需要在請求返回后更新tag,并手動調用曝光請求
曝光請求:ActivityTrackerHelper.instance.exposure()
Flutter
BaseTrack作為TrackerEvent的父類,實現toJSON方法
UME中新增TrackerInfoInspector,在回調中調用原生的上報插件
if(kDebugMode){
bool enableUME = true;
//Ume調試插件初始化
PluginManager.instance // 注冊插件
..register(TrackerInfoInspector(uploadCallback: (eventMap){
FlutterTrackerPlugin.uploadHades(eventMap);
},))
}
- 原生端實現上報插件
埋點可視化
開發(fā)環(huán)境中有配套的工具集,在dev tool中可開啟
Android
- 開啟埋點可視化工具
打開左上角dev tool,點擊埋點可視化工具開啟“T”浮窗。

t_2.png
- 點位查詢

t_3.png
頁面會有可視化開關“T”,點擊開啟,頁面會新增蒙層。
開啟可視化工具后,所有事件都會被攔截,單擊需要查看的View,工具會在對應View上覆蓋一層點位信息圖層,同時復制點位到剪切板上。
再次點擊開關“T”,關閉,同時恢復頁面交互。
- 上報點位
長按需要上報的View,可視化工具會將id和positionId一起傳遞到上報彈窗,檢查,點擊上報即可。
- 校驗點位
長按需要上報的View,在上報彈窗中點擊校驗,即可校驗id和positionId是否匹配。匹配成功按鈕變綠,失敗變紅

t_4.png
Flutter
- flutter頁面點擊UME,打開TrackerInfo

trace_1.png
- 點擊widget查看點位

trace_2.png
- 長按Widget喚起上報工具

trace_3.png