Browse Source

Merge branch 'feature_gufengshou_20240125_pid'

gufengshou1 1 year ago
parent
commit
16b47c4ee1

+ 6 - 9
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VlogMergeEcpmScorer.java

@@ -74,17 +74,14 @@ public class VlogMergeEcpmScorer extends BaseLRModelScorer {
             item.setScore_type( isTfType?1:0);
             //todo
             double ecpm;
-//            if(isTfType){
-//                ecpm = cpa * bid1 * bid2 * pcvr * pctr * 1000d;
-//            }else {
-//                ecpm = (cpa+item.getPidLambda()) * bid1 * bid2 * pcvr * pctr * 1000d;
-//            }
-            ecpm = cpa * bid1 * bid2 * pcvr * pctr * 1000d;
-
-//                double ecpm = cpa * bid1 * bid2 * pcvr * pctr;
+            if(isTfType){
+                ecpm = cpa * bid1 * bid2 * pcvr * pctr * 1000d;
+            }else {
+                ecpm = cpa*item.getPidLambda() * bid1 * bid2 * pcvr * pctr * 1000d;
+            }
+//            ecpm = cpa * bid1 * bid2 * pcvr * pctr * 1000d;
             item.setEcpm1(ecpm/1000d);
             item.setScore(ecpm/1000d);
-//            item.setScore(ecpm);
         } catch (Exception e) {
             LOGGER.error("merge Ecpm Score: {} error", "");
             item.setCtr(0.0);

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

@@ -101,8 +101,20 @@ public class PidLambdaContainer {
                 try {
                     String[] cols=line.split(",");
                     Long creativeId=Long.parseLong(cols[0]);
-                    Double lambdaNew=lambdaCache.getOrDefault(creativeId,0d)+
-                            kp*Double.parseDouble(cols[1])+ki*Double.parseDouble(cols[2])+kd*Double.parseDouble(cols[3]);
+//                    Double lambdaNew=lambdaCache.getOrDefault(creativeId,0d)+
+//                            kp*Double.parseDouble(cols[1])+ki*Double.parseDouble(cols[2])+kd*Double.parseDouble(cols[3]);
+//                  Ecpm = CPA * pctr * pcvr * bid * lambad
+//                  Lambad = real_ctcvr / p_ctcvr (按上一个小时统计这两个值)
+                    Double pctr=Double.parseDouble(cols[1]);
+                    Double pcvr=Double.parseDouble(cols[2]);
+                    Double ctr=Double.parseDouble(cols[3]);
+                    Double cvr=Double.parseDouble(cols[4]);
+                    Double lambdaNew=null;
+                    if((pctr*pcvr)==0d||ctr*cvr==0d){
+                        lambdaNew=1d;
+                    }else {
+                        lambdaNew=cvr*ctr/(pctr*pctr);
+                    }
                     lambdaCache.put(creativeId,lambdaNew);
                 }catch (Exception e){
                     e.printStackTrace();
@@ -150,6 +162,6 @@ public class PidLambdaContainer {
     }
 
     public static Double getPidLambda(Long creativeId){
-        return lambdaCache.getOrDefault(creativeId,0d);
+        return lambdaCache.getOrDefault(creativeId,1d);
     }
 }

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

@@ -95,7 +95,8 @@ public class RankServiceImpl implements RankService {
             object.put("lrsamples",rankResult.get(0).getLrSampleString());
             object.put("dataTime",currentTime.format(timeFormatter));
             log.info("svc=adItemRank {}", JSONObject.toJSONString(object));
-            log.info("svc=pid_log obj={}", JSONObject.toJSONString(object.remove("lrsamples")));
+            object.remove("lrsamples");
+            log.info("svc=pid_log obj={}", JSONObject.toJSONString(object));
             return rankResult.get(0);
         }else {
             //空返回值
@@ -193,7 +194,8 @@ public class RankServiceImpl implements RankService {
         object.put("lrsamples",topItem.getLrSampleString());
         object.put("dataTime",currentTime.format(timeFormatter));
         log.info("svc=adBidRank {}", JSONObject.toJSONString(object));
-        log.info("svc=pid_log obj={}", JSONObject.toJSONString(object.remove("lrsamples")));
+        object.remove("lrsamples");
+        log.info("svc=pid_log obj={}", JSONObject.toJSONString(object));
         return result;
     }