Q1: SDK log數據包的發送策略?
切后臺,啟動(第一個頁面)時發送數據包,或者緩沖區滿(大小動態調整,最小1k)發送數據包。
Q2: SDK log數據包有多大?
SDK數據包發送:
最大:6k
最小:550字節
Q3:集成SDK后為什么沒看到日志?
請確認,SDK的初始化方法是否有正常設置,如appkey,init方法調用(見問題2)等
確認,日志是否已經被埋點,通過SDK的turnOnDebug功能看本地端log
Q4:SDK相關接口調用的順序是否影響埋點?
查看對SDK進行初始化的時候, setKey接口是否在init接口之前,如下
iOS:
[UT setKey:@"21771303"appSecret:@"xxxx"];
[UTinit];
Android:
TBS.setKey("21771304", "xxx");
TBS.init();
Q5:日志中有哪些關鍵字會被過濾呢?
不允許使用\n,\t,|,||,\r字符作為埋點的內容或分隔符
Q6:2001/2101/19999有何規定的業務含義?
2001代表頁面事件,埋點觸發時機為當前頁面離開時候。
Page字段:代表當前頁面名稱
Arg1:代表當前頁面從哪個頁面跳轉過來
Arg2:代表當前頁面從哪個頁面的哪個控件點擊過來
Arg3:代表當前頁面的展示時長(頁面消失時間點-頁面剛開始顯示時間點),單位毫秒
Args:更多頁面事件相關的參數kv對
2101:代表控件點擊事件
Page字段:代表控件點擊事件發生時當前的頁面名稱
Arg1:代表控件點擊事件名稱
Args:更多控件點擊事件相關的參數kv對
19999:代表自定義事件
Arg1:代表自定義事件名稱
Arg3:代表自定義事件從觸發到結束經歷的時長,單位毫秒
Args:更多自定義事件相關的參數kv對
Q7:ios里面要怎么給view埋頁面事件的點?
調用接口:
view進入時調用:+(void) et_viewEnter:(UIView *) view properties:(NSDictionary *) pProperties;
view離開時調用:+(void) et_viewLeave:(UIView *) view properties:(NSDictionary *) pProperties;
如果需要給view的頁面事件添加一些業務屬性,調用:
+(void) et_updateViewProperties:(UIView *) view properties:(NSDictionary *) pProperties;
Q8:19999事件的args字段被encode了,在云梯上要如何解讀?
數據開發需要對19999事件的args進行decode,odps上面的udf是url_decode(args,'utf-8')
Q9:可以在crash發生時讓用戶填入相關的反饋信息嗎?
可以的,CrashHandler提供了一組回調函式,應用方可以去實現OnCrashCaught()
接口去做定制的處理。例如在OnCrashCaught()
中跳到一個activity,讓用戶去填反饋信息。
Q10:如何關掉”程序開個小差“的toast?
調用TBS.CrashHandler.disableEffect()
。
Q11:OnCrashCaughtListener中的onCrashCaught和IUTCrashCaughtListner中的有什么不同?
強烈建議使用IUTCrashCaughtListner,如果該版本SDK中有此接口的話。原因是OnCrashCaughtListener回傳的Arg會覆蓋掉默認的Arg,而IUTCrashCaughtListner中的不會傳入默認的Arg,只會讓用戶回傳想要新增的Map而附加到Arg中的args中。
public interface OnCrashCaughtListener {
/**
* 錯誤捕捉回調
*
* @param thread
* 發生異常的Thread
* @param exception
* 發生異常的Throwable對象
* @param arg
* Usertrack SDK解析以后形成的Arg對象(其中對應上傳到服務端的數據)
* @return null:SDK用舊的Arg對象上傳到服務端 存在有效值:SDK把新的Arg對象上傳到服務端
*/
Arg OnCrashCaught(Thread thread, Throwable exception, Arg arg);
}
public interface IUTCrashCaughtListner {
Map<String, Object> onCrashCaught(Thread pThread,Throwable pException);
}
Q12: SDK采集是否有開關?
1)關閉SDK默認自動采集的事件
自動采集的內容有:頁面事件,crash事件,可以通過Mobile Analytics SDK接口關閉【具體參看文檔】。
iOS自動采集的內容有:crash事件,可以通過Mobile Analytics SDK接口關閉【具體參看文檔】。
2)動態關閉自己埋的事件
對于APP發布之后,可以通過我們的產品動態的調整事件采集的比例,目前產品正在開發計劃中。