|
@@ -97,173 +97,44 @@ public class RankServiceImpl implements RankService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private AdRankItem rankBy687(RankRecommendRequestParam request) {
|
|
|
- ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
- List<AdRankItem> adRankItems = rankService687.adItemRank(request, scoreParam);
|
|
|
- logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "687");
|
|
|
- return adRankItems.get(0);
|
|
|
- }
|
|
|
-
|
|
|
- private AdRankItem rankBy680(RankRecommendRequestParam request) {
|
|
|
- ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
- List<AdRankItem> adRankItems = rankService680.adItemRank(request, scoreParam);
|
|
|
- logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "680");
|
|
|
- return adRankItems.get(0);
|
|
|
- }
|
|
|
-
|
|
|
- private AdRankItem rankBy683(RankRecommendRequestParam request) {
|
|
|
- ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
- List<AdRankItem> adRankItems = rankService683.adItemRank(request, scoreParam);
|
|
|
- logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "683");
|
|
|
- return adRankItems.get(0);
|
|
|
- }
|
|
|
-
|
|
|
- private AdRankItem rankStrategyXGBAutoUpdateModel688(RankRecommendRequestParam request) {
|
|
|
- ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
- List<AdRankItem> adRankItems = rankStrategyBy688.adItemRank(request, scoreParam);
|
|
|
- logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "688");
|
|
|
- return adRankItems.get(0);
|
|
|
- }
|
|
|
-
|
|
|
- private AdRankItem rankBy679(RankRecommendRequestParam requestParam) {
|
|
|
- ScoreParam scoreParam = RequestConvert.requestConvert(requestParam);
|
|
|
- List<AdRankItem> adRankItems = rankStrategyBy679.adItemRank(requestParam, scoreParam);
|
|
|
- logHubService.scoreLogUpload(scoreParam, requestParam.getAdIdList(), adRankItems, requestParam, "679");
|
|
|
- double score = adRankItems.get(0).getScore();
|
|
|
- if (score > 0) {
|
|
|
- return adRankItems.get(0);
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- public AdRankItem adItemRankOld(RankRecommendRequestParam request) {
|
|
|
- ScoreParam param = RequestConvert.requestConvert(request);
|
|
|
-
|
|
|
- UserAdFeature userAdFeature = featureRemoteService.getUserAdFeature(request.getMid());
|
|
|
- if (userAdFeature == null) {
|
|
|
- userAdFeature = new UserAdFeature();
|
|
|
- }
|
|
|
- Map<Long, List<AdPlatformCreativeDTO>> groupMap = request
|
|
|
- .getAdIdList()
|
|
|
- .stream()
|
|
|
- .collect(Collectors.groupingBy(AdPlatformCreativeDTO::getCreativeId));
|
|
|
- Map<Long, AdRankItem> cache = adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet()));
|
|
|
- List<AdRankItem> rankItems = Collections.emptyList();
|
|
|
- if (!cache.isEmpty()) {
|
|
|
- rankItems = new LinkedList<>(cache.values());
|
|
|
- }
|
|
|
- // 避免recommend-feature出问题
|
|
|
- if (CollectionUtils.isEmpty(rankItems)) {
|
|
|
- rankItems = new LinkedList<>();
|
|
|
- for (Long adId : groupMap.keySet()) {
|
|
|
- AdRankItem item = new AdRankItem();
|
|
|
- item.setAdId(adId);
|
|
|
- item.setItemFeature(new AdItemFeature());
|
|
|
- rankItems.add(item);
|
|
|
- }
|
|
|
- }
|
|
|
- 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;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- if (CollectionUtils.isNotEmpty(request.getAdAbExpArr())) {
|
|
|
- Set<String> abExpCode = request.getAdAbExpArr().stream()
|
|
|
- .map(map -> map.get("abExpCode"))
|
|
|
- .filter(Objects::nonNull)
|
|
|
- .map(Object::toString)
|
|
|
- .collect(Collectors.toSet());
|
|
|
- inCpcPidExp = abExpCode.contains(cpcPidExpCode);
|
|
|
- inCvrAdjustingExp = abExpCode.contains(cvrAdjustingExpCode);
|
|
|
- }
|
|
|
- double lambda = -1d;
|
|
|
- if (inCpcPidExp) {
|
|
|
- for (AdRankItem item : rankItems) {
|
|
|
- try {
|
|
|
- AdPlatformCreativeDTO dto = groupMap.get(item.getAdId()).get(0);
|
|
|
- item.setBid1(dto.getBid1());
|
|
|
- item.setBid2(dto.getBid2());
|
|
|
- lambda = PidLambdaForCpcContainer.getPidLambda(item.getAdId());
|
|
|
- if (lambda < 0) {
|
|
|
- item.setCpa(dto.getCpa());
|
|
|
- item.setPidLambda(1);
|
|
|
- } else {
|
|
|
- if (dto.getCpa() > 1 && lambda <= 1) {
|
|
|
- lambda = 2d;
|
|
|
- }
|
|
|
- item.setCpa(lambda);
|
|
|
- item.setPidLambda(1d);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("rankItems info error itemId={}", item.getAdId());
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- for (AdRankItem item : rankItems) {
|
|
|
- try {
|
|
|
- AdPlatformCreativeDTO dto = groupMap.get(item.getAdId()).get(0);
|
|
|
- item.setBid1(dto.getBid1());
|
|
|
- item.setBid2(dto.getBid2());
|
|
|
- item.setCpa(dto.getCpa());
|
|
|
- item.setPidLambda(1d);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("rankItems info error itemId={}", item.getAdId());
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 兜底方案
|
|
|
- List<AdRankItem> rankResult;
|
|
|
- if (inCvrAdjustingExp) {
|
|
|
- rankResult = rank(param, userAdFeature, rankItems, ScorerUtils.CVR_ADJUSTING);
|
|
|
- } else {
|
|
|
- rankResult = rank(param, userAdFeature, rankItems, ScorerUtils.BASE_CONF);
|
|
|
- }
|
|
|
-
|
|
|
- if (!CollectionUtils.isEmpty(rankResult)) {
|
|
|
- JSONObject object = new JSONObject();
|
|
|
- object.put("mid", request.getMid());
|
|
|
- object.put("adid", rankResult.get(0).getAdId());
|
|
|
- object.put("type", rankResult.get(0).getScore_type());
|
|
|
- object.put("pctr", rankResult.get(0).getCtr());
|
|
|
- object.put("pcvr", rankResult.get(0).getCvr());
|
|
|
- object.put("score", rankResult.get(0).getScore());
|
|
|
- object.put("pidLambda", rankResult.get(0).getPidLambda());
|
|
|
- object.put("lrsamples", rankResult.get(0).getLrSampleString());
|
|
|
- object.put("dataTime", LocalDateTime.now().format(timeFormatter));
|
|
|
- object.put("creativeId", rankResult.get(0).getAdId());
|
|
|
- object.put("videoId", request.getVideoId());
|
|
|
- object.put("pqtId", request.getPqtId());
|
|
|
- log.info("svc=adItemRank {}", JSONObject.toJSONString(object));
|
|
|
- object.remove("lrsamples");
|
|
|
- if (inCpcPidExp) {
|
|
|
- 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));
|
|
|
- }
|
|
|
-
|
|
|
- // 日志上报
|
|
|
- logHubService.scoreLogUpload(param, request.getAdIdList(), rankResult, request, "531");
|
|
|
-
|
|
|
- return rankResult.get(0);
|
|
|
- } else {
|
|
|
- // 空返回值
|
|
|
- return new AdRankItem();
|
|
|
- }
|
|
|
- }
|
|
|
+ // private AdRankItem rankBy687(RankRecommendRequestParam request) {
|
|
|
+ // ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
+ // List<AdRankItem> adRankItems = rankService687.adItemRank(request, scoreParam);
|
|
|
+ // logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "687");
|
|
|
+ // return adRankItems.get(0);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // private AdRankItem rankBy680(RankRecommendRequestParam request) {
|
|
|
+ // ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
+ // List<AdRankItem> adRankItems = rankService680.adItemRank(request, scoreParam);
|
|
|
+ // logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "680");
|
|
|
+ // return adRankItems.get(0);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // private AdRankItem rankBy683(RankRecommendRequestParam request) {
|
|
|
+ // ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
+ // List<AdRankItem> adRankItems = rankService683.adItemRank(request, scoreParam);
|
|
|
+ // logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "683");
|
|
|
+ // return adRankItems.get(0);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // private AdRankItem rankStrategyXGBAutoUpdateModel688(RankRecommendRequestParam request) {
|
|
|
+ // ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
+ // List<AdRankItem> adRankItems = rankStrategyBy688.adItemRank(request, scoreParam);
|
|
|
+ // logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "688");
|
|
|
+ // return adRankItems.get(0);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // private AdRankItem rankBy679(RankRecommendRequestParam requestParam) {
|
|
|
+ // ScoreParam scoreParam = RequestConvert.requestConvert(requestParam);
|
|
|
+ // List<AdRankItem> adRankItems = rankStrategyBy679.adItemRank(requestParam, scoreParam);
|
|
|
+ // logHubService.scoreLogUpload(scoreParam, requestParam.getAdIdList(), adRankItems, requestParam, "679");
|
|
|
+ // double score = adRankItems.get(0).getScore();
|
|
|
+ // if (score > 0) {
|
|
|
+ // return adRankItems.get(0);
|
|
|
+ // }
|
|
|
+ // return null;
|
|
|
+ // }
|
|
|
|
|
|
public AdRankItem adItemRankWithVideoAdThompson(RankRecommendRequestParam request) {
|
|
|
ScoreParam param = RequestConvert.requestConvert(request);
|