소스 검색

Merge branch 'ljd/feature-new-sku-20260309' of algorithm/ad-engine into master

liujiandong 2 주 전
부모
커밋
3b12e49070
13개의 변경된 파일94개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 1
      ad-engine-commons/pom.xml
  2. 14 0
      ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/dto/AdPlatformCreativeDTO.java
  3. 1 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/FeaturePrinterStrategy.java
  4. 27 2
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBasic.java
  5. 1 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy679.java
  6. 1 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy680.java
  7. 8 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy683.java
  8. 8 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy688.java
  9. 8 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy833.java
  10. 8 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy834.java
  11. 8 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy840.java
  12. 8 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy843.java
  13. 1 0
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyByWeight.java

+ 1 - 1
ad-engine-commons/pom.xml

@@ -26,7 +26,7 @@
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>
             <artifactId>recommend-feature-client</artifactId>
-            <version>1.1.33</version>
+            <version>1.1.34</version>
         </dependency>
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>

+ 14 - 0
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/dto/AdPlatformCreativeDTO.java

@@ -58,4 +58,18 @@ public class AdPlatformCreativeDTO {
     private String categoryName;
 
     private String materialMd5;
+
+    private Long adProfessionId;
+
+    private String adProfessionName;
+
+    private Long adCategoryId;
+
+    private String adCategoryName;
+
+    private Long adSkuId;
+
+    private String adSkuCode;
+
+    private String adSkuName;
 }

+ 1 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/FeaturePrinterStrategy.java

@@ -47,6 +47,7 @@ public class FeaturePrinterStrategy extends RankStrategyBasic {
             adRankItem.getExt().put("isApi", "1");
         }
         adRankItem.getExt().put("recallsources", dto.getRecallSources());
+        fillAdRankItemExt(adRankItem, dto);
         putMetaFeature(adRankItem, feature, reqFeature, sceneFeatureMap, request);
         return Collections.singletonList(adRankItem);
     }

+ 27 - 2
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBasic.java

@@ -431,7 +431,6 @@ public abstract class RankStrategyBasic implements RankStrategy {
         }
     }
 
