diff --git a/adapters/rubicon/rubicon.go b/adapters/rubicon/rubicon.go index 20a6a58ef25..99072255586 100644 --- a/adapters/rubicon/rubicon.go +++ b/adapters/rubicon/rubicon.go @@ -232,20 +232,39 @@ func Builder(bidderName openrtb_ext.BidderName, config config.Adapter, server co return bidder, nil } -func (a *RubiconAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) { - requestCopy := request - if request.User != nil { - userCopy := *request.User - requestCopy.User = &userCopy +func updateRequestTo26(r *openrtb2.BidRequest) error { + if r.Regs != nil { + regsCopy := *r.Regs + r.Regs = ®sCopy + } + + if r.Source != nil { + sourceCopy := *r.Source + r.Source = &sourceCopy + } + + if r.User != nil { + userCopy := *r.User + r.User = &userCopy } - err := openrtb_ext.ConvertUpTo26(&openrtb_ext.RequestWrapper{BidRequest: requestCopy}) + requestWrapper := &openrtb_ext.RequestWrapper{BidRequest: r} + + if err := openrtb_ext.ConvertUpTo26(requestWrapper); err != nil { + return err + } + + return requestWrapper.RebuildRequest() +} + +func (a *RubiconAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) { + + err := updateRequestTo26(request) + if err != nil { return nil, []error{err} } - request = requestCopy - numRequests := len(request.Imp) requestData := make([]*adapters.RequestData, 0, numRequests) headers := http.Header{} diff --git a/adapters/rubicon/rubicontest/exemplary/25-26-transition-period.json b/adapters/rubicon/rubicontest/exemplary/25-26-transition-period.json index 2f5dee2d9bd..581a0eb5308 100644 --- a/adapters/rubicon/rubicontest/exemplary/25-26-transition-period.json +++ b/adapters/rubicon/rubicontest/exemplary/25-26-transition-period.json @@ -60,7 +60,6 @@ "lon": -122.346200 }, "gender": "f", - "consent": "consent", "data": [ { "ext": { @@ -114,23 +113,31 @@ } ] } - ] + ], + "ext": { + "consent": "consent" + } }, "source": { - "schain": { - "complete": 0, - "nodes": [ - { - "asi": "asi", - "sid": "sid" - } - ], - "ver": "1.0" + "ext": { + "schain": { + "complete": 0, + "nodes": [ + { + "asi": "asi", + "sid": "sid" + } + ], + "ver": "1.0" + } } + }, "regs": { - "gdpr": 1, - "us_privacy": "us_privacy" + "ext": { + "gdpr": 1, + "us_privacy": "us_privacy" + } }, "imp": [ {