|
|
@@ -42,10 +42,11 @@ public class AdxClient {
|
|
|
* 向百度 ADX 发起竞价请求,返回归一化后的 BidResponse。
|
|
|
* 如果百度返回空响应体(无广告填充),返回 null。
|
|
|
*/
|
|
|
- public NormalizedBidResponse requestBid(String traceId, Object body) throws IOException, InterruptedException {
|
|
|
+ public NormalizedBidResponse requestBid(String media, String traceId, Object body) throws IOException, InterruptedException {
|
|
|
if (endpoint == null || endpoint.isBlank()) {
|
|
|
throw new IllegalStateException("Baidu ADX endpoint is required");
|
|
|
}
|
|
|
+ String mediaLabel = mediaLabel(media);
|
|
|
|
|
|
byte[] payload = objectMapper.writeValueAsBytes(body);
|
|
|
HttpRequest request = HttpRequest.newBuilder()
|
|
|
@@ -63,7 +64,7 @@ public class AdxClient {
|
|
|
// 百度 ADX 无广告填充时可能返回空 body
|
|
|
byte[] respBody = response.body();
|
|
|
if (respBody == null || respBody.length == 0) {
|
|
|
- log.info("[百度ADX][原始响应] traceId={} status={} body=<empty>", traceId, response.statusCode());
|
|
|
+ log.info("[百度ADX][{}][原始响应] traceId={} status={} body=<empty>", mediaLabel, traceId, response.statusCode());
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
@@ -72,15 +73,23 @@ public class AdxClient {
|
|
|
BidResponse bidResponse = objectMapper.readValue(respBody, BidResponse.class);
|
|
|
NormalizedBidResponse normalized = NormalizedBidResponse.from(bidResponse);
|
|
|
if (normalized == null || normalized.getBid() == null) {
|
|
|
- log.info("[百度ADX][原始响应] traceId={} status={} body={}", traceId, response.statusCode(), rawBody);
|
|
|
+ log.info("[百度ADX][{}][原始响应] traceId={} status={} body={}", mediaLabel, traceId, response.statusCode(), rawBody);
|
|
|
}
|
|
|
return normalized;
|
|
|
} catch (IOException e) {
|
|
|
- log.warn("[百度ADX][原始响应] traceId={} status={} body={}", traceId, response.statusCode(), rawBody);
|
|
|
+ log.warn("[百度ADX][{}][原始响应] traceId={} status={} body={}", mediaLabel, traceId, response.statusCode(), rawBody);
|
|
|
throw e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private static String mediaLabel(String media) {
|
|
|
+ return switch (media) {
|
|
|
+ case "honor" -> "荣耀";
|
|
|
+ case "tencent" -> "腾讯";
|
|
|
+ default -> media == null || media.isBlank() ? "未知" : media;
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 曝光上报:将 ${AUCTION_PRICE} 宏替换为编码后的价格,依次 GET 所有 showURLs。
|
|
|
*/
|