44 "encoding/json"
55 "errors"
66 "fmt"
7+ "github.com/buger/jsonparser"
78 "net/http"
89 "strings"
910
@@ -132,11 +133,27 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R
132133 return nil , []error {err }
133134 }
134135
136+ // NewsBreak Custom SDK Logic Begins
137+ ext := VungleBidExt {
138+ Detail : VungleBidExtDetail {
139+ PlacementReferenceId : getAdUnitIdForImp (request .Imp ),
140+ },
141+ }
142+ extBytes , err := json .Marshal (& ext )
143+ if err != nil {
144+ return nil , []error {err }
145+ }
146+ // NewsBreak Custom SDK Logic Ends
147+
135148 var errs []error
136149 bidResponse := adapters .NewBidderResponseWithBidsCapacity (len (request .Imp ))
137150 bidResponse .Currency = response .Cur
138151 for _ , seatBid := range response .SeatBid {
139152 for i := range seatBid .Bid {
153+ // NewsBreak Custom SDK Logic Begins
154+ seatBid .Bid [i ].Ext = extBytes
155+ // NewsBreak Custom SDK Logic Ends
156+
140157 b := & adapters.TypedBid {
141158 Bid : & seatBid .Bid [i ],
142159 BidType : openrtb_ext .BidTypeVideo ,
@@ -149,3 +166,17 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R
149166
150167 return bidResponse , errs
151168}
169+
170+ func getAdUnitIdForImp (imps []openrtb2.Imp ) string {
171+ var adUnitId = ""
172+ for _ , imp := range imps {
173+ adUnitId , err := jsonparser .GetString (imp .Ext , "bidder" , "placement_reference_id" )
174+ if err != nil {
175+ continue
176+ }
177+ if adUnitId != "" {
178+ return adUnitId
179+ }
180+ }
181+ return adUnitId
182+ }
0 commit comments