Skip to content

Commit 172d9c9

Browse files
author
EvgeniiMunin
committed
update impExt.prebid.bidder from filtering
1 parent dba7559 commit 172d9c9

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

extra/modules/greenbids-real-time-data/src/main/java/org/prebid/server/hooks/modules/greenbids/real/time/data/v1/GreenbidsRealTimeDataProcessedAuctionRequestHook.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@
2727
import java.time.ZonedDateTime;
2828
import java.util.ArrayList;
2929
import java.util.Arrays;
30+
import java.util.HashMap;
3031
import java.util.Iterator;
3132
import java.util.List;
33+
import java.util.Map;
3234
import java.util.Objects;
35+
import java.util.Optional;
3336
import java.util.stream.Collectors;
3437
import java.util.stream.StreamSupport;
3538

@@ -107,6 +110,9 @@ public Future<InvocationResult<AuctionRequestPayload>> call(
107110
long duration = (endTime - startTime); // in nanoseconds
108111
System.out.println("Inference time: " + duration / 1000000.0 + " ms");
109112

113+
double threshold = 0.15;
114+
Map<String, Map<String, Boolean>> impsBiddersFilterMap = new HashMap<>();
115+
110116
StreamSupport.stream(results.spliterator(), false)
111117
.filter(onnxItem -> Objects.equals(onnxItem.getKey(), "probabilities"))
112118
.forEach(onnxItem -> {
@@ -119,6 +125,17 @@ public Future<InvocationResult<AuctionRequestPayload>> call(
119125
" tensor.getValue(): " + tensor.getValue() +
120126
"\n probas: " + Arrays.deepToString(probas)
121127
);
128+
129+
// process probas and create map
130+
for (int i = 0; i < probas.length; i++) {
131+
ThrottlingMessage message = throttlingMessages.get(i);
132+
String impId = message.getAdUnitCode();
133+
String bidder = message.getBidder();
134+
boolean isKeptInAuction = probas[i][1] > threshold;
135+
136+
impsBiddersFilterMap.computeIfAbsent(impId, k -> new HashMap<>())
137+
.put(bidder, isKeptInAuction);
138+
}
122139
} catch (OrtException e) {
123140
throw new RuntimeException(e);
124141
}
@@ -197,6 +214,38 @@ private static String[][] convertToArray(List<ThrottlingMessage> messages) {
197214
return result;
198215
}
199216

217+
private Imp updateImp(Imp imp, Map<String, Boolean> bidderFilterMap) {
218+
return imp.toBuilder()
219+
.ext(updateImpExt(imp.getExt(), bidderFilterMap))
220+
.build();
221+
}
222+
223+
private ObjectNode updateImpExt(ObjectNode impExt, Map<String, Boolean> bidderFilterMap) {
224+
225+
ObjectNode bidderNode = Optional.ofNullable(impExt)
226+
.map(ext -> extImpPrebid(ext.get("prebid")))
227+
.map(ExtImpPrebid::getBidder)
228+
.orElse(null);
229+
230+
//final JsonNode extPrebid = ext.path("prebid");
231+
//final JsonNode impExtNode = imp.getExt();
232+
//final JsonNode bidderExtNode = isNotEmptyOrMissedNode(impExtNode) ? impExtNode.get("bidder") : null;
233+
//JsonNode bidderNode = extImpPrebid(impExt.get("prebid")).getBidder();
234+
235+
//final JsonNode extPrebid = ext.path("prebid");
236+
//JsonNode bidderNode = extImpPrebid(ext.get("prebid")).getBidder();
237+
238+
for(Map.Entry<String, Boolean> entry: bidderFilterMap.entrySet()) {
239+
String bidderName = entry.getKey();
240+
Boolean isKeptInAUction = entry.getValue();
241+
242+
if (!isKeptInAUction & bidderNode != null) {
243+
bidderNode.remove(bidderName);
244+
}
245+
}
246+
return bidderNode;
247+
}
248+
200249
@Override
201250
public String code() {
202251
return CODE;

0 commit comments

Comments
 (0)