Browse Source

Merge branch 'feature_gufengshou_20240401_pid_v6' into test

gufengshou1 1 year ago
parent
commit
0c572fee7e

+ 4 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/container/PidLambdaContainer.java

@@ -126,6 +126,10 @@ public class PidLambdaContainer {
                         continue;
                     }
                     latestRealCPA=realCost/conversion;
+                    if(latestRealCPA.equals(cacheItem.latestRealCpa)){
+                        temp.put(creativeId,cacheItem);
+                        continue;
+                    }
                     Double lambdaNew =cacheItem.calculate(kp,ki,kd,cpa,latestRealCPA);
                     if(lambdaNew<minLambda){
                         lambdaNew=minLambda;

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

@@ -155,9 +155,12 @@ public class RankServiceImpl implements RankService {
                 lambda=PidLambdaContainer.getPidLambda(item.getAdId());
                 if(lambda<0){
                     item.setCpa(dto.getCpa());
-                    item.setPidLambda(0.8);
+                    item.setPidLambda(0.6);
                 }else {
-                    item.setCpa(PidLambdaContainer.getPidLambda(item.getAdId()));
+                    if(dto.getCpa()>1&&lambda<=1){
+                        lambda=2d;
+                    }
+                    item.setCpa(lambda);
                     item.setPidLambda(1d);
                 }
 
@@ -178,9 +181,12 @@ public class RankServiceImpl implements RankService {
                 lambda=PidLambdaContainer.getPidLambda(item.getAdId());
                 if(lambda<0){
                     item.setCpa(dto.getCpa());
-                    item.setPidLambda(0.8);
+                    item.setPidLambda(0.6);
                 }else {
-                    item.setCpa(PidLambdaContainer.getPidLambda(item.getAdId()));
+                    if(dto.getCpa()>1&&lambda<=1){
+                        lambda=2d;
+                    }
+                    item.setCpa(lambda);
                     item.setPidLambda(1d);
                 }
 //                item.setCpa(dto.getCpa());
@@ -214,6 +220,7 @@ public class RankServiceImpl implements RankService {
             realECpm=cpmMin/1000d;
         }
         result.setEcpm2(realECpm);
+        AdPlatformBidCreativeDTO dto=groupMap.get(topItem.getAdId()).get(0);
         JSONObject object=new JSONObject();
         object.put("mid",request.getMid());
         object.put("adid",result.getCreativeId());
@@ -226,7 +233,8 @@ public class RankServiceImpl implements RankService {
         //临时加入供pid v2使用
         object.put("realECpm",realECpm);
         object.put("creativeId",result.getCreativeId());
-        object.put("cpa",topItem.getCpa());
+        //CPA还原
+        object.put("cpa",dto.getCpa());
         object.put("dataTime",currentTime.format(timeFormatter));
         log.info("svc=adBidRank {}", JSONObject.toJSONString(object));
         object.remove("lrsamples");