diff --git a/adapters/vungle/vungle.go b/adapters/vungle/vungle.go index 5a0ca2ef918..eac9eb6b3c3 100644 --- a/adapters/vungle/vungle.go +++ b/adapters/vungle/vungle.go @@ -152,11 +152,15 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R for i := range seatBid.Bid { // NewsBreak Custom SDK Logic Begins seatBid.Bid[i].Ext = extBytes + mediaType, err := getMediaTypeForImp(seatBid.Bid[i].ImpID, request.Imp) + if err != nil { + return nil, []error{err} + } // NewsBreak Custom SDK Logic Ends b := &adapters.TypedBid{ Bid: &seatBid.Bid[i], - BidType: openrtb_ext.BidTypeVideo, + BidType: mediaType, Seat: openrtb_ext.BidderName(seatBid.Seat), } @@ -180,3 +184,28 @@ func getAdUnitIdForImp(imps []openrtb2.Imp) string { } return adUnitId } + +func getMediaTypeForImp(impId string, imps []openrtb2.Imp) (openrtb_ext.BidType, error) { + var mediaType openrtb_ext.BidType + var typeCnt = 0 + for _, imp := range imps { + if imp.ID == impId { + if imp.Banner != nil { + typeCnt += 1 + mediaType = openrtb_ext.BidTypeBanner + } + if imp.Native != nil { + typeCnt += 1 + mediaType = openrtb_ext.BidTypeNative + } + if imp.Video != nil { + typeCnt += 1 + mediaType = openrtb_ext.BidTypeVideo + } + } + } + if typeCnt == 1 { + return mediaType, nil + } + return mediaType, fmt.Errorf("Vungle unable to fetch mediaType in multi-format: %s", impId) +}