@@ -45,6 +45,10 @@ export class KitTrack {
private static baseJson: JsonData;
+ private static EnsureBaseJson() {
+ if (!this.baseJson) this.InitBaseJson();
+ }
+
private static InitBaseJson() {
this.baseJson = new JsonData();
//sdk的版本号
@@ -83,30 +87,61 @@ export class KitTrack {
this.baseJson.put(RecodeKey.h5_clarity_id, KitAPI.h5ClarityId);
}
- static MergeBase(json: JsonData) {
+ static MergeBase(json: JsonData, overwrite = true) {
+ this.EnsureBaseJson();
+ const putBase = (key: string, value: number | boolean | string | JsonData | null) => {
+ if (
+ overwrite ||
+ json.jObject[key] === undefined ||
+ json.jObject[key] === null ||
+ json.jObject[key] === ''
+ ) {
+ json.put(key, value);
+ }
+ };
+
// 遍历 obj2 的所有键值对并添加到 obj1
const keys = Object.keys(this.baseJson.jObject);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
- json.put(key, this.baseJson.jObject[key]);
+ putBase(key, this.baseJson.jObject[key]);
}
// if (KitAPI.IS_IOS) json.put(RecodeKey.IFA, KitAPI.ADID);
- json.put(RecodeKey.GOOGLE_AID, KitAPI.ADID);
- json.put(RecodeKey.TP_DEVICE_ID, KitAPI.GetSmID());
- json.put(RecodeKey.MEDIA_SOURCE, KitAdjust.GetDistributor(false));
- json.put(RecodeKey.CAMPAIGN, KitAdjust.GetSecondDistributor());
- json.put(RecodeKey.ADSET_ADSET_ID, KitAdjust.GetCreative());
- json.put(RecodeKey.ADGROUP_NAME, KitAdjust.GetAdGroup());
- json.put(RecodeKey.h5_is_pwa, KitAPI.GetIsPWA);
- json.put(RecodeKey.h5_ua_parser, KitAPI.GetUaParser);
- json.put(RecodeKey.h5_os, KitAPI.h5Os);
- json.put(RecodeKey.h5_os_version, KitAPI.h5OsVersion);
- json.put(RecodeKey.h5_device, KitAPI.h5Device);
- json.put(RecodeKey.h5_browser, KitAPI.h5Browser);
- json.put(RecodeKey.h5_browser_version, KitAPI.h5BrowserVersion);
- json.put(RecodeKey.h5_clarity_id, KitAPI.h5ClarityId);
-
+ putBase(RecodeKey.GOOGLE_AID, KitAPI.ADID);
+ putBase(RecodeKey.TP_DEVICE_ID, KitAPI.GetSmID());
+ putBase(RecodeKey.MEDIA_SOURCE, KitAdjust.GetDistributor(false));
+ putBase(RecodeKey.CAMPAIGN, KitAdjust.GetSecondDistributor());
+ putBase(RecodeKey.ADSET_ADSET_ID, KitAdjust.GetCreative());
+ putBase(RecodeKey.ADGROUP_NAME, KitAdjust.GetAdGroup());
+ putBase(RecodeKey.h5_is_pwa, KitAPI.GetIsPWA);
+ putBase(RecodeKey.h5_ua_parser, KitAPI.GetUaParser);
+ putBase(RecodeKey.h5_os, KitAPI.h5Os);
+ putBase(RecodeKey.h5_os_version, KitAPI.h5OsVersion);
+ putBase(RecodeKey.h5_device, KitAPI.h5Device);
+ putBase(RecodeKey.h5_browser, KitAPI.h5Browser);
+ putBase(RecodeKey.h5_browser_version, KitAPI.h5BrowserVersion);
+ putBase(RecodeKey.h5_clarity_id, KitAPI.h5ClarityId);
+
+ //是否为升级用户
+ putBase(RecodeKey.IS_UPGRADE_USER, KitAPI.isUpdateUser ? 1 : 0);
+ //用户账号
+ putBase(RecodeKey.CUSTOM_USER_ID, KitAPI.kitUserId);
+ //用户手机
+ putBase(RecodeKey.CUSTOM_USER_MOBILE, KitAPI.kitUserMobile);
+ //用户邮箱
+ putBase(RecodeKey.CUSTOM_USER_EMAIL, KitAPI.kitUserEmail);
+ //versionName
+ putBase(RecodeKey.VERSION_NAME, KitAPI.versionName);
+ //versionCode
+ putBase(RecodeKey.VERSION_CODE, KitAPI.versionCode);
+ //安装天数
+ putBase(RecodeKey.INSTALL_DAYS, KitAPI.GetActiveDay());
+ //安装小时
+ putBase(RecodeKey.INSTALL_HOURS, KitAPI.GetActiveHours());
+ //网络状态
+ putBase(RecodeKey.NET, KitAPI.GetNetworkType());
+ putBase(RecodeKey.VPN_USR, KitAPI.isVpnConnected() ? 1 : 0);
}
static TrackALive(key: string) {