Pārlūkot izejas kodu

Merge branch 'feature_gufengshou_20240513_pid_v7' into test

zhaohaipeng 1 gadu atpakaļ
vecāks
revīzija
c3873d3e6c

+ 8 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/impl/RankServiceImpl.java

@@ -49,6 +49,8 @@ public class RankServiceImpl implements RankService {
     Double cpmMin=30d;
     @Value("${ad.pid.cpc.exp:30}")
     private String cpcPidExpCode;
+    @Value("${ad.cvr.adjusting.exp:652}")
+    private String cvrAdjustingExpCode;
 
     public AdRankItem adItemRank(RankRecommendRequestParam request){
         ScoreParam param= RequestConvert.requestConvert(request);
@@ -85,11 +87,15 @@ public class RankServiceImpl implements RankService {
             }
         }
         boolean inCpcPidExp=false;
+        boolean inCvrAdjustingExp=false;
         if (request.getAdAbExpArr() != null && request.getAdAbExpArr().size() != 0) {
             for (Map<String, Object> map : request.getAdAbExpArr() ) {
                 if (map.getOrDefault("abExpCode", "").equals(cpcPidExpCode)) {
                     inCpcPidExp = true;
                 }
+                if (map.getOrDefault("abExpCode", "").equals(cvrAdjustingExpCode)) {
+                    inCvrAdjustingExp = true;
+                }
             }
         }
         double lambda=-1d;
@@ -132,7 +138,7 @@ public class RankServiceImpl implements RankService {
 
         // 兜底方案
         List<AdRankItem> rankResult;
-        if (inCpcPidExp) {
+        if (inCvrAdjustingExp) {
             rankResult = rank(param, userAdFeature, rankItems, ScorerUtils.CVR_ADJUSTING);
         } else {
             rankResult = rank(param, userAdFeature, rankItems, ScorerUtils.BASE_CONF);
@@ -156,6 +162,7 @@ public class RankServiceImpl implements RankService {
                 AdPlatformCreativeDTO dto=groupMap.get(rankResult.get(0).getAdId()).get(0);
                 object.put("cpa",dto.getCpa()*dto.getBid1());
                 object.put("oCpa",dto.getCpa());
+                object.put("realECpm",rankResult.get(0).getEcpm1());
                 log.info("svc=cpc_pid obj={}", JSONObject.toJSONString(object));
             }else {
                 log.info("svc=pid_log obj={}", JSONObject.toJSONString(object));