yumeng 1 ヶ月 前
コミット
29f8c74f1d

+ 22 - 13
src/main/java/com/adx/tencent/honor/controller/HonorTrackingController.java

@@ -200,20 +200,29 @@ public class HonorTrackingController {
         if ("ios".equals(resolved.platform())) device.put("os", 1);
         if ("android".equals(resolved.platform())) device.put("os", 2);
         Map<String, Object> uid = new LinkedHashMap<>();
-        String oaid = firstParam(params, "oaid");
-        String oaidMd5 = firstParam(params, "oaid_md5", "oaidMd5", "hash_oaid");
-        if ((oaidMd5 == null || oaidMd5.isBlank()) && oaid != null && !oaid.isBlank()) {
-            oaidMd5 = md5Hex(oaid);
-            params.put("oaidMd5", oaidMd5);
+        if ("android".equals(resolved.platform())) {
+            String oaid = firstParam(params, "oaid");
+            if (oaid != null && !oaid.isBlank()) {
+                putUid(uid, "oaid", oaid);
+            } else {
+                putUid(uid, "oaidMd5", firstParam(params, "oaid_md5", "oaidMd5", "hash_oaid"));
+            }
+        } else {
+            String oaid = firstParam(params, "oaid");
+            String oaidMd5 = firstParam(params, "oaid_md5", "oaidMd5", "hash_oaid");
+            if ((oaidMd5 == null || oaidMd5.isBlank()) && oaid != null && !oaid.isBlank()) {
+                oaidMd5 = md5Hex(oaid);
+                params.put("oaidMd5", oaidMd5);
+            }
+            String dpid = firstParam(params, "dpid", "android_id", "androidId");
+            String dpidMd5 = firstParam(params, "dpid_md5", "dpidMd5", "android_id_md5", "androidIdMd5", "hash_android_id");
+            putUid(uid, "oaid", oaid);
+            putUid(uid, "oaidMd5", oaidMd5);
+            putUid(uid, "dpid", dpid);
+            putUid(uid, "dpidMd5", dpidMd5);
+            String muid = firstParam(params, "muid", "oaid_md5", "oaidMd5", "hash_oaid", "hash_android_id", "dpid_md5", "dpidMd5");
+            putUid(uid, "muid", muid);
         }
-        String dpid = firstParam(params, "dpid", "android_id", "androidId");
-        String dpidMd5 = firstParam(params, "dpid_md5", "dpidMd5", "android_id_md5", "androidIdMd5", "hash_android_id");
-        putUid(uid, "oaid", oaid);
-        putUid(uid, "oaidMd5", oaidMd5);
-        putUid(uid, "dpid", dpid);
-        putUid(uid, "dpidMd5", dpidMd5);
-        String muid = firstParam(params, "muid", "oaid_md5", "oaidMd5", "hash_oaid", "hash_android_id", "dpid_md5", "dpidMd5");
-        putUid(uid, "muid", muid);
         if (!uid.isEmpty()) device.put("uid", uid);
 
         Map<String, Object> bidReq = new LinkedHashMap<>();

+ 11 - 2
src/main/java/com/adx/tencent/httpapi/TrackingController.java

@@ -407,7 +407,7 @@ public class TrackingController {
         device.put("deviceType", 1);
         int os = baiduOsForPlatform(resolved.platform());
         if (os != 0) device.put("os", os);
-        Map<String, Object> uid = baiduUidFromParams(params);
+        Map<String, Object> uid = baiduUidFromParams(params, resolved.platform());
         if (!uid.isEmpty()) device.put("uid", uid);
 
         Map<String, Object> bidReq = new LinkedHashMap<>();
@@ -497,8 +497,17 @@ public class TrackingController {
         return value != null && value.contains(":");
     }
 
-    private Map<String, Object> baiduUidFromParams(Map<String, String> p) {
+    private Map<String, Object> baiduUidFromParams(Map<String, String> p, String platform) {
         Map<String, Object> uid = new LinkedHashMap<>();
+        if ("android".equals(platform)) {
+            String oaid = firstParam(p, "oaid");
+            if (oaid != null && !oaid.isBlank()) {
+                putUid(uid, "oaid", oaid);
+            } else {
+                putUid(uid, "oaidMd5", firstParam(p, "oaid_md5", "oaidMd5", "hash_oaid"));
+            }
+            return uid;
+        }
         putUid(uid, "did", firstParam(p, "did", "imei"));
         putUid(uid, "didMd5", firstParam(p, "did_md5", "didMd5", "imei_md5", "imeiMd5"));
         putUid(uid, "dpid", firstParam(p, "dpid", "android_id", "androidId"));

+ 11 - 2
src/main/java/com/adx/tencent/kuaishou/controller/KuaishouTrackingController.java

@@ -225,7 +225,7 @@ public class KuaishouTrackingController {
         device.put("deviceType", 1);
         int os = baiduOsForPlatform(resolved.platform());
         if (os != 0) device.put("os", os);
-        Map<String, Object> uid = baiduUidFromParams(params);
+        Map<String, Object> uid = baiduUidFromParams(params, resolved.platform());
         if (!uid.isEmpty()) device.put("uid", uid);
 
         Map<String, Object> bidReq = new LinkedHashMap<>();
@@ -271,8 +271,17 @@ public class KuaishouTrackingController {
         return record;
     }
 
-    private Map<String, Object> baiduUidFromParams(Map<String, String> p) {
+    private Map<String, Object> baiduUidFromParams(Map<String, String> p, String platform) {
         Map<String, Object> uid = new LinkedHashMap<>();
+        if ("android".equals(platform)) {
+            String oaid = firstParam(p, "oaid");
+            if (oaid != null && !oaid.isBlank()) {
+                putUid(uid, "oaid", oaid);
+            } else {
+                putUid(uid, "oaidMd5", firstParam(p, "oaidMD5", "oaid_md5", "oaidMd5"));
+            }
+            return uid;
+        }
         putUidWithMd5Fallback(uid, "did", "didMd5",
                 firstParam(p, "imei"),
                 firstParam(p, "imeiMD5", "imei_md5", "imeiMd5"));

+ 11 - 2
src/main/java/com/adx/tencent/vivo/controller/VivoTrackingController.java

@@ -291,7 +291,7 @@ public class VivoTrackingController {
         device.put("deviceType", 1);
         int os = baiduOsForPlatform(resolved.platform());
         if (os != 0) device.put("os", os);
-        Map<String, Object> uid = baiduUidFromParams(params);
+        Map<String, Object> uid = baiduUidFromParams(params, resolved.platform());
         if (!uid.isEmpty()) device.put("uid", uid);
 
         Map<String, Object> bidReq = new LinkedHashMap<>();
@@ -341,8 +341,17 @@ public class VivoTrackingController {
         return record;
     }
 
-    private Map<String, Object> baiduUidFromParams(Map<String, String> p) {
+    private Map<String, Object> baiduUidFromParams(Map<String, String> p, String platform) {
         Map<String, Object> uid = new LinkedHashMap<>();
+        if ("android".equals(platform)) {
+            String oaid = firstParam(p, "oaid");
+            if (oaid != null && !oaid.isBlank()) {
+                putUid(uid, "oaid", oaid);
+            } else {
+                putUid(uid, "oaidMd5", firstParam(p, "oaidMD5", "oaid_md5", "oaidMd5"));
+            }
+            return uid;
+        }
         putUidWithMd5Fallback(uid, "did", "didMd5",
                 firstParam(p, "imei"),
                 firstParam(p, "imeiMD5", "imei_md5", "imeiMd5"));