@@ -81,9 +81,76 @@ func (rs *requestSplitter) cleanOpenRTBRequests(ctx context.Context,
81
81
return
82
82
}
83
83
84
- var allBidderRequests []BidderRequest
84
+ allBidderRequests := make ( []BidderRequest , 0 , len ( impsByBidder ))
85
85
var allBidderRequestErrs []error
86
- allBidderRequests , allBidderRequestErrs = getAuctionBidderRequests (auctionReq , requestExt , rs .bidderToSyncerKey , impsByBidder , requestAliases , rs .hostSChainNode )
86
+ explicitBuyerUIDs , err := extractBuyerUIDs (req .BidRequest .User )
87
+ if err != nil {
88
+ errs = []error {err }
89
+ return
90
+ }
91
+
92
+ bidderParamsInReqExt , err := ExtractReqExtBidderParamsMap (req .BidRequest )
93
+ if err != nil {
94
+ errs = []error {err }
95
+ return
96
+ }
97
+
98
+ sChainWriter , err := schain .NewSChainWriter (requestExt , rs .hostSChainNode )
99
+ if err != nil {
100
+ errs = []error {err }
101
+ return
102
+ }
103
+
104
+ lowerCaseExplicitBuyerUIDs := make (map [string ]string )
105
+ for bidder , uid := range explicitBuyerUIDs {
106
+ lowerKey := strings .ToLower (bidder )
107
+ lowerCaseExplicitBuyerUIDs [lowerKey ] = uid
108
+ }
109
+
110
+ for bidder , imps := range impsByBidder {
111
+ coreBidder , isRequestAlias := resolveBidder (bidder , requestAliases )
112
+
113
+ reqCopy := * req .BidRequest
114
+ reqCopy .Imp = imps
115
+
116
+ sChainWriter .Write (& reqCopy , bidder )
117
+
118
+ reqCopy .Ext , err = buildRequestExtForBidder (bidder , req .BidRequest .Ext , requestExt , bidderParamsInReqExt , auctionReq .Account .AlternateBidderCodes )
119
+ if err != nil {
120
+ errs = append (errs , err )
121
+ continue
122
+ }
123
+
124
+ if err := removeUnpermissionedEids (& reqCopy , bidder , requestExt ); err != nil {
125
+ errs = append (errs , fmt .Errorf ("unable to enforce request.ext.prebid.data.eidpermissions because %v" , err ))
126
+ continue
127
+ }
128
+
129
+ bidderRequest := BidderRequest {
130
+ BidderName : openrtb_ext .BidderName (bidder ),
131
+ BidderCoreName : coreBidder ,
132
+ IsRequestAlias : isRequestAlias ,
133
+ BidRequest : & reqCopy ,
134
+ BidderLabels : metrics.AdapterLabels {
135
+ Source : auctionReq .LegacyLabels .Source ,
136
+ RType : auctionReq .LegacyLabels .RType ,
137
+ Adapter : coreBidder ,
138
+ PubID : auctionReq .LegacyLabels .PubID ,
139
+ CookieFlag : auctionReq .LegacyLabels .CookieFlag ,
140
+ AdapterBids : metrics .AdapterBidPresent ,
141
+ },
142
+ }
143
+
144
+ syncerKey := rs .bidderToSyncerKey [string (coreBidder )]
145
+ if hadSync := prepareUser (& reqCopy , bidder , syncerKey , lowerCaseExplicitBuyerUIDs , auctionReq .UserSyncs ); ! hadSync && req .BidRequest .App == nil {
146
+ bidderRequest .BidderLabels .CookieFlag = metrics .CookieFlagNo
147
+ } else {
148
+ bidderRequest .BidderLabels .CookieFlag = metrics .CookieFlagYes
149
+ }
150
+
151
+ allBidderRequests = append (allBidderRequests , bidderRequest )
152
+ }
153
+
87
154
if allBidderRequestErrs != nil {
88
155
errs = append (errs , allBidderRequestErrs ... )
89
156
}
@@ -322,82 +389,6 @@ func ExtractReqExtBidderParamsMap(bidRequest *openrtb2.BidRequest) (map[string]j
322
389
return bidderParams , nil
323
390
}
324
391
325
- func getAuctionBidderRequests (auctionRequest AuctionRequest ,
326
- requestExt * openrtb_ext.ExtRequest ,
327
- bidderToSyncerKey map [string ]string ,
328
- impsByBidder map [string ][]openrtb2.Imp ,
329
- requestAliases map [string ]string ,
330
- hostSChainNode * openrtb2.SupplyChainNode ) ([]BidderRequest , []error ) {
331
-
332
- bidderRequests := make ([]BidderRequest , 0 , len (impsByBidder ))
333
- req := auctionRequest .BidRequestWrapper
334
- explicitBuyerUIDs , err := extractBuyerUIDs (req .BidRequest .User )
335
- if err != nil {
336
- return nil , []error {err }
337
- }
338
-
339
- bidderParamsInReqExt , err := ExtractReqExtBidderParamsMap (req .BidRequest )
340
- if err != nil {
341
- return nil , []error {err }
342
- }
343
-
344
- sChainWriter , err := schain .NewSChainWriter (requestExt , hostSChainNode )
345
- if err != nil {
346
- return nil , []error {err }
347
- }
348
-
349
- lowerCaseExplicitBuyerUIDs := make (map [string ]string )
350
- for bidder , uid := range explicitBuyerUIDs {
351
- lowerKey := strings .ToLower (bidder )
352
- lowerCaseExplicitBuyerUIDs [lowerKey ] = uid
353
- }
354
-
355
- var errs []error
356
- for bidder , imps := range impsByBidder {
357
- coreBidder , isRequestAlias := resolveBidder (bidder , requestAliases )
358
-
359
- reqCopy := * req .BidRequest
360
- reqCopy .Imp = imps
361
-
362
- sChainWriter .Write (& reqCopy , bidder )
363
-
364
- reqCopy .Ext , err = buildRequestExtForBidder (bidder , req .BidRequest .Ext , requestExt , bidderParamsInReqExt , auctionRequest .Account .AlternateBidderCodes )
365
- if err != nil {
366
- return nil , []error {err }
367
- }
368
-
369
- if err := removeUnpermissionedEids (& reqCopy , bidder , requestExt ); err != nil {
370
- errs = append (errs , fmt .Errorf ("unable to enforce request.ext.prebid.data.eidpermissions because %v" , err ))
371
- continue
372
- }
373
-
374
- bidderRequest := BidderRequest {
375
- BidderName : openrtb_ext .BidderName (bidder ),
376
- BidderCoreName : coreBidder ,
377
- IsRequestAlias : isRequestAlias ,
378
- BidRequest : & reqCopy ,
379
- BidderLabels : metrics.AdapterLabels {
380
- Source : auctionRequest .LegacyLabels .Source ,
381
- RType : auctionRequest .LegacyLabels .RType ,
382
- Adapter : coreBidder ,
383
- PubID : auctionRequest .LegacyLabels .PubID ,
384
- CookieFlag : auctionRequest .LegacyLabels .CookieFlag ,
385
- AdapterBids : metrics .AdapterBidPresent ,
386
- },
387
- }
388
-
389
- syncerKey := bidderToSyncerKey [string (coreBidder )]
390
- if hadSync := prepareUser (& reqCopy , bidder , syncerKey , lowerCaseExplicitBuyerUIDs , auctionRequest .UserSyncs ); ! hadSync && req .BidRequest .App == nil {
391
- bidderRequest .BidderLabels .CookieFlag = metrics .CookieFlagNo
392
- } else {
393
- bidderRequest .BidderLabels .CookieFlag = metrics .CookieFlagYes
394
- }
395
-
396
- bidderRequests = append (bidderRequests , bidderRequest )
397
- }
398
- return bidderRequests , errs
399
- }
400
-
401
392
func buildRequestExtForBidder (bidder string , requestExt json.RawMessage , requestExtParsed * openrtb_ext.ExtRequest , bidderParamsInReqExt map [string ]json.RawMessage , cfgABC * openrtb_ext.ExtAlternateBidderCodes ) (json.RawMessage , error ) {
402
393
// Resolve alternatebiddercode for current bidder
403
394
var reqABC * openrtb_ext.ExtAlternateBidderCodes
0 commit comments