-
     protected boolean getIsGuaranteedFlow(ScoreParam scoreParam) {
         // 817实验不要保量
         if (scoreParam.getEngineInfo() != null && "817".equals(scoreParam.getEngineInfo().get("model"))) {
@@ -902,7 +901,9 @@ public abstract class RankStrategyBasic implements RankStrategy {
         adRankItem.setCampaignId(dto.getCampaignId());
         adRankItem.setCpm(ObjUtil.nullOrDefault(dto.getCpm(), 90).doubleValue());
         adRankItem.setSkuId(dto.getSkuId());
+        adRankItem.setProfession(dto.getProfession());
         adRankItem.getExt().put("recallsources", dto.getRecallSources());
+        fillAdRankItemExt(adRankItem, dto);
         adRankItem.setRandom(new Random().nextInt(1000));
         if (CollectionUtils.isNotEmpty(noApiAdVerIds)) {
             if (noApiAdVerIds.contains(dto.getAdVerId())) {
@@ -915,6 +916,23 @@ public abstract class RankStrategyBasic implements RankStrategy {
         return adRankItem;
     }
 
+    protected void fillAdRankItemExt(AdRankItem adRankItem, AdPlatformCreativeDTO dto) {
+        adRankItem.setAdProfessionName(dto.getAdProfessionName());
+        adRankItem.setAdCategoryName(dto.getAdCategoryName());
+        adRankItem.setAdCategoryId(dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : null);
+        adRankItem.setAdSkuId(dto.getAdSkuId());
+        adRankItem.setAdSkuCode(dto.getAdSkuCode());
+        adRankItem.setAdSkuName(dto.getAdSkuName());
+        adRankItem.getExt().put("categoryName", StringUtils.defaultString(dto.getCategoryName()));
+        adRankItem.getExt().put("adProfessionId", dto.getAdProfessionId() != null ? String.valueOf(dto.getAdProfessionId()) : "");
+        adRankItem.getExt().put("adProfessionName", StringUtils.defaultString(dto.getAdProfessionName()));
+        adRankItem.getExt().put("adCategoryName", StringUtils.defaultString(dto.getAdCategoryName()));
+        adRankItem.getExt().put("adCategoryId", dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : "");
+        adRankItem.getExt().put("adSkuId", dto.getAdSkuId() != null ? String.valueOf(dto.getAdSkuId()) : "");
+        adRankItem.getExt().put("adSkuCode", StringUtils.defaultString(dto.getAdSkuCode()));
+        adRankItem.getExt().put("adSkuName", StringUtils.defaultString(dto.getAdSkuName()));
+    }
+
     protected void putMetaFeature(AdRankItem adRankItem, Feature feature, Map<String, String> reqFeature,
                                   Map<String, String> sceneFeatureMap, RankRecommendRequestParam request) {
         if (feature == null) {
@@ -974,6 +992,13 @@ public abstract class RankStrategyBasic implements RankStrategy {
             reqFeature.put("landingPageType", String.valueOf(adPlatformCreativeDTO.getLandingPageType()));
             reqFeature.put("category_name", adPlatformCreativeDTO.getCategoryName());
             reqFeature.put("material_md5", adPlatformCreativeDTO.getMaterialMd5());
+            reqFeature.put("ad_profession_id", adPlatformCreativeDTO.getAdProfessionId() != null ? String.valueOf(adPlatformCreativeDTO.getAdProfessionId()) : "");
+            reqFeature.put("ad_profession_name", adPlatformCreativeDTO.getAdProfessionName() != null ? adPlatformCreativeDTO.getAdProfessionName() : "");
+            reqFeature.put("ad_category_name", adPlatformCreativeDTO.getAdCategoryName());
+            reqFeature.put("ad_category_id", adPlatformCreativeDTO.getAdCategoryId() != null ? String.valueOf(adPlatformCreativeDTO.getAdCategoryId()) : "");
+            reqFeature.put("ad_sku_id", adPlatformCreativeDTO.getAdSkuId() != null ? String.valueOf(adPlatformCreativeDTO.getAdSkuId()) : "");
+            reqFeature.put("ad_sku_code", adPlatformCreativeDTO.getAdSkuCode() != null ? adPlatformCreativeDTO.getAdSkuCode() : "");
+            reqFeature.put("ad_sku_name", adPlatformCreativeDTO.getAdSkuName() != null ? adPlatformCreativeDTO.getAdSkuName() : "");
         }
         adRankItem.getMetaFeatureMap().put("reqFeature", reqFeature);
         adRankItem.getMetaFeatureMap().put("sceneFeature", sceneFeatureMap);
@@ -1180,4 +1205,4 @@ public abstract class RankStrategyBasic implements RankStrategy {
             return false;
         }
     }
-}
+}

+ 1 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy679.java

@@ -130,6 +130,7 @@ public class RankStrategyBy679 extends RankStrategyBasic {
                         adRankItem.getExt().put("isApi", "1");
                     }
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);

+ 1 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy680.java

@@ -143,6 +143,7 @@ public class RankStrategyBy680 extends RankStrategyBasic {
                     }
 
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);

+ 8 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy683.java

@@ -180,6 +180,7 @@ public class RankStrategyBy683 extends RankStrategyBasic {
                         adRankItem.getExt().put("isApi", "1");
                     }
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);
@@ -205,6 +206,13 @@ public class RankStrategyBy683 extends RankStrategyBasic {
                     cidFeatureMap.put("profession", dto.getProfession() != null ? dto.getProfession() : "");
                     cidFeatureMap.put("category_name", dto.getCategoryName() != null ? dto.getCategoryName() : "");
                     cidFeatureMap.put("material_md5", dto.getMaterialMd5() != null ? dto.getMaterialMd5() : "");
+                    cidFeatureMap.put("ad_profession_id", dto.getAdProfessionId() != null ? String.valueOf(dto.getAdProfessionId()) : "");
+                    cidFeatureMap.put("ad_profession_name", dto.getAdProfessionName() != null ? dto.getAdProfessionName() : "");
+                    cidFeatureMap.put("ad_category_name", dto.getAdCategoryName() != null ? dto.getAdCategoryName() : "");
+                    cidFeatureMap.put("ad_category_id", dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : "");
+                    cidFeatureMap.put("ad_sku_id", dto.getAdSkuId() != null ? String.valueOf(dto.getAdSkuId()) : "");
+                    cidFeatureMap.put("ad_sku_code", dto.getAdSkuCode() != null ? dto.getAdSkuCode() : "");
+                    cidFeatureMap.put("ad_sku_name", dto.getAdSkuName() != null ? dto.getAdSkuName() : "");
                     //DNN模型没训练过的cid才不传入广告相关的稀疏特征
                     if (CollectionUtils.isNotEmpty(DnnCidDataHelper.getCidSetV2()) && !DnnCidDataHelper.getCidSetV2().contains(adRankItem.getAdId())) {
                         cidFeatureMap.put("cid", "");

+ 8 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy688.java

@@ -187,6 +187,7 @@ public class RankStrategyBy688 extends RankStrategyBasic {
                         adRankItem.getExt().put("isApi", "1");
                     }
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);
@@ -212,6 +213,13 @@ public class RankStrategyBy688 extends RankStrategyBasic {
                     cidFeatureMap.put("profession", dto.getProfession() != null ? dto.getProfession() : "");
                     cidFeatureMap.put("category_name", dto.getCategoryName() != null ? dto.getCategoryName() : "");
                     cidFeatureMap.put("material_md5", dto.getMaterialMd5() != null ? dto.getMaterialMd5() : "");
+                    cidFeatureMap.put("ad_profession_id", dto.getAdProfessionId() != null ? String.valueOf(dto.getAdProfessionId()) : "");
+                    cidFeatureMap.put("ad_profession_name", dto.getAdProfessionName() != null ? dto.getAdProfessionName() : "");
+                    cidFeatureMap.put("ad_category_name", dto.getAdCategoryName() != null ? dto.getAdCategoryName() : "");
+                    cidFeatureMap.put("ad_category_id", dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : "");
+                    cidFeatureMap.put("ad_sku_id", dto.getAdSkuId() != null ? String.valueOf(dto.getAdSkuId()) : "");
+                    cidFeatureMap.put("ad_sku_code", dto.getAdSkuCode() != null ? dto.getAdSkuCode() : "");
+                    cidFeatureMap.put("ad_sku_name", dto.getAdSkuName() != null ? dto.getAdSkuName() : "");
                     //DNN模型没训练过的cid才不传入广告相关的稀疏特征
                     if (CollectionUtils.isNotEmpty(DnnCidDataHelper.getCidSet()) && !DnnCidDataHelper.getCidSet().contains(adRankItem.getAdId())) {
                         cidFeatureMap.put("cid", "");

+ 8 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy833.java

@@ -190,6 +190,7 @@ public class RankStrategyBy833 extends RankStrategyBasic {
                         adRankItem.getExt().put("isApi", "1");
                     }
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);
@@ -215,6 +216,13 @@ public class RankStrategyBy833 extends RankStrategyBasic {
                     cidFeatureMap.put("profession", dto.getProfession() != null ? dto.getProfession() : "");
                     cidFeatureMap.put("category_name", dto.getCategoryName() != null ? dto.getCategoryName() : "");
                     cidFeatureMap.put("material_md5", dto.getMaterialMd5() != null ? dto.getMaterialMd5() : "");
+                    cidFeatureMap.put("ad_profession_id", dto.getAdProfessionId() != null ? String.valueOf(dto.getAdProfessionId()) : "");
+                    cidFeatureMap.put("ad_profession_name", dto.getAdProfessionName() != null ? dto.getAdProfessionName() : "");
+                    cidFeatureMap.put("ad_category_name", dto.getAdCategoryName() != null ? dto.getAdCategoryName() : "");
+                    cidFeatureMap.put("ad_category_id", dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : "");
+                    cidFeatureMap.put("ad_sku_id", dto.getAdSkuId() != null ? String.valueOf(dto.getAdSkuId()) : "");
+                    cidFeatureMap.put("ad_sku_code", dto.getAdSkuCode() != null ? dto.getAdSkuCode() : "");
+                    cidFeatureMap.put("ad_sku_name", dto.getAdSkuName() != null ? dto.getAdSkuName() : "");
                     //DNN模型没训练过的cid才不传入广告相关的稀疏特征
                     if (CollectionUtils.isNotEmpty(DnnCidDataHelper.getCidSetV2()) && !DnnCidDataHelper.getCidSetV2().contains(adRankItem.getAdId())) {
                         cidFeatureMap.put("cid", "");

+ 8 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy834.java

@@ -186,6 +186,7 @@ public class RankStrategyBy834 extends RankStrategyBasic {
                         adRankItem.getExt().put("isApi", "1");
                     }
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);
@@ -211,6 +212,13 @@ public class RankStrategyBy834 extends RankStrategyBasic {
                     cidFeatureMap.put("profession", dto.getProfession() != null ? dto.getProfession() : "");
                     cidFeatureMap.put("category_name", dto.getCategoryName() != null ? dto.getCategoryName() : "");
                     cidFeatureMap.put("material_md5", dto.getMaterialMd5() != null ? dto.getMaterialMd5() : "");
+                    cidFeatureMap.put("ad_profession_id", dto.getAdProfessionId() != null ? String.valueOf(dto.getAdProfessionId()) : "");
+                    cidFeatureMap.put("ad_profession_name", dto.getAdProfessionName() != null ? dto.getAdProfessionName() : "");
+                    cidFeatureMap.put("ad_category_name", dto.getAdCategoryName() != null ? dto.getAdCategoryName() : "");
+                    cidFeatureMap.put("ad_category_id", dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : "");
+                    cidFeatureMap.put("ad_sku_id", dto.getAdSkuId() != null ? String.valueOf(dto.getAdSkuId()) : "");
+                    cidFeatureMap.put("ad_sku_code", dto.getAdSkuCode() != null ? dto.getAdSkuCode() : "");
+                    cidFeatureMap.put("ad_sku_name", dto.getAdSkuName() != null ? dto.getAdSkuName() : "");
                     //DNN模型没训练过的cid才不传入广告相关的稀疏特征
                     if (CollectionUtils.isNotEmpty(DnnCidDataHelper.getCidSet()) && !DnnCidDataHelper.getCidSet().contains(adRankItem.getAdId())) {
                         cidFeatureMap.put("cid", "");

+ 8 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy840.java

@@ -190,6 +190,7 @@ public class RankStrategyBy840 extends RankStrategyBasic {
                         adRankItem.getExt().put("isApi", "1");
                     }
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);
@@ -215,6 +216,13 @@ public class RankStrategyBy840 extends RankStrategyBasic {
                     cidFeatureMap.put("profession", dto.getProfession() != null ? dto.getProfession() : "");
                     cidFeatureMap.put("category_name", dto.getCategoryName() != null ? dto.getCategoryName() : "");
                     cidFeatureMap.put("material_md5", dto.getMaterialMd5() != null ? dto.getMaterialMd5() : "");
+                    cidFeatureMap.put("ad_profession_id", dto.getAdProfessionId() != null ? String.valueOf(dto.getAdProfessionId()) : "");
+                    cidFeatureMap.put("ad_profession_name", dto.getAdProfessionName() != null ? dto.getAdProfessionName() : "");
+                    cidFeatureMap.put("ad_category_name", dto.getAdCategoryName() != null ? dto.getAdCategoryName() : "");
+                    cidFeatureMap.put("ad_category_id", dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : "");
+                    cidFeatureMap.put("ad_sku_id", dto.getAdSkuId() != null ? String.valueOf(dto.getAdSkuId()) : "");
+                    cidFeatureMap.put("ad_sku_code", dto.getAdSkuCode() != null ? dto.getAdSkuCode() : "");
+                    cidFeatureMap.put("ad_sku_name", dto.getAdSkuName() != null ? dto.getAdSkuName() : "");
                     //DNN模型没训练过的cid才不传入广告相关的稀疏特征
                     if (CollectionUtils.isNotEmpty(DnnCidDataHelper.getCidSetV2()) && !DnnCidDataHelper.getCidSetV2().contains(adRankItem.getAdId())) {
                         cidFeatureMap.put("cid", "");

+ 8 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy843.java

@@ -190,6 +190,7 @@ public class RankStrategyBy843 extends RankStrategyBasic {
                         adRankItem.getExt().put("isApi", "1");
                     }
                     adRankItem.getExt().put("recallsources", dto.getRecallSources());
+                    fillAdRankItemExt(adRankItem, dto);
                     adRankItem.getExt().put("correctCpaMap", JSONObject.toJSONString(correctCpaMap.get(dto.getAdId())));
                     adRankItem.getExt().put("correctionFactor", correctCpaMap.get(dto.getAdId()).getCorrectionFactor());
                     setGuaranteeWeight(map, dto.getAdVerId(), adRankItem.getExt(), isGuaranteedFlow, reqFeature);
@@ -215,6 +216,13 @@ public class RankStrategyBy843 extends RankStrategyBasic {
                     cidFeatureMap.put("profession", dto.getProfession() != null ? dto.getProfession() : "");
                     cidFeatureMap.put("category_name", dto.getCategoryName() != null ? dto.getCategoryName() : "");
                     cidFeatureMap.put("material_md5", dto.getMaterialMd5() != null ? dto.getMaterialMd5() : "");
+                    cidFeatureMap.put("ad_profession_id", dto.getAdProfessionId() != null ? String.valueOf(dto.getAdProfessionId()) : "");
+                    cidFeatureMap.put("ad_profession_name", dto.getAdProfessionName() != null ? dto.getAdProfessionName() : "");
+                    cidFeatureMap.put("ad_category_name", dto.getAdCategoryName() != null ? dto.getAdCategoryName() : "");
+                    cidFeatureMap.put("ad_category_id", dto.getAdCategoryId() != null ? String.valueOf(dto.getAdCategoryId()) : "");
+                    cidFeatureMap.put("ad_sku_id", dto.getAdSkuId() != null ? String.valueOf(dto.getAdSkuId()) : "");
+                    cidFeatureMap.put("ad_sku_code", dto.getAdSkuCode() != null ? dto.getAdSkuCode() : "");
+                    cidFeatureMap.put("ad_sku_name", dto.getAdSkuName() != null ? dto.getAdSkuName() : "");
                     //DNN模型没训练过的cid才不传入广告相关的稀疏特征
                     if (CollectionUtils.isNotEmpty(DnnCidDataHelper.getCidSetV2()) && !DnnCidDataHelper.getCidSetV2().contains(adRankItem.getAdId())) {
                         cidFeatureMap.put("cid", "");

+ 1 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyByWeight.java

@@ -50,6 +50,7 @@ public class RankStrategyByWeight extends RankStrategyBasic {
                 adRankItem.getExt().put("isApi", "1");
             }
             adRankItem.getExt().put("recallsources", dto.getRecallSources());
+            fillAdRankItemExt(adRankItem, dto);
 
 
             adRankItems.add(adRankItem);