36
36
import java .util .List ;
37
37
import java .util .Map ;
38
38
import java .util .Objects ;
39
- import java .util .Optional ;
40
39
import java .util .stream .Collectors ;
41
40
import java .util .stream .StreamSupport ;
42
41
@@ -114,7 +113,8 @@ public Future<InvocationResult<AuctionRequestPayload>> call(
114
113
long duration = (endTime - startTime ); // in nanoseconds
115
114
System .out .println ("Inference time: " + duration / 1000000.0 + " ms" );
116
115
117
- double threshold = 0.15 ;
116
+ //double threshold = 0.5;
117
+ List <Double > threshold = Arrays .asList (0.1 , 0.9 , 0.2 );
118
118
Map <String , Map <String , Boolean >> impsBiddersFilterMap = new HashMap <>();
119
119
120
120
StreamSupport .stream (results .spliterator (), false )
@@ -135,7 +135,7 @@ public Future<InvocationResult<AuctionRequestPayload>> call(
135
135
ThrottlingMessage message = throttlingMessages .get (i );
136
136
String impId = message .getAdUnitCode ();
137
137
String bidder = message .getBidder ();
138
- boolean isKeptInAuction = probas [i ][1 ] > threshold ;
138
+ boolean isKeptInAuction = probas [i ][1 ] > threshold . get ( i ) ;
139
139
140
140
impsBiddersFilterMap .computeIfAbsent (impId , k -> new HashMap <>())
141
141
.put (bidder , isKeptInAuction );
@@ -149,6 +149,7 @@ public Future<InvocationResult<AuctionRequestPayload>> call(
149
149
List <Imp > impsWithFilteredBidders = updateImps (bidRequest , impsBiddersFilterMap );
150
150
BidRequest updatedBidRequest = bidRequest .toBuilder ().imp (impsWithFilteredBidders ).build ();
151
151
152
+
152
153
// update invocation result
153
154
InvocationResult <AuctionRequestPayload > invocationResult = InvocationResultImpl .<AuctionRequestPayload >builder ()
154
155
.status (InvocationStatus .success )
@@ -159,6 +160,14 @@ public Future<InvocationResult<AuctionRequestPayload>> call(
159
160
.payloadUpdate (payload -> AuctionRequestPayloadImpl .of (updatedBidRequest ))
160
161
.build ();
161
162
163
+ System .out .println (
164
+ "GreenbidsRealTimeDataProcessedAuctionRequestHook/call" + "\n " +
165
+ "impsBiddersFilterMap: " + impsBiddersFilterMap + "\n " +
166
+ "impsWithFilteredBidders: " + impsWithFilteredBidders + "\n " +
167
+ "updatedBidRequest: " + updatedBidRequest + "\n " +
168
+ "invocationResult: " + invocationResult
169
+ );
170
+
162
171
return Future .succeededFuture (invocationResult );
163
172
}
164
173
@@ -175,29 +184,23 @@ private Imp updateImp(Imp imp, Map<String, Boolean> bidderFilterMap) {
175
184
}
176
185
177
186
private ObjectNode updateImpExt (ObjectNode impExt , Map <String , Boolean > bidderFilterMap ) {
178
-
179
- ObjectNode bidderNode = Optional .ofNullable (impExt )
180
- .map (ext -> extImpPrebid (ext .get ("prebid" )))
181
- .map (ExtImpPrebid ::getBidder )
182
- .orElse (null );
183
-
184
- //final JsonNode extPrebid = ext.path("prebid");
185
- //final JsonNode impExtNode = imp.getExt();
186
- //final JsonNode bidderExtNode = isNotEmptyOrMissedNode(impExtNode) ? impExtNode.get("bidder") : null;
187
- //JsonNode bidderNode = extImpPrebid(impExt.get("prebid")).getBidder();
188
-
189
- //final JsonNode extPrebid = ext.path("prebid");
190
- //JsonNode bidderNode = extImpPrebid(ext.get("prebid")).getBidder();
191
-
192
- for (Map .Entry <String , Boolean > entry : bidderFilterMap .entrySet ()) {
193
- String bidderName = entry .getKey ();
194
- Boolean isKeptInAuction = entry .getValue ();
195
-
196
- if (!isKeptInAuction & bidderNode != null ) {
197
- bidderNode .remove (bidderName );
187
+ ObjectNode updatedExt = impExt .deepCopy ();
188
+ ObjectNode prebidNode = (ObjectNode ) updatedExt .get ("prebid" );
189
+ if (prebidNode != null ) {
190
+ ObjectNode bidderNode = (ObjectNode ) prebidNode .get ("bidder" );
191
+ if (bidderNode != null ) {
192
+ for (Map .Entry <String , Boolean > entry : bidderFilterMap .entrySet ()) {
193
+ String bidderName = entry .getKey ();
194
+ Boolean isKeptInAuction = entry .getValue ();
195
+
196
+ if (!isKeptInAuction ) {
197
+ bidderNode .remove (bidderName );
198
+ }
199
+ }
198
200
}
199
201
}
200
- return bidderNode ;
202
+
203
+ return updatedExt ;
201
204
}
202
205
203
206
private List <ThrottlingMessage > extractThrottlingMessages (
0 commit comments