yaodaoseng 1 tydzień temu
rodzic
commit
fd7aa8fa67

+ 8 - 8
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/v2/PredictStrategyByFissionRateCopy.java

@@ -104,10 +104,10 @@ public class PredictStrategyByFissionRateCopy extends BasicPredict {
             Map<String, Object> rtnMap = new HashMap<>();
 
             // 用户行为特征变量(来自离线特征表 alg_mid_history_behavior_1month)
-            String launchs = null;   // 启动次数分桶(如 "0-5", "5-10" 等)
-            String ror = null;       // 留存率分桶
-            String adLevel = null;   // 广告等级(用户对广告的敏感度分层)
-            String return30day = null;   // 用户回流率分桶
+            String launchs = "-999";   // 启动次数分桶(如 "0-5", "5-10" 等)
+            String ror = "-999";       // 留存率分桶
+            String adLevel = "无转化";   // 广告等级(用户对广告的敏感度分层)
+            String return30day = "r_0_8";   // 用户回流率分桶
 
             // 根据 mid 获取用户近一个月的历史行为特征
             Feature feature = featureService.getMidBehaviorFeature(TABLE_NAME, ctx.getMid());
@@ -117,10 +117,10 @@ public class PredictStrategyByFissionRateCopy extends BasicPredict {
             // 安全地提取特征值(多层 null 检查)
             if (feature != null && feature.getUserFeature() != null && feature.getUserFeature().get(TABLE_NAME) != null) {
                 Map<String, String> algMidHistoryBehavior1month = feature.getUserFeature().get(TABLE_NAME);
-                launchs = algMidHistoryBehavior1month.get("launchs");
-                ror = algMidHistoryBehavior1month.get("ror");
-                adLevel = algMidHistoryBehavior1month.get("ad_level");
-                return30day = algMidHistoryBehavior1month.get("return_30day");
+                launchs = StringUtils.isBlank(algMidHistoryBehavior1month.get("launchs")) ? launchs : algMidHistoryBehavior1month.get("launchs");
+                ror = StringUtils.isBlank(algMidHistoryBehavior1month.get("ror")) ? ror : algMidHistoryBehavior1month.get("ror");
+                adLevel = StringUtils.isBlank(algMidHistoryBehavior1month.get("ad_level")) ? adLevel : algMidHistoryBehavior1month.get("ad_level");
+                return30day = StringUtils.isBlank(algMidHistoryBehavior1month.get("return_30day")) ? return30day : algMidHistoryBehavior1month.get("return_30day");
             }
 
             // 计算最终的广告展示概率阈值