diff --git a/MobileTracking/.idea/caches/build_file_checksums.ser b/MobileTracking/.idea/caches/build_file_checksums.ser
index c454fd61921faf5707669c2b05b524d08c7f8acc..716ca7822050444cee61a9ffb21dc36357851523 100644
Binary files a/MobileTracking/.idea/caches/build_file_checksums.ser and b/MobileTracking/.idea/caches/build_file_checksums.ser differ
diff --git a/MobileTracking/.idea/caches/gradle_models.ser b/MobileTracking/.idea/caches/gradle_models.ser
new file mode 100644
index 0000000000000000000000000000000000000000..d3d17df00b7dc4a6e701045dae74a8d448fd7ba9
Binary files /dev/null and b/MobileTracking/.idea/caches/gradle_models.ser differ
diff --git a/MobileTracking/.idea/codeStyles/Project.xml b/MobileTracking/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000000000000000000000000000000000000..681f41ae2aee4749eb4ddda94f8c6a76c825c825
--- /dev/null
+++ b/MobileTracking/.idea/codeStyles/Project.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MobileTracking/.idea/gradle.xml b/MobileTracking/.idea/gradle.xml
index 16cd6b186cf85094dd326fe81b280aeb456c84b2..bc863ce9ed095d172571b26559c5bfefdde41750 100644
--- a/MobileTracking/.idea/gradle.xml
+++ b/MobileTracking/.idea/gradle.xml
@@ -3,6 +3,9 @@
diff --git a/MobileTracking/.idea/misc.xml b/MobileTracking/.idea/misc.xml
index 26a9819cb06d9c298d599d907625f5fc70148651..86da048a9411fc3a8477dad1830550107ca27082 100644
--- a/MobileTracking/.idea/misc.xml
+++ b/MobileTracking/.idea/misc.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,12 +16,14 @@
+
+
-
+
@@ -31,11 +33,13 @@
+
+
-
+
diff --git a/MobileTracking/.idea/modules.xml b/MobileTracking/.idea/modules.xml
index 00174cfcb3185cc549f8e5d83fe1c1e921b09ed7..a574109202a61637c36d7b37d0964d7d445e160b 100644
--- a/MobileTracking/.idea/modules.xml
+++ b/MobileTracking/.idea/modules.xml
@@ -2,7 +2,6 @@
-
diff --git a/MobileTracking/MobileTrackingDemo/src/main/assets/sdkconfig.xml b/MobileTracking/MobileTrackingDemo/src/main/assets/sdkconfig.xml
index bb731861d4dbdbb53b78f35059f259377387585b..2d2e0ec867b4905677027ce870f8159d8562c3a0 100644
--- a/MobileTracking/MobileTrackingDemo/src/main/assets/sdkconfig.xml
+++ b/MobileTracking/MobileTrackingDemo/src/main/assets/sdkconfig.xml
@@ -435,6 +435,7 @@
DbXiUlEVN
mf
+
true
@@ -449,13 +450,12 @@
md5
-
-
- /apl/
-
- 24
- false
+
+ /apl/
+
+ 24
+ false
@@ -786,21 +786,22 @@
https://g.cn.miaozhen.com/x/k=adid
+
=
true
-
girdsum
+
+
-
+
gridsumdissector.com
-
@@ -814,10 +815,10 @@
1
- raw
- md5
+ md5
+ raw
md5
- raw
+ md5
@@ -845,6 +846,7 @@
true
+
IDFA
if
@@ -866,6 +868,13 @@
true
+
+ OAID
+ oa
+ true
+ true
+
+
WIFI
wifi
@@ -895,16 +904,24 @@
true
+
- OPENUDID
- oid
+ WIFISSID
+ wfssid
+ true
+ true
+
+
+
+ WIFIBSSID
+ wfbssid
true
true
- ODIN
- odin
+ OPENUDID
+ oid
true
true
@@ -959,15 +976,15 @@
-
+
start
- m201
+ event=start
true
end
- m203
+ event=end
true
@@ -991,6 +1008,20 @@
true
+
+
+ ImpressionType
+ vitype
+ true
+ true
+
+
+
+ AdviewabilityRecord
+ vir
+ true
+ true
+
AdviewabilityEvents
@@ -1075,6 +1106,13 @@
true
true
+
+
+ AdviewabilityResult
+ vr
+ true
+ true
+
@@ -1120,6 +1158,13 @@
true
true
+ 18ri
+
+ AdviewabilityStrongInteract
+ vcsi
+ true
+ true
+
&
@@ -1679,5 +1724,650 @@
true
+
+ nielsen
+
+
+
+
+ uat.cr-nielsen.com
+
+
+
+ 4A5DBD140
+ pk
+
+
+ true
+
+ 604800
+
+ 1
+
+ md5
+ raw
+ md5
+ raw
+
+
+
+
+
+
+
+
+ OS
+ os
+
+ true
+
+ true
+
+
+
+ TS
+ ts
+ true
+ true
+
+
+
+ MAC
+ mac
+ true
+ true
+
+
+
+ IDFA
+ idfa
+ true
+ true
+
+
+
+ IMEI
+ imei
+ true
+ true
+
+
+
+ ANDROIDID
+ androidid
+ true
+ true
+
+
+
+ WIFI
+ wifi
+ true
+ true
+
+
+
+ AKEY
+ akey
+ true
+ true
+
+
+
+ ANAME
+ aname
+ true
+ true
+
+
+
+
+ SCWH
+ scwh
+ true
+ true
+
+
+
+ OPENUDID
+ openudid
+ true
+ true
+
+
+
+ ODIN
+ odin
+ true
+ true
+
+
+
+ TERM
+ term
+ true
+ true
+
+
+
+ OSVS
+ osvs
+ true
+ true
+
+
+
+ LBS
+ lbs
+ true
+ true
+
+
+
+ MUID
+ muid
+ true
+ true
+
+
+
+ MUDS
+ muds
+ true
+ true
+
+
+
+ REDIRECTURL
+ ref
+ true
+ true
+
+
+ SDKVS
+ sdkvs
+ true
+ true
+
+
+
+
+
+ start
+ start
+ true
+
+
+
+ end
+ end
+ true
+
+
+
+
+
+
+ Adplacement
+ hat_pid
+ false
+ false
+
+
+
+
+
+
+ ImpressionID
+ imp_id
+ true
+ true
+
+
+ ImpressionType
+ vit
+ true
+ true
+
+
+
+
+ AdviewabilityEvents
+ vbe
+ true
+ true
+
+
+
+ AdviewabilityTime
+ vts
+ true
+ true
+
+
+
+ AdviewabilityFrame
+ vbf
+ true
+ true
+
+
+
+ AdviewabilityPoint
+ vbp
+ true
+ true
+
+
+
+ AdviewabilityAlpha
+ vba
+ true
+ true
+
+
+
+ AdviewabilityShown
+ vbs
+ true
+ true
+
+
+
+ AdviewabilityCoverRate
+ vbc
+ true
+ true
+
+
+
+ AdviewabilityShowFrame
+ vsf
+ true
+ true
+
+
+
+ AdviewabilityLight
+ vbl
+ true
+ true
+
+
+
+ AdviewabilityForground
+ vfg
+ true
+ true
+
+
+
+ Adviewability
+ vvb
+ true
+ true
+
+
+
+ AdMeasurability
+ vmb
+ true
+ true
+
+
+
+
+
+
+ AdviewabilityConfigArea
+ vca
+ true
+ true
+
+
+
+ AdviewabilityConfigThreshold
+ vct
+ true
+ true
+
+
+
+ AdviewabilityVideoDuration
+ vcvd
+ true
+ true
+
+
+
+ AdviewabilityVideoProgress
+ vcvp
+ true
+ true
+
+
+
+ AdviewabilityVideoPlayType
+ vcpt
+ true
+ true
+
+
+
+ AdviewabilityVideoProgressPoint
+ vcpp
+ true
+ true
+
+
+
+ &
+
+ =
+
+ true
+
+
+
+ TalkingData
+
+
+
+
+
+
+ .lnk0.com
+
+
+ DbXiUlEVN
+ s
+
+
+ false
+
+ 604800
+
+ 1
+
+ md5
+ raw
+ md5
+ raw
+
+
+
+
+
+
+
+ OS
+ osversion
+ true
+ true
+
+
+ TS
+ time
+ true
+ true
+
+
+ MAC
+ mac_md5
+ true
+ true
+
+
+ IDFA
+ idfa
+ true
+ true
+
+
+ IMEI
+ imei_md5
+ true
+ true
+
+
+ RAWIMEI
+ m3
+ true
+ false
+
+
+ ANDROIDID
+ androidid
+ true
+ true
+
+
+ WIFI
+ nm
+ true
+ false
+
+
+ AKEY
+ pname
+ true
+ true
+
+
+ ANAME
+ aname
+ true
+ false
+
+
+
+ SCWH
+ scwh
+ true
+ false
+
+
+
+ WIFISSID
+ ssid
+ true
+ false
+
+
+
+ WIFIBSSID
+ bssid
+ true
+ false
+
+
+ OPENUDID
+ openudid
+ true
+ false
+
+
+ TERM
+ devicetype
+ true
+ false
+
+
+ OSVS
+ osvs
+ true
+ false
+
+
+ LBS
+ mm
+ true
+ false
+
+
+ SDKVS
+ sdkvs
+ true
+ false
+
+
+ REDIRECTURL
+ o
+ true
+ false
+
+
+
+
+
+ start
+ mb=start
+ false
+
+
+
+ end
+ mb=end
+ false
+
+
+
+
+ Adplacement
+ adid
+ false
+ false
+
+
+
+
+ ImpressionID
+ vimpid
+ true
+ false
+
+
+ AdviewabilityRecord
+ va
+ true
+ false
+
+
+ AdviewabilityEvents
+ vct
+ true
+ false
+
+
+ AdviewabilityTime
+ 1
+ true
+ false
+
+
+ AdviewabilityFrame
+ 2
+ true
+ false
+
+
+ AdviewabilityPoint
+ 3
+ true
+ false
+
+
+ AdviewabilityAlpha
+ 4
+ true
+ false
+
+
+ AdviewabilityShown
+ 5
+ true
+ false
+
+
+ AdviewabilityCoverRate
+ 6
+ true
+ false
+
+
+ AdviewabilityShowFrame
+ 7
+ true
+ false
+
+
+ AdviewabilityForground
+ 8
+ true
+ false
+
+
+ AdviewabilityResult
+ vx
+ true
+ false
+
+
+ Adviewability
+ isview
+ true
+ false
+
+
+ AdMeasurability
+ ism
+ true
+ false
+
+
+ AdviewabilityConfigArea
+ vcr
+ true
+ false
+
+
+ AdviewabilityConfigThreshold
+ vtime
+ true
+ false
+
+
+ AdviewabilityVideoDuration
+ vb
+ true
+ false
+
+
+ AdviewabilityVideoProgress
+ vc
+ true
+ false
+
+
+ AdviewabilityVideoPlayType
+ vpt
+ true
+ false
+
+
+ AdviewabilityVideoProgressPoint
+ vj
+ true
+ false
+
+
+
+ &
+
+ =
+
+ true
+
+
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java
index f56cde0a7f77a81fa07cbef1355963b013ba1758..eb19ae6ae9e095579f65c5df4780247b8feb0752 100755
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java
@@ -55,7 +55,7 @@ public class Constant {
public static final String DIVIDE_MULT = "X";
public static final String TRACKING_SDKVS = "SDKVS";
- public static final String TRACKING_SDKVS_VALUE = "V2.1.0"; //SDK版本号
+ public static final String TRACKING_SDKVS_VALUE = "V2.1.1"; //SDK版本号
/**
* 新版常量 Begin
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java
index c1e5a82cc18a04130a001904944b5ec55e2b6efe..e7bb7a626a57b3064cd0fe2e3c7726346bd027a7 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java
@@ -261,7 +261,7 @@ public class Countly {
public void onVideoExpose(String adURL, View videoView, int videoPlayType) {
- triggerEvent(EVENT_VIEWABILITY_VIDEOEXPOSE, adURL, videoView, videoPlayType);
+ triggerVideoEvent(EVENT_VIEWABILITY_VIDEOEXPOSE, adURL, videoView, videoPlayType);
}
/**
@@ -329,6 +329,11 @@ public class Countly {
private void triggerEvent(String eventName, String adURL, View adView,int type) {
triggerEvent(eventName, adURL, adView, 0, type);
+
+ }
+
+ private void triggerVideoEvent(String eventName, String adURL, View adView,int videoPlaytype) {
+ triggerEvent(eventName, adURL, adView, videoPlaytype, 0);
}
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java
index d9330892e0b6fa6e14d27c262f2b67e19d5c9f4b..65da8584ae377b0878fc45680797771a4fe1345e 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java
@@ -126,7 +126,8 @@ public class RecordEventMessage {
builder.append("");
} else if (argumentKey.equals(Constant.REDIRECTURL)) {
//将标识重定向的地址截取出来:链接argumentValue之后所有的内容
- String regex = separator + argumentValue + ".*";
+ //优化监测链接里面可能出现重定向字符导致参数重复拼接的问题
+ String regex = separator + argumentValue + company.equalizer +".*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(originURL);
if (matcher.find()) redirectUrlValue = matcher.group(0);
@@ -189,6 +190,7 @@ public class RecordEventMessage {
//redirectURL
builder.append(redirectUrlValue);
+
} catch (Exception e) {
Logger.e(e.getMessage());
}
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java
index 36ef24c1eae9c8e3c0d7e733d68c0c1605f6b5e1..da88aae6d7ae6dcd7c59fbc3540c72d4ce3e55d7 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java
@@ -58,7 +58,7 @@ public class SendMessageThread extends Thread {
return;
try {
String eventData = (String) iterator.next();
-// System.out.println("upload监测链接:" + eventData);
+// Logger.i("upload监测链接:" + eventData);
if (!TextUtils.isEmpty(eventData)) {
long eventExpireTime = SharedPreferencedUtil.getLong(context, spName, eventData);
if (eventExpireTime > System.currentTimeMillis()) {
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java
index d4ecaf630a8c12ded5cc248b3bed92f7e64cc22f..485c29c4f38317fdc9ab54bf36706cd84b34b610 100755
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java
@@ -469,11 +469,16 @@ public class DeviceInfoUtil {
if (wm != null) {
WifiInfo wifiInfo = wm.getConnectionInfo();
if (wifiInfo != null) {
- return wifiInfo.getMacAddress();
+ if(wifiInfo.getMacAddress() != null){
+ return wifiInfo.getMacAddress();
+ }else {
+ return "";
+ }
}
}
} catch (Throwable e) {
e.printStackTrace();
+ return "";
}
return "";
}
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/LocationCollector.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/LocationCollector.java
index 212f251f98418cd1c0045ad89df59daa63e821d2..b937567004c3eb9e74a61716f9807dd195a032b5 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/LocationCollector.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/LocationCollector.java
@@ -111,6 +111,11 @@ public class LocationCollector {
//long start = System.currentTimeMillis();
//获取所有可用的位置提供器
List providers = locationManager.getProviders(true);
+ //判断位置提供器是否为空
+ if(providers == null){
+ Logger.w("no available Location Provider!");
+ return;
+ }
String locationProvider = null;
Location location = null;
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/AbilityWorker.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/AbilityWorker.java
index a3fbd3b54194c08c221438394ab25a1d4c1acc5a..17481f20a90424279d63954ca00c12b29a2aa943 100755
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/AbilityWorker.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/AbilityWorker.java
@@ -56,7 +56,7 @@ public class AbilityWorker implements AbilityCallback {
activeWorkflow();
- loadAndUploadCachedWorks();
+// loadAndUploadCachedWorks();
}
@@ -185,7 +185,7 @@ public class AbilityWorker implements AbilityCallback {
@Override
public void onFinished(String taskID) {
//T每次成功上报数据后,都删除CACHE内impressionID对应的Data
- mCacheManager.removeObject(taskID);
+// mCacheManager.removeObject(taskID);
}
@@ -247,10 +247,10 @@ public class AbilityWorker implements AbilityCallback {
*/
private void cacheWorks() {
try {
- for (String explorerID : explorers.keySet()) {
- ViewAbilityExplorer explorer = explorers.get(explorerID);
- mCacheManager.setObject(explorerID, explorer);
- }
+// for (String explorerID : explorers.keySet()) {
+// ViewAbilityExplorer explorer = explorers.get(explorerID);
+// mCacheManager.setObject(explorerID, explorer);
+// }
cacheIndex = 0;
} catch (Exception e) {
e.printStackTrace();
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/ViewFrameSlice.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/ViewFrameSlice.java
index c9e1ed59d8fe457edfe16ad6a350c603c5b206e0..e0d5d0ecaea42b3c60924cccd93579889fe2f13c 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/ViewFrameSlice.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/viewability/origin/sniffer/ViewFrameSlice.java
@@ -475,6 +475,7 @@ public class ViewFrameSlice implements Serializable {
return currentVisible && checkVisibled(contentView);
}
+
/**
* 判断当前view是否是透明或隐藏
*
@@ -485,19 +486,51 @@ public class ViewFrameSlice implements Serializable {
try {
// visible&hidden
if (!(contentView.getVisibility() == View.VISIBLE)) {
+// int id = contentView.getBackground().getAlpha();
return false;
}
+ //判断view是否包含子view
+ if (contentView instanceof ViewGroup){
+ ViewGroup viewGroup = (ViewGroup)contentView;
+ //未设置背景色
+ if(viewGroup.getBackground() == null || viewGroup.getChildCount() < 1){
+ return false;
+ }
+ }
// transparent
if (contentView.getAlpha() <= 0.1f) {// require min api 11
return false;
}
+
} catch (Throwable e) {
e.printStackTrace();
}
-
return true;
}
+// /**
+// * 判断当前view是否是透明或隐藏
+// *
+// * @param contentView
+// * @return
+// */
+// private boolean checkVisibled(View contentView) {
+// try {
+// // visible&hidden
+// if (!(contentView.getVisibility() == View.VISIBLE)) {
+// return false;
+// }
+// // transparent
+// if (contentView.getAlpha() <= 0.1f) {// require min api 11
+// return false;
+// }
+// } catch (Throwable e) {
+// e.printStackTrace();
+// }
+//
+// return true;
+// }
+
/**
diff --git a/OutputRelease/mmachina_sdk.jar b/OutputRelease/mmachina_sdk.jar
index 91c62e9d951244c7e2ccb83d4db9ae17e73aec3b..bba29a99433185511aa41dbc17f56ca57949103e 100644
Binary files a/OutputRelease/mmachina_sdk.jar and b/OutputRelease/mmachina_sdk.jar differ