Repository: prebid/prebid-server
Pull request #3661 (2024-05-06 05:31:35)

Fix: Set bid meta adaptercode to adapter name
This addresses most of #3363. With this fix, `seatbid[].bid[].ext.prebid.meta.adaptercode` will be set to the adapter name in the request alias and alternate bidder code use cases.
In the hard alias case, the adaptercode is still set to the hard alias. This is a larger change that will be addressed in its own PR.

In this PR I also removed all references to `adaptercode` in the exchange JSON tests since they no longer serve a purpose as the exchange tests mock objects that contain the `adaptercode` logic. As such, I made some updates to the auction endpoint tests that allow us to verify the request alias, hard alias and alternate bidder code logic work correctly with respect to the `adaptercode`.

bsardo: @Pubmatic-Supriya-Patil

Patch:
diff --git a/account/account.go b/account/account.go
index b40d9a88..418fd90c 100644
--- a/account/account.go
+++ b/account/account.go
@@ -19,7 +19,7 @@ import (
 func GetAccount(ctx context.Context, cfg *config.Configuration, fetcher stored_requests.AccountFetcher, accountID string, me metrics.MetricsEngine) (account *config.Account, errs []error) {
 	if cfg.AccountRequired && accountID == metrics.PublisherUnknown {
 		return nil, []error{&errortypes.AcctRequired{
-			Message: fmt.Sprintf("Prebid-server has been configured to discard requests without a valid Account ID. Please reach out to the prebid server host."),
+			Message: "Prebid-server has been configured to discard requests without a valid Account ID. Please reach out to the prebid server host.",
 		}}
 	}
 
@@ -32,7 +32,7 @@ func GetAccount(ctx context.Context, cfg *config.Configuration, fetcher stored_r
 		}
 		if cfg.AccountRequired && cfg.AccountDefaults.Disabled {
 			errs = append(errs, &errortypes.AcctRequired{
-				Message: fmt.Sprintf("Prebid-server could not verify the Account ID. Please reach out to the prebid server host."),
+				Message: "Prebid-server could not verify the Account ID. Please reach out to the prebid server host.",
 			})
 			return nil, errs
 		}
diff --git a/adapters/adkernelAdn/adkernelAdn.go b/adapters/adkernelAdn/adkernelAdn.go
index 00b4c1a2..33e5ee93 100644
--- a/adapters/adkernelAdn/adkernelAdn.go
+++ b/adapters/adkernelAdn/adkernelAdn.go
@@ -124,7 +124,7 @@ func compatBannerImpression(imp *openrtb2.Imp) error {
 	//As banner.w/h are required fields for adkernelAdn platform - take the first format entry
 	if banner.W == nil && banner.H == nil {
 		if len(banner.Format) == 0 {
-			return newBadInputError(fmt.Sprintf("Expected at least one banner.format entry or explicit w/h"))
+			return newBadInputError("Expected at least one banner.format entry or explicit w/h")
 		}
 		format := banner.Format[0]
 		banner.Format = banner.Format[1:]
diff --git a/adapters/adnuntius/adnuntius.go b/adapters/adnuntius/adnuntius.go
index 465547db..823c1783 100644
--- a/adapters/adnuntius/adnuntius.go
+++ b/adapters/adnuntius/adnuntius.go
@@ -218,7 +218,7 @@ func (a *adapter) generateRequests(ortbRequest openrtb2.BidRequest) ([]*adapters
 			}}
 		}
 
-		if adnuntiusExt.NoCookies == true {
+		if adnuntiusExt.NoCookies {
 			noCookies = true
 		}
 
@@ -463,7 +463,7 @@ func generateBidResponse(adnResponse *AdnResponse, request *openrtb2.BidRequest)
 			adBid, err := generateAdResponse(ad, imp, adunit.Html, request)
 			if err != nil {
 				return nil, []error{&errortypes.BadInput{
-					Message: fmt.Sprintf("Error at ad generation"),
+					Message: "Error at ad generation",
 				}}
 			}
 
@@ -476,7 +476,7 @@ func generateBidResponse(adnResponse *AdnResponse, request *openrtb2.BidRequest)
 				dealBid, err := generateAdResponse(deal, imp, deal.Html, request)
 				if err != nil {
 					return nil, []error{&errortypes.BadInput{
-						Message: fmt.Sprintf("Error at ad generation"),
+						Message: "Error at ad generation",
 					}}
 				}
 
diff --git a/adapters/adtelligent/adtelligent.go b/adapters/adtelligent/adtelligent.go
index d466c3df..492de0a3 100644
--- a/adapters/adtelligent/adtelligent.go
+++ b/adapters/adtelligent/adtelligent.go
@@ -175,6 +175,11 @@ func validateImpression(imp *openrtb2.Imp) (int, error) {
 	impExtBuffer, err = json.Marshal(&adtelligentImpExt{
 		Adtelligent: impExt,
 	})
+	if err != nil {
+		return 0, &errortypes.BadInput{
+			Message: fmt.Sprintf("ignoring imp id=%s, error while marshaling impExt, err: %s", imp.ID, err),
+		}
+	}
 
 	if impExt.BidFloor > 0 {
 		imp.BidFloor = impExt.BidFloor
diff --git a/adapters/avocet/avocet.go b/adapters/avocet/avocet.go
index 09737085..76ce8195 100644
--- a/adapters/avocet/avocet.go
+++ b/adapters/avocet/avocet.go
@@ -103,6 +103,9 @@ func (a *AvocetAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externalR
 			bidResponse.Bids = append(bidResponse.Bids, tbid)
 		}
 	}
+	if len(errs) > 0 {
+		return nil, errs
+	}
 	return bidResponse, nil
 }
 
diff --git a/adapters/beintoo/beintoo.go b/adapters/beintoo/beintoo.go
index ee16082a..9a68bb40 100644
--- a/adapters/beintoo/beintoo.go
+++ b/adapters/beintoo/beintoo.go
@@ -27,7 +27,7 @@ func (a *BeintooAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *ada
 		}}
 	}
 
-	if errors := preprocess(request); errors != nil && len(errors) > 0 {
+	if errors := preprocess(request); len(errors) > 0 {
 		return nil, append(errors, &errortypes.BadInput{
 			Message: fmt.Sprintf("Error in preprocess of Imp, err: %s", errors),
 		})
@@ -133,8 +133,6 @@ func addImpProps(imp *openrtb2.Imp, secure *int8, BeintooExt *openrtb_ext.ExtImp
 			imp.BidFloor = bidFloor
 		}
 	}
-
-	return
 }
 
 // Adding header fields to request header
diff --git a/adapters/between/between.go b/adapters/between/between.go
index 50c130a7..4b9deae6 100644
--- a/adapters/between/between.go
+++ b/adapters/between/between.go
@@ -28,7 +28,7 @@ func (a *BetweenAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *ada
 		}}
 	}
 	ext, errors := preprocess(request)
-	if errors != nil && len(errors) > 0 {
+	if len(errors) > 0 {
 		return nil, errors
 	}
 	endpoint, err := a.buildEndpointURL(ext)
diff --git a/adapters/cadent_aperture_mx/cadentaperturemx.go b/adapters/cadent_aperture_mx/cadentaperturemx.go
index 2a0b3759..e86cddbe 100644
--- a/adapters/cadent_aperture_mx/cadentaperturemx.go
+++ b/adapters/cadent_aperture_mx/cadentaperturemx.go
@@ -42,7 +42,7 @@ func (a *adapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.E
 		}}
 	}
 
-	if errs := preprocess(request); errs != nil && len(errs) > 0 {
+	if errs := preprocess(request); len(errs) > 0 {
 		return nil, append(errs, &errortypes.BadInput{
 			Message: fmt.Sprintf("Error in preprocess of Imp, err: %s", errs),
 		})
@@ -192,8 +192,6 @@ func addImpProps(imp *openrtb2.Imp, secure *int8, cadentExt *openrtb_ext.ExtImpC
 			imp.BidFloorCur = "USD"
 		}
 	}
-
-	return
 }
 
 // Adding header fields to request header
diff --git a/adapters/connectad/connectad.go b/adapters/connectad/connectad.go
index e71184ae..ca681c1b 100644
--- a/adapters/connectad/connectad.go
+++ b/adapters/connectad/connectad.go
@@ -146,8 +146,6 @@ func addImpInfo(imp *openrtb2.Imp, secure *int8, cadExt *openrtb_ext.ExtImpConne
 		imp.BidFloor = cadExt.Bidfloor
 		imp.BidFloorCur = "USD"
 	}
-
-	return
 }
 
 func addHeaderIfNonEmpty(headers http.Header, headerName string, headerValue string) {
diff --git a/adapters/consumable/consumable.go b/adapters/consumable/consumable.go
index 17ef90f2..1f669f28 100644
--- a/adapters/consumable/consumable.go
+++ b/adapters/consumable/consumable.go
@@ -104,13 +104,10 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R
 			switch bidType {
 			case openrtb_ext.BidTypeAudio:
 				seatBid.Bid[i].MType = openrtb2.MarkupAudio
-				break
 			case openrtb_ext.BidTypeVideo:
 				seatBid.Bid[i].MType = openrtb2.MarkupVideo
-				break
 			case openrtb_ext.BidTypeBanner:
 				seatBid.Bid[i].MType = openrtb2.MarkupBanner
-				break
 			}
 			bidResponse.Bids = append(bidResponse.Bids, &adapters.TypedBid{
 				Bid:      &seatBid.Bid[i],
diff --git a/adapters/dmx/dmx.go b/adapters/dmx/dmx.go
index e35b5562..f080ca8e 100644
--- a/adapters/dmx/dmx.go
+++ b/adapters/dmx/dmx.go
@@ -64,7 +64,6 @@ func (adapter *DmxAdapter) MakeRequests(request *openrtb2.BidRequest, req *adapt
 	var publisherId string
 	var sellerId string
 	var userExt openrtb_ext.ExtUser
-	var anyHasId = false
 	var reqCopy openrtb2.BidRequest = *request
 	var dmxReq *openrtb2.BidRequest = &reqCopy
 	var dmxRawPubId dmxPubExt
@@ -85,6 +84,7 @@ func (adapter *DmxAdapter) MakeRequests(request *openrtb2.BidRequest, req *adapt
 		}
 	}
 
+	hasNoID := true
 	if request.App != nil {
 		appCopy := *request.App
 		appPublisherCopy := *request.App.Publisher
@@ -101,12 +101,12 @@ func (adapter *DmxAdapter) MakeRequests(request *openrtb2.BidRequest, req *adapt
 		}
 		dmxReq.App.Publisher.Ext = ext
 		if dmxReq.App.ID != "" {
-			anyHasId = true
+			hasNoID = false
 		}
-		if anyHasId == false {
+		if hasNoID {
 			if idfa, valid := getIdfa(request); valid {
 				dmxReq.App.ID = idfa
-				anyHasId = true
+				hasNoID = false
 			}
 		}
 	} else {
@@ -145,12 +145,12 @@ func (adapter *DmxAdapter) MakeRequests(request *openrtb2.BidRequest, req *adapt
 
 	if dmxReq.User != nil {
 		if dmxReq.User.ID != "" {
-			anyHasId = true
+			hasNoID = false
 		}
 		if dmxReq.User.Ext != nil {
 			if err := json.Unmarshal(dmxReq.User.Ext, &userExt); err == nil {
 				if len(userExt.Eids) > 0 {
-					anyHasId = true
+					hasNoID = false
 				}
 			}
 		}
@@ -190,7 +190,7 @@ func (adapter *DmxAdapter) MakeRequests(request *openrtb2.BidRequest, req *adapt
 
 	dmxReq.Imp = imps
 
-	if anyHasId == false {
+	if hasNoID {
 		return nil, []error{errors.New("This request contained no identifier")}
 	}
 
@@ -264,37 +264,36 @@ func (adapter *DmxAdapter) MakeBids(request *openrtb2.BidRequest, externalReques
 }
 
 func fetchParams(params dmxExt, inst openrtb2.Imp, ins openrtb2.Imp, imps []openrtb2.Imp, banner *openrtb2.Banner, video *openrtb2.Video, intVal int8) []openrtb2.Imp {
-	var tempimp openrtb2.Imp
-	tempimp = inst
+	tempImp := inst
 	if params.Bidder.Bidfloor != 0 {
-		tempimp.BidFloor = params.Bidder.Bidfloor
+		tempImp.BidFloor = params.Bidder.Bidfloor
 	}
 	if params.Bidder.TagId != "" {
-		tempimp.TagID = params.Bidder.TagId
-		tempimp.Secure = &intVal
+		tempImp.TagID = params.Bidder.TagId
+		tempImp.Secure = &intVal
 	}
 
 	if params.Bidder.DmxId != "" {
-		tempimp.TagID = params.Bidder.DmxId
-		tempimp.Secure = &intVal
+		tempImp.TagID = params.Bidder.DmxId
+		tempImp.Secure = &intVal
 	}
 	if banner != nil {
 		if banner.H == nil || banner.W == nil {
 			banner.H = &banner.Format[0].H
 			banner.W = &banner.Format[0].W
 		}
-		tempimp.Banner = banner
+		tempImp.Banner = banner
 	}
 
 	if video != nil {
 		video.Protocols = checkProtocols(video)
-		tempimp.Video = video
+		tempImp.Video = video
 	}
 
-	if tempimp.TagID == "" {
+	if tempImp.TagID == "" {
 		return imps
 	}
-	imps = append(imps, tempimp)
+	imps = append(imps, tempImp)
 	return imps
 }
 
diff --git a/adapters/gamma/gamma.go b/adapters/gamma/gamma.go
index 631132cc..8e14331b 100644
--- a/adapters/gamma/gamma.go
+++ b/adapters/gamma/gamma.go
@@ -150,7 +150,7 @@ func (a *GammaAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapt
 		errs = append(errs, err)
 		return nil, errs
 	}
-	var invalidImpIndex = make([]int, 0, 0)
+	var invalidImpIndex []int
 
 	for i := 0; i < len(request.Imp); i++ {
 		if request.Imp[i].Banner != nil {
@@ -182,7 +182,7 @@ func (a *GammaAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapt
 	} else if len(request.Imp) == len(invalidImpIndex) {
 		//only true if every Imp was not a Banner or a Video
 		err := &errortypes.BadInput{
-			Message: fmt.Sprintf("No valid impression in the bid request"),
+			Message: "No valid impression in the bid request",
 		}
 		errs = append(errs, err)
 		return nil, errs
@@ -205,8 +205,7 @@ func (a *GammaAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapt
 }
 
 func convertBid(gBid gammaBid, mediaType openrtb_ext.BidType) *openrtb2.Bid {
-	var bid openrtb2.Bid
-	bid = gBid.Bid
+	bid := gBid.Bid
 
 	if mediaType == openrtb_ext.BidTypeVideo {
 		//Return inline VAST XML Document (Section 6.4.2)
diff --git a/adapters/lemmadigital/lemmadigital.go b/adapters/lemmadigital/lemmadigital.go
index 7ff32ba4..281cd2e1 100644
--- a/adapters/lemmadigital/lemmadigital.go
+++ b/adapters/lemmadigital/lemmadigital.go
@@ -94,15 +94,14 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R
 	if len(response.Cur) > 0 {
 		bidResponse.Currency = response.Cur
 	}
-	for _, seatBid := range response.SeatBid {
-		for i := range seatBid.Bid {
+	if len(response.SeatBid) > 0 {
+		for i := range response.SeatBid[0].Bid {
 			b := &adapters.TypedBid{
-				Bid:     &seatBid.Bid[i],
+				Bid:     &response.SeatBid[0].Bid[i],
 				BidType: bidType,
 			}
 			bidResponse.Bids = append(bidResponse.Bids, b)
 		}
-		break
 	}
 
 	return bidResponse, nil
diff --git a/adapters/minutemedia/minutemedia.go b/adapters/minutemedia/minutemedia.go
index cb5581e5..796f9ec6 100644
--- a/adapters/minutemedia/minutemedia.go
+++ b/adapters/minutemedia/minutemedia.go
@@ -91,21 +91,21 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, _ *adapters.RequestData
 
 func extractOrg(openRTBRequest *openrtb2.BidRequest) (string, error) {
 	var err error
-	for _, imp := range openRTBRequest.Imp {
-		var bidderExt adapters.ExtImpBidder
-		if err = json.Unmarshal(imp.Ext, &bidderExt); err != nil {
-			return "", fmt.Errorf("failed to unmarshal bidderExt: %w", err)
-		}
+	if len(openRTBRequest.Imp) == 0 {
+		return "", errors.New("no imps in bid request")
+	}
 
-		var impExt openrtb_ext.ImpExtMinuteMedia
-		if err = json.Unmarshal(bidderExt.Bidder, &impExt); err != nil {
-			return "", fmt.Errorf("failed to unmarshal ImpExtMinuteMedia: %w", err)
-		}
+	var bidderExt adapters.ExtImpBidder
+	if err = json.Unmarshal(openRTBRequest.Imp[0].Ext, &bidderExt); err != nil {
+		return "", fmt.Errorf("failed to unmarshal bidderExt: %w", err)
+	}
 
-		return strings.TrimSpace(impExt.Org), nil
+	var impExt openrtb_ext.ImpExtMinuteMedia
+	if err = json.Unmarshal(bidderExt.Bidder, &impExt); err != nil {
+		return "", fmt.Errorf("failed to unmarshal ImpExtMinuteMedia: %w", err)
 	}
 
-	return "", errors.New("no imps in bid request")
+	return strings.TrimSpace(impExt.Org), nil
 }
 
 func getMediaTypeForBid(bid openrtb2.Bid) (openrtb_ext.BidType, error) {
diff --git a/adapters/rubicon/rubicon.go b/adapters/rubicon/rubicon.go
index cb968fbe..a12d2fc7 100644
--- a/adapters/rubicon/rubicon.go
+++ b/adapters/rubicon/rubicon.go
@@ -587,7 +587,7 @@ func createImpsToExtMap(imps []openrtb2.Imp) (map[*openrtb2.Imp]rubiconExtImpBid
 func prepareImpsToExtMap(impsToExtMap map[*openrtb2.Imp]rubiconExtImpBidder) map[*openrtb2.Imp]rubiconExtImpBidder {
 	preparedImpsToExtMap := make(map[*openrtb2.Imp]rubiconExtImpBidder)
 	for imp, bidderExt := range impsToExtMap {
-		if bidderExt.Bidder.BidOnMultiformat == false {
+		if bidderExt.Bidder.BidOnMultiformat == false { //nolint: staticcheck
 			impCopy := imp
 			preparedImpsToExtMap[impCopy] = bidderExt
 			continue
diff --git a/adapters/smartrtb/smartrtb.go b/adapters/smartrtb/smartrtb.go
index 4e15c5ab..1c5d1abb 100644
--- a/adapters/smartrtb/smartrtb.go
+++ b/adapters/smartrtb/smartrtb.go
@@ -29,6 +29,7 @@ type bidRequestExt struct {
 }
 
 // bidExt.CreativeType values.
+// nolint: staticcheck // staticcheck SA9004: only the first constant in this group has an explicit type
 const (
 	creativeTypeBanner string = "BANNER"
 	creativeTypeVideo         = "VIDEO"
diff --git a/adapters/sovrnXsp/sovrnXsp.go b/adapters/sovrnXsp/sovrnXsp.go
index 4b384163..ed97697e 100644
--- a/adapters/sovrnXsp/sovrnXsp.go
+++ b/adapters/sovrnXsp/sovrnXsp.go
@@ -20,9 +20,9 @@ type adapter struct {
 // bidExt.CreativeType values.
 const (
 	creativeTypeBanner int = 0
-	creativeTypeVideo      = 1
-	creativeTypeNative     = 2
-	creativeTypeAudio      = 3
+	creativeTypeVideo  int = 1
+	creativeTypeNative int = 2
+	creativeTypeAudio  int = 3
 )
 
 // Bid response extension from XSP.
diff --git a/adapters/tappx/tappx.go b/adapters/tappx/tappx.go
index 6da9497b..57aaa039 100644
--- a/adapters/tappx/tappx.go
+++ b/adapters/tappx/tappx.go
@@ -86,8 +86,7 @@ func (a *TappxAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapt
 		}}
 	}
 
-	var test int
-	test = int(request.Test)
+	test := int(request.Test)
 
 	url, err := a.buildEndpointURL(&tappxExt, test)
 	if url == "" {
@@ -134,6 +133,11 @@ func (a *TappxAdapter) buildEndpointURL(params *openrtb_ext.ExtImpTappx, test in
 
 	tappxHost := "tappx.com"
 	isNewEndpoint, err := regexp.Match(`^(zz|vz)[0-9]{3,}([a-z]{2,3}|test)$`, []byte(params.Endpoint))
+	if err != nil {
+		return "", &errortypes.BadInput{
+			Message: "Unable to match params.Endpoint " + string(params.Endpoint) + "): " + err.Error(),
+		}
+	}
 	if isNewEndpoint {
 		tappxHost = params.Endpoint + ".pub.tappx.com/rtb/"
 	} else {
diff --git a/adapters/yieldlab/yieldlab.go b/adapters/yieldlab/yieldlab.go
index 72041659..c92abe75 100644
--- a/adapters/yieldlab/yieldlab.go
+++ b/adapters/yieldlab/yieldlab.go
@@ -498,20 +498,20 @@ func makeSupplyChain(openRtbSchain openrtb2.SupplyChain) string {
 
 // makeNodeValue converts any known value type from a schain node to a string and does URL encoding if necessary.
 func makeNodeValue(nodeParam any) string {
-	switch nodeParam.(type) {
+	switch nodeParam := nodeParam.(type) {
 	case string:
-		return url.QueryEscape(nodeParam.(string))
+		return url.QueryEscape(nodeParam)
 	case *int8:
-		pointer := nodeParam.(*int8)
+		pointer := nodeParam
 		if pointer == nil {
 			return ""
 		}
 		return makeNodeValue(int(*pointer))
 	case int:
-		return strconv.Itoa(nodeParam.(int))
+		return strconv.Itoa(nodeParam)
 	case json.RawMessage:
-		if freeFormData := nodeParam.(json.RawMessage); freeFormData != nil {
-			freeFormJson, err := json.Marshal(freeFormData)
+		if nodeParam != nil {
+			freeFormJson, err := json.Marshal(nodeParam)
 			if err != nil {
 				return ""
 			}
diff --git a/adapters/yieldmo/yieldmo.go b/adapters/yieldmo/yieldmo.go
index f01527cc..6693861c 100644
--- a/adapters/yieldmo/yieldmo.go
+++ b/adapters/yieldmo/yieldmo.go
@@ -35,16 +35,8 @@ type ExtBid struct {
 }
 
 func (a *YieldmoAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) {
-	var errs []error
-	var adapterRequests []*adapters.RequestData
-
-	adapterReq, errors := a.makeRequest(request)
-	if adapterReq != nil {
-		adapterRequests = append(adapterRequests, adapterReq)
-	}
-	errs = append(errs, errors...)
-
-	return adapterRequests, errors
+	reqData, errors := a.makeRequest(request)
+	return []*adapters.RequestData{reqData}, errors
 }
 
 func (a *YieldmoAdapter) makeRequest(request *openrtb2.BidRequest) (*adapters.RequestData, []error) {
diff --git a/adservertargeting/respdataprocessor.go b/adservertargeting/respdataprocessor.go
index 5ec305c1..51bad207 100644
--- a/adservertargeting/respdataprocessor.go
+++ b/adservertargeting/respdataprocessor.go
@@ -82,13 +82,13 @@ func buildBidExt(targetingData map[string]string,
 	}
 	bidExtTargeting, err := jsonutil.Marshal(bidExtTargetingData)
 	if err != nil {
-		warnings = append(warnings, createWarning(err.Error()))
+		warnings = append(warnings, createWarning(err.Error())) //nolint: ineffassign,staticcheck
 		return nil
 	}
 
 	newExt, err := jsonpatch.MergePatch(bid.Ext, bidExtTargeting)
 	if err != nil {
-		warnings = append(warnings, createWarning(err.Error()))
+		warnings = append(warnings, createWarning(err.Error())) //nolint: ineffassign,staticcheck
 		return nil
 	}
 	return newExt
diff --git a/bidadjustment/apply.go b/bidadjustment/apply.go
index 16b8305a..86bc813d 100644
--- a/bidadjustment/apply.go
+++ b/bidadjustment/apply.go
@@ -21,7 +21,7 @@ const minBid = 0.1
 
 // Apply gets the highest priority adjustment slice given a map of rules, and applies those adjustments to a bid's price
 func Apply(rules map[string][]openrtb_ext.Adjustment, bidInfo *adapters.TypedBid, bidderName openrtb_ext.BidderName, currency string, reqInfo *adapters.ExtraRequestInfo, bidType string) (float64, string) {
-	adjustments := []openrtb_ext.Adjustment{}
+	var adjustments []openrtb_ext.Adjustment
 	if len(rules) > 0 {
 		adjustments = get(rules, bidType, string(bidderName), bidInfo.Bid.DealID)
 	} else {
diff --git a/config/config.go b/config/config.go
index d4ef73a6..4da788d4 100644
--- a/config/config.go
+++ b/config/config.go
@@ -192,27 +192,27 @@ func (data *ExternalCache) validate(errs []error) []error {
 
 	// Either host or path or both not empty, validate.
 	if data.Host == "" && data.Path != "" || data.Host != "" && data.Path == "" {
-		return append(errs, errors.New("External cache Host and Path must both be specified"))
+		return append(errs, errors.New("external cache Host and Path must both be specified"))
 	}
 	if strings.HasSuffix(data.Host, "/") {
-		return append(errs, errors.New(fmt.Sprintf("External cache Host '%s' must not end with a path separator", data.Host)))
+		return append(errs, fmt.Errorf("external cache Host '%s' must not end with a path separator", data.Host))
 	}
 	if strings.Contains(data.Host, "://") {
-		return append(errs, errors.New(fmt.Sprintf("External cache Host must not specify a protocol. '%s'", data.Host)))
+		return append(errs, fmt.Errorf("external cache Host must not specify a protocol. '%s'", data.Host))
 	}
 	if !strings.HasPrefix(data.Path, "/") {
-		return append(errs, errors.New(fmt.Sprintf("External cache Path '%s' must begin with a path separator", data.Path)))
+		return append(errs, fmt.Errorf("external cache Path '%s' must begin with a path separator", data.Path))
 	}
 
 	urlObj, err := url.Parse("https://" + data.Host + data.Path)
 	if err != nil {
-		return append(errs, errors.New(fmt.Sprintf("External cache Path validation error: %s ", err.Error())))
+		return append(errs, fmt.Errorf("external cache Path validation error: %s ", err.Error()))
 	}
 	if urlObj.Host != data.Host {
-		return append(errs, errors.New(fmt.Sprintf("External cache Host '%s' is invalid", data.Host)))
+		return append(errs, fmt.Errorf("external cache Host '%s' is invalid", data.Host))
 	}
 	if urlObj.Path != data.Path {
-		return append(errs, errors.New("External cache Path is invalid"))
+		return append(errs, fmt.Errorf("external cache Path is invalid"))
 	}
 
 	return errs
@@ -269,7 +269,7 @@ func (cfg *GDPR) validate(v *viper.Viper, errs []error) []error {
 	if cfg.HostVendorID == 0 {
 		glog.Warning("gdpr.host_vendor_id was not specified. Host company GDPR checks will be skipped.")
 	}
-	if cfg.AMPException == true {
+	if cfg.AMPException {
 		errs = append(errs, fmt.Errorf("gdpr.amp_exception has been discontinued and must be removed from your config. If you need to disable GDPR for AMP, you may do so per-account (gdpr.integration_enabled.amp) or at the host level for the default account (account_defaults.gdpr.integration_enabled.amp)"))
 	}
 	return cfg.validatePurposes(errs)
diff --git a/config/events.go b/config/events.go
index cf3139d8..c73460e0 100644
--- a/config/events.go
+++ b/config/events.go
@@ -82,11 +82,9 @@ func (e Events) validate(errs []error) []error {
 
 // validateVASTEvents verifies the all VASTEvent objects and returns error if at least one is invalid.
 func validateVASTEvents(events []VASTEvent) error {
-	if events != nil {
-		for i, event := range events {
-			if err := event.validate(); err != nil {
-				return fmt.Errorf(err.Error(), i, i)
-			}
+	for i, event := range events {
+		if err := event.validate(); err != nil {
+			return fmt.Errorf(err.Error(), i, i)
 		}
 	}
 	return nil
diff --git a/endpoints/events/vtrack.go b/endpoints/events/vtrack.go
index a2e185f4..01e544a4 100644
--- a/endpoints/events/vtrack.go
+++ b/endpoints/events/vtrack.go
@@ -194,12 +194,12 @@ func ParseVTrackRequest(httpRequest *http.Request, maxRequestSize int64) (req *B
 
 	for _, bcr := range req.Puts {
 		if bcr.BidID == "" {
-			err = error(&errortypes.BadInput{Message: fmt.Sprint("'bidid' is required field and can't be empty")})
+			err = error(&errortypes.BadInput{Message: "'bidid' is required field and can't be empty"})
 			return req, err
 		}
 
 		if bcr.Bidder == "" {
-			err = error(&errortypes.BadInput{Message: fmt.Sprint("'bidder' is required field and can't be empty")})
+			err = error(&errortypes.BadInput{Message: "'bidder' is required field and can't be empty"})
 			return req, err
 		}
 	}
@@ -271,12 +271,13 @@ func getBiddersAllowingVastUpdate(req *BidCacheRequest, bidderInfos *config.Bidd
 
 // isAllowVastForBidder checks if a bidder is active and allowed to modify vast xml data
 func isAllowVastForBidder(bidder string, bidderInfos *config.BidderInfos, allowUnknownBidder bool, normalizeBidderName normalizeBidderName) bool {
-	//if bidder is active and isModifyingVastXmlAllowed is true
+	// if bidder is active and isModifyingVastXmlAllowed is true
 	// check if bidder is configured
 	if normalizedBidder, ok := normalizeBidderName(bidder); ok {
-		if b, ok := (*bidderInfos)[normalizedBidder.String()]; bidderInfos != nil && ok {
-			// check if bidder is enabled
-			return b.IsEnabled() && b.ModifyingVastXmlAllowed
+		if bidderInfos != nil {
+			if b, ok := (*bidderInfos)[normalizedBidder.String()]; ok {
+				return b.IsEnabled() && b.ModifyingVastXmlAllowed
+			}
 		}
 	}
 
diff --git a/endpoints/openrtb2/auction.go b/endpoints/openrtb2/auction.go
index 28b2aa3d..a1d4a98f 100644
--- a/endpoints/openrtb2/auction.go
+++ b/endpoints/openrtb2/auction.go
@@ -2319,8 +2319,8 @@ func (deps *endpointDeps) processStoredRequests(requestJson []byte, impInfo []Im
 // parseImpInfo parses the request JSON and returns impression and unmarshalled imp.ext.prebid
 func parseImpInfo(requestJson []byte) (impData []ImpExtPrebidData, errs []error) {
 	if impArray, dataType, _, err := jsonparser.Get(requestJson, "imp"); err == nil && dataType == jsonparser.Array {
-		_, err = jsonparser.ArrayEach(impArray, func(imp []byte, _ jsonparser.ValueType, _ int, err error) {
-			impExtData, _, _, err := jsonparser.Get(imp, "ext", "prebid")
+		_, _ = jsonparser.ArrayEach(impArray, func(imp []byte, _ jsonparser.ValueType, _ int, _ error) {
+			impExtData, _, _, _ := jsonparser.Get(imp, "ext", "prebid")
 			var impExtPrebid openrtb_ext.ExtImpPrebid
 			if impExtData != nil {
 				if err := jsonutil.Unmarshal(impExtData, &impExtPrebid); err != nil {
diff --git a/endpoints/openrtb2/sample-requests/aliased/simple.json b/endpoints/openrtb2/sample-requests/aliased/default-request-alias.json
similarity index 76%
rename from endpoints/openrtb2/sample-requests/aliased/simple.json
rename to endpoints/openrtb2/sample-requests/aliased/default-request-alias.json
index 6e1440a7..134d121b 100644
--- a/endpoints/openrtb2/sample-requests/aliased/simple.json
+++ b/endpoints/openrtb2/sample-requests/aliased/default-request-alias.json
@@ -35,7 +35,17 @@
           {
             "id": "appnexus-bid",
             "impid": "my-imp-id",
-            "price": 0
+            "price": 0,
+            "ext": {
+              "origbidcpm": 0,
+              "origbidcur": "USD",
+              "prebid": {
+                "meta": {
+                  "adaptercode": "appnexus"
+                },
+                "type": "banner"
+              }
+            }
           }
         ],
        "seat": "alias1"
diff --git a/endpoints/openrtb2/sample-requests/aliased/hard-alias.json b/endpoints/openrtb2/sample-requests/aliased/hard-alias.json
new file mode 100644
index 00000000..7e727814
--- /dev/null
+++ b/endpoints/openrtb2/sample-requests/aliased/hard-alias.json
@@ -0,0 +1,62 @@
+{
+  "description": "Imp extension references valid bidder alias of adf defined in the adform bidder infos config yaml file.",
+  "config": {
+    "mockBidders": [
+      {
+        "bidderName": "adform",
+        "currency": "USD",
+        "price": 2
+      }
+    ]
+  },
+  "mockBidRequest": {
+    "id": "some-request-id",
+    "site": {
+      "page": "test.somepage.com"
+    },
+    "imp": [
+      {
+        "id": "my-imp-id",
+        "video": {
+          "mimes": [
+            "video/mp4"
+          ]
+        },
+        "ext": {
+          "adform": {
+            "mid": "123"
+          }
+        }
+      }
+    ]
+  },
+  "expectedBidResponse": {
+    "id":"some-request-id",
+    "bidid":"test bid id",
+    "cur": "USD",
+    "nbr":0,
+    "seatbid": [
+      {
+        "bid": [
+          {
+            "id": "adform-bid",
+            "impid": "my-imp-id",
+            "price": 2,
+            "ext": {
+              "origbidcpm": 2,
+              "origbidcur": "USD",
+              "prebid": {
+                "meta": {
+                  "adaptercode": "adform"
+                },
+                "type": "banner"
+              }
+            }
+          }
+        ],
+       "seat": "adform"
+      }
+    ]
+  },
+  "expectedReturnCode": 200
+}
diff --git a/endpoints/openrtb2/sample-requests/aliased/request-alias.json b/endpoints/openrtb2/sample-requests/aliased/request-alias.json
new file mode 100644
index 00000000..77ce02ad
--- /dev/null
+++ b/endpoints/openrtb2/sample-requests/aliased/request-alias.json
@@ -0,0 +1,61 @@
+{
+    "description": "Imp extension references valid bidder alias of appnexus defined in the request ext.prebid.aliases field.",
+    "mockBidRequest": {
+      "id": "some-request-id",
+      "site": {
+        "page": "test.somepage.com"
+      },
+      "imp": [
+        {
+          "id": "my-imp-id",
+          "video": {
+            "mimes": [
+              "video/mp4"
+            ]
+          },
+          "ext": {
+            "alias1": {
+              "placementId": 12883451
+            }
+          }
+        }
+      ],
+      "ext": {
+        "prebid": {
+          "aliases": {
+            "alias1": "appnexus"
+          }
+        }
+      }
+    },
+    "expectedBidResponse": {
+      "id":"some-request-id",
+      "bidid":"test bid id",
+      "cur": "USD",
+      "nbr":0,
+      "seatbid": [
+        {
+          "bid": [
+            {
+              "id": "appnexus-bid",
+              "impid": "my-imp-id",
+              "price": 0,
+              "ext": {
+                "origbidcpm": 0,
+                "origbidcur": "USD",
+                "prebid": {
+                  "meta": {
+                    "adaptercode": "appnexus"
+                  },
+                  "type": "banner"
+                }
+              }
+            }
+          ],
+         "seat": "alias1"
+        }
+      ]
+    },
+    "expectedReturnCode": 200
+  }
+  
\ No newline at end of file
diff --git a/endpoints/openrtb2/sample-requests/alternate-bidder-code/alternate-bidder-code.json b/endpoints/openrtb2/sample-requests/alternate-bidder-code/alternate-bidder-code.json
new file mode 100644
index 00000000..75e951cb
--- /dev/null
+++ b/endpoints/openrtb2/sample-requests/alternate-bidder-code/alternate-bidder-code.json
@@ -0,0 +1,67 @@
+{
+    "description": "Imp extension doesn't come with valid bidder name but does come with valid bidder alias as defined in the mockAliases list.",
+    "config": {
+      "mockBidders": [
+        {
+          "bidderName": "appnexus",
+          "currency": "USD",
+          "price": 2,
+          "seat": "groupm"
+        }
+      ]
+    },
+    "mockBidRequest": {
+      "id": "some-request-id",
+      "site": {
+        "page": "test.somepage.com",
+        "publisher": {
+            "id": "alternate_bidder_code_acct"
+          }
+      },
+      "imp": [
+        {
+          "id": "my-imp-id",
+          "video": {
+            "mimes": [
+              "video/mp4"
+            ]
+          },
+          "ext": {
+            "appnexus": {
+              "placementId": 12883451
+            }
+          }
+        }
+      ]
+    },
+    "expectedBidResponse": {
+      "id":"some-request-id",
+      "bidid":"test bid id",
+      "cur": "USD",
+      "nbr":0,
+      "seatbid": [
+        {
+          "bid": [
+            {
+              "id": "appnexus-bid",
+              "impid": "my-imp-id",
+              "price": 2,
+              "ext": {
+                "origbidcpm": 2,
+                "origbidcur": "USD",
+                "prebid": {
+                  "meta": {
+                    "adaptercode": "appnexus"
+                  },
+                  "type": "banner"
+                }
+              }
+            }
+          ],
+         "seat": "groupm"
+        }
+      ]
+    },
+    "expectedReturnCode": 200
+  }
+  
\ No newline at end of file
diff --git a/endpoints/openrtb2/sample-requests/valid-whole/exemplary/simple.json b/endpoints/openrtb2/sample-requests/valid-whole/exemplary/simple.json
index 5a7dbd20..a0c627b3 100644
--- a/endpoints/openrtb2/sample-requests/valid-whole/exemplary/simple.json
+++ b/endpoints/openrtb2/sample-requests/valid-whole/exemplary/simple.json
@@ -47,7 +47,17 @@
           {
             "id": "appnexus-bid",
             "impid": "some-impression-id",
-            "price": 0
+            "price": 0,
+            "ext": {
+              "origbidcpm": 0,
+              "origbidcur": "USD",
+              "prebid": {
+                "meta": {
+                  "adaptercode": "appnexus"
+                },
+                "type": "banner"
+              }
+            }
           }
         ],
         "seat": "appnexus"
diff --git a/exchange/bidder.go b/exchange/bidder.go
index 8b54f984..fb2c73be 100644
--- a/exchange/bidder.go
+++ b/exchange/bidder.go
@@ -387,6 +387,7 @@ func (bidder *bidderAdapter) requestBid(ctx context.Context, bidderRequest Bidde
 							DealPriority:   bidResponse.Bids[i].DealPriority,
 							OriginalBidCPM: originalBidCpm,
 							OriginalBidCur: bidResponse.Currency,
+							AdapterCode:    bidderRequest.BidderCoreName,
 						})
 						seatBidMap[bidderName].Currency = currencyAfterAdjustments
 					}
@@ -669,7 +670,7 @@ func (bidder *bidderAdapter) addClientTrace(ctx context.Context) context.Context
 		},
 		// GotConn is called after a successful connection is obtained
 		GotConn: func(info httptrace.GotConnInfo) {
-			connWaitTime := time.Now().Sub(connStart)
+			connWaitTime := time.Since(connStart)
 
 			bidder.me.RecordAdapterConnections(bidder.BidderName, info.Reused, connWaitTime)
 		},
@@ -679,7 +680,7 @@ func (bidder *bidderAdapter) addClientTrace(ctx context.Context) context.Context
 		},
 		// DNSDone is called when a DNS lookup ends.
 		DNSDone: func(info httptrace.DNSDoneInfo) {
-			dnsLookupTime := time.Now().Sub(dnsStart)
+			dnsLookupTime := time.Since(dnsStart)
 
 			bidder.me.RecordDNSTime(dnsLookupTime)
 		},
@@ -689,7 +690,7 @@ func (bidder *bidderAdapter) addClientTrace(ctx context.Context) context.Context
 		},
 
 		TLSHandshakeDone: func(tls.ConnectionState, error) {
-			tlsHandshakeTime := time.Now().Sub(tlsStart)
+			tlsHandshakeTime := time.Since(tlsStart)
 
 			bidder.me.RecordTLSHandshakeTime(tlsHandshakeTime)
 		},
diff --git a/exchange/entities/entities.go b/exchange/entities/entities.go
index 0449f456..c764fe82 100644
--- a/exchange/entities/entities.go
+++ b/exchange/entities/entities.go
@@ -50,4 +50,5 @@ type PbsOrtbBid struct {
 	OriginalBidCPM    float64
 	OriginalBidCur    string
 	TargetBidderCode  string
+	AdapterCode       openrtb_ext.BidderName
 }
diff --git a/exchange/exchange.go b/exchange/exchange.go
index a90a693c..01abe37d 100644
--- a/exchange/exchange.go
+++ b/exchange/exchange.go
@@ -1317,7 +1317,7 @@ func (e *exchange) makeBid(bids []*entities.PbsOrtbBid, auc *auction, returnCrea
 			}
 		}
 
-		if bidExtJSON, err := makeBidExtJSON(bid.Bid.Ext, bidExtPrebid, impExtInfoMap, bid.Bid.ImpID, bid.OriginalBidCPM, bid.OriginalBidCur, adapter); err != nil {
+		if bidExtJSON, err := makeBidExtJSON(bid.Bid.Ext, bidExtPrebid, impExtInfoMap, bid.Bid.ImpID, bid.OriginalBidCPM, bid.OriginalBidCur, bid.AdapterCode); err != nil {
 			errs = append(errs, err)
 		} else {
 			result = append(result, *bid.Bid)
diff --git a/main.go b/main.go
index 1909199d..4ef96b34 100644
--- a/main.go
+++ b/main.go
@@ -2,7 +2,6 @@ package main
 
 import (
 	"flag"
-	"math/rand"
 	"net/http"
 	"path/filepath"
 	"runtime"
@@ -22,7 +21,6 @@ import (
 )
 
 func init() {
-	rand.Seed(time.Now().UnixNano())
 	jsoniter.RegisterExtension(&jsonutil.RawMessageExtension{})
 }
 
@@ -80,7 +78,9 @@ func serve(cfg *config.Configuration) error {
 	}
 
 	corsRouter := router.SupportCORS(r)
-	server.Listen(cfg, router.NoCache{Handler: corsRouter}, router.Admin(currencyConverter, fetchingInterval), r.MetricsEngine)
+	if err := server.Listen(cfg, router.NoCache{Handler: corsRouter}, router.Admin(currencyConverter, fetchingInterval), r.MetricsEngine); err != nil {
+		glog.Fatalf("prebid-server returned an error: %v", err)
+	}
 
 	r.Shutdown()
 	return nil
diff --git a/openrtb_ext/imp_theadx.go b/openrtb_ext/imp_theadx.go
index bee3ac60..9910aecc 100644
--- a/openrtb_ext/imp_theadx.go
+++ b/openrtb_ext/imp_theadx.go
@@ -7,6 +7,6 @@ import (
 type ExtImpTheadx struct {
 	TagID             json.Number `json:"tagid"`
 	InventorySourceID int         `json:"wid,omitempty"`
-	MemberID          int         `json:"pid,optional,omitempty"`
-	PlacementName     string      `json:"pname,optional,omitempty"`
+	MemberID          int         `json:"pid,omitempty"`
+	PlacementName     string      `json:"pname,omitempty"`
 }
diff --git a/openrtb_ext/request_wrapper.go b/openrtb_ext/request_wrapper.go
index 4c4eb9a6..3567625a 100644
--- a/openrtb_ext/request_wrapper.go
+++ b/openrtb_ext/request_wrapper.go
@@ -649,7 +649,6 @@ func (ue *UserExt) SetConsentedProvidersSettingsOut(cpSettings *ConsentedProvide
 
 	ue.consentedProvidersSettingsOut = cpSettings
 	ue.consentedProvidersSettingsOutDirty = true
-	return
 }
 
 func (ue *UserExt) GetPrebid() *ExtUserPrebid {
diff --git a/static/bidder-info/markapp.yaml b/static/bidder-info/markapp.yaml
new file mode 100644
index 00000000..79d8887c
--- /dev/null
+++ b/static/bidder-info/markapp.yaml
@@ -0,0 +1,5 @@
+endpoint: "http://markapp-prebid.smart-hub.io/pbserver/?seat={{.AccountID}}&token={{.SourceId}}"
+aliasOf: "smarthub"
+userSync:
+  supports:
+    - redirect
\ No newline at end of file
diff --git a/static/bidder-info/smarthub.yaml b/static/bidder-info/smarthub.yaml
index dcb65ede..687c6c3f 100644
--- a/static/bidder-info/smarthub.yaml
+++ b/static/bidder-info/smarthub.yaml
@@ -1,4 +1,4 @@
-endpoint: "http://{{.Host}}-prebid.smart-hub.io/?seat={{.AccountID}}&token={{.SourceId}}"
+endpoint: "http://prebid.smart-hub.io/pbserver?partnerName={{.Host}}&seat={{.AccountID}}&token={{.SourceId}}"
 maintainer:
   email: "support@smart-hub.io"
 capabilities:
diff --git a/stored_requests/events/http/http.go b/stored_requests/events/http/http.go
index 6c2145da..0f5dfb9a 100644
--- a/stored_requests/events/http/http.go
+++ b/stored_requests/events/http/http.go
@@ -109,58 +109,55 @@ func (e *HTTPEvents) fetchAll() {
 }
 
 func (e *HTTPEvents) refresh(ticker <-chan time.Time) {
-	for {
-		select {
-		case thisTime := <-ticker:
-			thisTimeInUTC := thisTime.UTC()
-
-			// Parse the endpoint url defined
-			endpointUrl, urlErr := url.Parse(e.Endpoint)
-
-			// Error with url parsing
-			if urlErr != nil {
-				glog.Errorf("Disabling refresh HTTP cache from GET '%s': %v", e.Endpoint, urlErr)
-				return
-			}
+	for thisTime := range ticker {
+		thisTimeInUTC := thisTime.UTC()
 
-			// Parse the url query string
-			urlQuery := endpointUrl.Query()
+		// Parse the endpoint url defined
+		endpointUrl, urlErr := url.Parse(e.Endpoint)
 
-			// See the last-modified query param
-			urlQuery.Set("last-modified", e.lastUpdate.Format(time.RFC3339))
+		// Error with url parsing
+		if urlErr != nil {
+			glog.Errorf("Disabling refresh HTTP cache from GET '%s': %v", e.Endpoint, urlErr)
+			return
+		}
 
-			// Rebuild
-			endpointUrl.RawQuery = urlQuery.Encode()
+		// Parse the url query string
+		urlQuery := endpointUrl.Query()
 
-			// Convert to string
-			endpoint := endpointUrl.String()
+		// See the last-modified query param
+		urlQuery.Set("last-modified", e.lastUpdate.Format(time.RFC3339))
 
-			glog.Infof("Refreshing HTTP cache from GET '%s'", endpoint)
+		// Rebuild
+		endpointUrl.RawQuery = urlQuery.Encode()
 
-			ctx, cancel := e.ctxProducer()
-			resp, err := ctxhttp.Get(ctx, e.client, endpoint)
-			if respObj, ok := e.parse(endpoint, resp, err); ok {
-				invalidations := events.Invalidation{
-					Requests:  extractInvalidations(respObj.StoredRequests),
-					Imps:      extractInvalidations(respObj.StoredImps),
-					Responses: extractInvalidations(respObj.StoredResponses),
-					Accounts:  extractInvalidations(respObj.Accounts),
-				}
-				if len(respObj.StoredRequests) > 0 || len(respObj.StoredImps) > 0 || len(respObj.StoredResponses) > 0 || len(respObj.Accounts) > 0 {
-					e.saves <- events.Save{
-						Requests:  respObj.StoredRequests,
-						Imps:      respObj.StoredImps,
-						Responses: respObj.StoredResponses,
-						Accounts:  respObj.Accounts,
-					}
-				}
-				if len(invalidations.Requests) > 0 || len(invalidations.Imps) > 0 || len(invalidations.Responses) > 0 || len(invalidations.Accounts) > 0 {
-					e.invalidations <- invalidations
+		// Convert to string
+		endpoint := endpointUrl.String()
+
+		glog.Infof("Refreshing HTTP cache from GET '%s'", endpoint)
+
+		ctx, cancel := e.ctxProducer()
+		resp, err := ctxhttp.Get(ctx, e.client, endpoint)
+		if respObj, ok := e.parse(endpoint, resp, err); ok {
+			invalidations := events.Invalidation{
+				Requests:  extractInvalidations(respObj.StoredRequests),
+				Imps:      extractInvalidations(respObj.StoredImps),
+				Responses: extractInvalidations(respObj.StoredResponses),
+				Accounts:  extractInvalidations(respObj.Accounts),
+			}
+			if len(respObj.StoredRequests) > 0 || len(respObj.StoredImps) > 0 || len(respObj.StoredResponses) > 0 || len(respObj.Accounts) > 0 {
+				e.saves <- events.Save{
+					Requests:  respObj.StoredRequests,
+					Imps:      respObj.StoredImps,
+					Responses: respObj.StoredResponses,
+					Accounts:  respObj.Accounts,
 				}
-				e.lastUpdate = thisTimeInUTC
 			}
-			cancel()
+			if len(invalidations.Requests) > 0 || len(invalidations.Imps) > 0 || len(invalidations.Responses) > 0 || len(invalidations.Accounts) > 0 {
+				e.invalidations <- invalidations
+			}
+			e.lastUpdate = thisTimeInUTC
 		}
+		cancel()
 	}
 }
 


Test patch:
diff --git a/adapters/smarthub/smarthub_test.go b/adapters/smarthub/smarthub_test.go
index d231f777..7194421a 100644
--- a/adapters/smarthub/smarthub_test.go
+++ b/adapters/smarthub/smarthub_test.go
@@ -11,7 +11,7 @@ import (
 
 func TestJsonSamples(t *testing.T) {
 	bidder, buildErr := Builder(openrtb_ext.BidderSmartHub, config.Adapter{
-		Endpoint: "http://{{.Host}}-prebid.smart-hub.io/?seat={{.AccountID}}&token={{.SourceId}}"}, config.Server{ExternalUrl: "http://hosturl.com", GvlID: 1, DataCenter: "2"})
+		Endpoint: "http://prebid.smart-hub.io/pbserver?partnerName={{.Host}}&seat={{.AccountID}}&token={{.SourceId}}"}, config.Server{ExternalUrl: "http://hosturl.com", GvlID: 1, DataCenter: "2"})
 
 	assert.NoError(t, buildErr)
 	adapterstest.RunJSONBidderTest(t, "smarthubtest", bidder)
diff --git a/adapters/smarthub/smarthubtest/exemplary/banner.json b/adapters/smarthub/smarthubtest/exemplary/banner.json
index 3f951204..66eef5e6 100644
--- a/adapters/smarthub/smarthubtest/exemplary/banner.json
+++ b/adapters/smarthub/smarthubtest/exemplary/banner.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/exemplary/native.json b/adapters/smarthub/smarthubtest/exemplary/native.json
index 49091cc7..3360ac05 100644
--- a/adapters/smarthub/smarthubtest/exemplary/native.json
+++ b/adapters/smarthub/smarthubtest/exemplary/native.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/exemplary/video.json b/adapters/smarthub/smarthubtest/exemplary/video.json
index 8fb8f8b6..30134dce 100644
--- a/adapters/smarthub/smarthubtest/exemplary/video.json
+++ b/adapters/smarthub/smarthubtest/exemplary/video.json
@@ -66,7 +66,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/bad-response.json b/adapters/smarthub/smarthubtest/supplemental/bad-response.json
index 93f97296..09e5d9ab 100644
--- a/adapters/smarthub/smarthubtest/supplemental/bad-response.json
+++ b/adapters/smarthub/smarthubtest/supplemental/bad-response.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/empty-seatbid-0-bid.json b/adapters/smarthub/smarthubtest/supplemental/empty-seatbid-0-bid.json
index 0f527c39..c8cbc9ef 100644
--- a/adapters/smarthub/smarthubtest/supplemental/empty-seatbid-0-bid.json
+++ b/adapters/smarthub/smarthubtest/supplemental/empty-seatbid-0-bid.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/empty-seatbid.json b/adapters/smarthub/smarthubtest/supplemental/empty-seatbid.json
index 6c92c3f6..1af890de 100644
--- a/adapters/smarthub/smarthubtest/supplemental/empty-seatbid.json
+++ b/adapters/smarthub/smarthubtest/supplemental/empty-seatbid.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/status-204.json b/adapters/smarthub/smarthubtest/supplemental/status-204.json
index 31efa867..56922fc6 100644
--- a/adapters/smarthub/smarthubtest/supplemental/status-204.json
+++ b/adapters/smarthub/smarthubtest/supplemental/status-204.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/status-400.json b/adapters/smarthub/smarthubtest/supplemental/status-400.json
index d0d8aacf..5ef22853 100644
--- a/adapters/smarthub/smarthubtest/supplemental/status-400.json
+++ b/adapters/smarthub/smarthubtest/supplemental/status-400.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/status-503.json b/adapters/smarthub/smarthubtest/supplemental/status-503.json
index f09eb93c..140b8e99 100644
--- a/adapters/smarthub/smarthubtest/supplemental/status-503.json
+++ b/adapters/smarthub/smarthubtest/supplemental/status-503.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/unexpected-status.json b/adapters/smarthub/smarthubtest/supplemental/unexpected-status.json
index 4f2f35e2..e05c7ded 100644
--- a/adapters/smarthub/smarthubtest/supplemental/unexpected-status.json
+++ b/adapters/smarthub/smarthubtest/supplemental/unexpected-status.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/smarthub/smarthubtest/supplemental/wrong-bidtype.json b/adapters/smarthub/smarthubtest/supplemental/wrong-bidtype.json
index 81a71666..680dd051 100644
--- a/adapters/smarthub/smarthubtest/supplemental/wrong-bidtype.json
+++ b/adapters/smarthub/smarthubtest/supplemental/wrong-bidtype.json
@@ -46,7 +46,7 @@
   "httpCalls": [
     {
       "expectedRequest": {
-        "uri": "http://partnertest-prebid.smart-hub.io/?seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
+        "uri": "http://prebid.smart-hub.io/pbserver?partnerName=partnertest&seat=9Q20EdGxzgWdfPYShScl&token=zpl5iB5Ugpe9ofVTzi44WzfjZZYq1yer",
         "body": {
           "id": "id",
           "imp": [
diff --git a/adapters/tappx/tappx_test.go b/adapters/tappx/tappx_test.go
index b3c6f3fe..803dfa5b 100644
--- a/adapters/tappx/tappx_test.go
+++ b/adapters/tappx/tappx_test.go
@@ -8,6 +8,7 @@ import (
 	"github.com/prebid/prebid-server/v2/config"
 	"github.com/prebid/prebid-server/v2/openrtb_ext"
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestJsonSamples(t *testing.T) {
@@ -38,13 +39,13 @@ func TestTsValue(t *testing.T) {
 
 	bidderTappx := bidder.(*TappxAdapter)
 
-	var test int
-	test = 0
+	test := 0
 	var tappxExt openrtb_ext.ExtImpTappx
 	tappxExt.Endpoint = "DUMMYENDPOINT"
 	tappxExt.TappxKey = "dummy-tappx-key"
 
 	url, err := bidderTappx.buildEndpointURL(&tappxExt, test)
+	require.NoError(t, err, "buildEndpointURL")
 
 	match, err := regexp.MatchString(`http://ssp\.api\.tappx\.com/rtb/v2/DUMMYENDPOINT\?tappxkey=dummy-tappx-key&ts=[0-9]{13}&type_cnn=prebid&v=1\.5`, url)
 	if err != nil {
diff --git a/endpoints/cookie_sync_test.go b/endpoints/cookie_sync_test.go
index 35d7dd4b..edd1958f 100644
--- a/endpoints/cookie_sync_test.go
+++ b/endpoints/cookie_sync_test.go
@@ -2221,8 +2221,8 @@ type FakeAccountsFetcher struct {
 	AccountData map[string]json.RawMessage
 }
 
-func (f FakeAccountsFetcher) FetchAccount(ctx context.Context, defaultAccountJSON json.RawMessage, accountID string) (json.RawMessage, []error) {
-	defaultAccountJSON = json.RawMessage(`{"disabled":false}`)
+func (f FakeAccountsFetcher) FetchAccount(ctx context.Context, _ json.RawMessage, accountID string) (json.RawMessage, []error) {
+	defaultAccountJSON := json.RawMessage(`{"disabled":false}`)
 
 	if accountID == metrics.PublisherUnknown {
 		return defaultAccountJSON, nil
diff --git a/endpoints/openrtb2/auction_test.go b/endpoints/openrtb2/auction_test.go
index ee82ffdf..fbeddf46 100644
--- a/endpoints/openrtb2/auction_test.go
+++ b/endpoints/openrtb2/auction_test.go
@@ -72,9 +72,13 @@ func TestJsonSampleRequests(t *testing.T) {
 			"invalid-native",
 		},
 		{
-			"Makes sure we handle (default) aliased bidders properly",
+			"Makes sure we handle aliased bidders properly",
 			"aliased",
 		},
+		{
+			"Makes sure we handle alternate bidder codes properly",
+			"alternate-bidder-code",
+		},
 		{
 			"Asserts we return 500s on requests referencing accounts with malformed configs.",
 			"account-malformed",
diff --git a/endpoints/openrtb2/test_utils.go b/endpoints/openrtb2/test_utils.go
index 6fedb73c..66eb64fa 100644
--- a/endpoints/openrtb2/test_utils.go
+++ b/endpoints/openrtb2/test_utils.go
@@ -941,6 +941,7 @@ type mockBidderHandler struct {
 	Currency   string  `json:"currency"`
 	Price      float64 `json:"price"`
 	DealID     string  `json:"dealid"`
+	Seat       string  `json:"seat"`
 }
 
 func (b mockBidderHandler) bid(w http.ResponseWriter, req *http.Request) {
@@ -999,6 +1000,7 @@ func (b mockBidderHandler) bid(w http.ResponseWriter, req *http.Request) {
 type mockAdapter struct {
 	mockServerURL string
 	Server        config.Server
+	seat          string
 }
 
 func Builder(bidderName openrtb_ext.BidderName, config config.Adapter, server config.Server) (adapters.Bidder, error) {
@@ -1064,6 +1066,9 @@ func (a mockAdapter) MakeBids(request *openrtb2.BidRequest, requestData *adapter
 						Bid:     &seatBid.Bid[i],
 						BidType: openrtb_ext.BidTypeBanner,
 					}
+					if len(a.seat) > 0 {
+						b.Seat = openrtb_ext.BidderName(a.seat)
+					}
 					rv.Bids = append(rv.Bids, b)
 				}
 			}
@@ -1091,6 +1096,24 @@ func getBidderInfos(disabledAdapters []string, biddersNames []openrtb_ext.Bidder
 	return biddersInfos
 }
 
+func enableBidders(bidderInfos config.BidderInfos) {
+	for name, bidderInfo := range bidderInfos {
+		if bidderInfo.Disabled {
+			bidderInfo.Disabled = false
+			bidderInfos[name] = bidderInfo
+		}
+	}
+}
+
+func disableBidders(disabledAdapters []string, bidderInfos config.BidderInfos) {
+	for _, disabledAdapter := range disabledAdapters {
+		if bidderInfo, ok := bidderInfos[disabledAdapter]; ok {
+			bidderInfo.Disabled = true
+			bidderInfos[disabledAdapter] = bidderInfo
+		}
+	}
+}
+
 func newBidderInfo(isDisabled bool) config.BidderInfo {
 	return config.BidderInfo{
 		Disabled: isDisabled,
@@ -1179,7 +1202,7 @@ func buildTestExchange(testCfg *testConfigValues, adapterMap map[openrtb_ext.Bid
 	}
 	for _, mockBidder := range testCfg.MockBidders {
 		bidServer := httptest.NewServer(http.HandlerFunc(mockBidder.bid))
-		bidderAdapter := mockAdapter{mockServerURL: bidServer.URL}
+		bidderAdapter := mockAdapter{mockServerURL: bidServer.URL, seat: mockBidder.Seat}
 		bidderName := openrtb_ext.BidderName(mockBidder.BidderName)
 
 		adapterMap[bidderName] = exchange.AdaptBidder(bidderAdapter, bidServer.Client(), &config.Configuration{}, &metricsConfig.NilMetricsEngine{}, bidderName, nil, "")
@@ -1231,7 +1254,9 @@ func buildTestEndpoint(test testCase, cfg *config.Configuration) (httprouter.Han
 		paramValidator = mockBidderParamValidator{}
 	}
 
-	bidderInfos := getBidderInfos(test.Config.DisabledAdapters, openrtb_ext.CoreBidderNames())
+	bidderInfos, _ := config.LoadBidderInfoFromDisk("../../static/bidder-info")
+	enableBidders(bidderInfos)
+	disableBidders(test.Config.DisabledAdapters, bidderInfos)
 	bidderMap := exchange.GetActiveBidders(bidderInfos)
 	disabledBidders := exchange.GetDisabledBidderWarningMessages(bidderInfos)
 	met := &metricsConfig.NilMetricsEngine{}
@@ -1267,8 +1292,9 @@ func buildTestEndpoint(test testCase, cfg *config.Configuration) (httprouter.Han
 
 	accountFetcher := &mockAccountFetcher{
 		data: map[string]json.RawMessage{
-			"malformed_acct": json.RawMessage(`{"disabled":"invalid type"}`),
-			"disabled_acct":  json.RawMessage(`{"disabled":true}`),
+			"malformed_acct":             json.RawMessage(`{"disabled":"invalid type"}`),
+			"disabled_acct":              json.RawMessage(`{"disabled":true}`),
+			"alternate_bidder_code_acct": json.RawMessage(`{"disabled":false,"alternatebiddercodes":{"enabled":true,"bidders":{"appnexus":{"enabled":true,"allowedbiddercodes":["groupm"]}}}}`),
 		},
 	}
 
diff --git a/exchange/bidder_test.go b/exchange/bidder_test.go
index 9f092b7d..76ffe95d 100644
--- a/exchange/bidder_test.go
+++ b/exchange/bidder_test.go
@@ -2414,10 +2414,7 @@ type goodMultiHTTPCallsBidder struct {
 func (bidder *goodMultiHTTPCallsBidder) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) {
 	bidder.bidRequest = request
 	response := make([]*adapters.RequestData, len(bidder.httpRequest))
-
-	for i, r := range bidder.httpRequest {
-		response[i] = r
-	}
+	copy(response, bidder.httpRequest)
 	return response, nil
 }
 
diff --git a/exchange/exchange_test.go b/exchange/exchange_test.go
index ffc338bf..5849dbc3 100644
--- a/exchange/exchange_test.go
+++ b/exchange/exchange_test.go
@@ -1638,7 +1638,7 @@ func TestBidResponseCurrency(t *testing.T) {
 					Price: 9.517803,
 					W:     300,
 					H:     250,
-					Ext:   json.RawMessage(`{"origbidcpm":9.517803,"prebid":{"meta":{"adaptercode":"appnexus"},"type":"banner"}}`),
+					Ext:   json.RawMessage(`{"origbidcpm":9.517803,"prebid":{"meta":{},"type":"banner"}}`),
 				},
 			},
 		},
@@ -1768,7 +1768,7 @@ func TestBidResponseImpExtInfo(t *testing.T) {
 		H:     250,
 		Ext:   nil,
 	}
-	aPbsOrtbBidArr := []*entities.PbsOrtbBid{{Bid: sampleBid, BidType: openrtb_ext.BidTypeVideo}}
+	aPbsOrtbBidArr := []*entities.PbsOrtbBid{{Bid: sampleBid, BidType: openrtb_ext.BidTypeVideo, AdapterCode: openrtb_ext.BidderAppnexus}}
 
 	adapterBids := map[openrtb_ext.BidderName]*entities.PbsOrtbSeatBid{
 		openrtb_ext.BidderName("appnexus"): {
@@ -4144,7 +4144,7 @@ func TestStoredAuctionResponses(t *testing.T) {
 		SeatBid: []openrtb2.SeatBid{
 			{
 				Bid: []openrtb2.Bid{
-					{ID: "bid_id", ImpID: "impression-id", Ext: json.RawMessage(`{"origbidcpm":0,"prebid":{"meta":{"adaptercode":"appnexus"},"type":"video"}}`)},
+					{ID: "bid_id", ImpID: "impression-id", Ext: json.RawMessage(`{"origbidcpm":0,"prebid":{"meta":{},"type":"video"}}`)},
 				},
 				Seat: "appnexus",
 			},
@@ -5231,6 +5231,7 @@ func TestGetAllBids(t *testing.T) {
 									ID: "1",
 								},
 								OriginalBidCur: "USD",
+								AdapterCode:    openrtb_ext.BidderPubmatic,
 							},
 						},
 						Currency:  "USD",
@@ -5299,6 +5300,7 @@ func TestGetAllBids(t *testing.T) {
 									ID: "1",
 								},
 								OriginalBidCur: "USD",
+								AdapterCode:    openrtb_ext.BidderPubmatic,
 							},
 						},
 						Currency:  "USD",
@@ -5312,6 +5314,7 @@ func TestGetAllBids(t *testing.T) {
 									ID: "2",
 								},
 								OriginalBidCur: "USD",
+								AdapterCode:    openrtb_ext.BidderPubmatic,
 							},
 						},
 						Currency:  "USD",
@@ -5379,6 +5382,7 @@ func TestGetAllBids(t *testing.T) {
 									ID: "2",
 								},
 								OriginalBidCur: "USD",
+								AdapterCode:    openrtb_ext.BidderPubmatic,
 							},
 						},
 						Currency:  "USD",
diff --git a/exchange/exchangetest/alternate-bidder-codes.json b/exchange/exchangetest/alternate-bidder-codes.json
index c2e6f95a..a2272488 100644
--- a/exchange/exchangetest/alternate-bidder-codes.json
+++ b/exchange/exchangetest/alternate-bidder-codes.json
@@ -95,9 +95,7 @@
                   "price": 0.71
                 },
                 "bidType": "video",
-                "bidMeta": {
-                  "adaptercode": "pubmatic"
-                }
+                "bidMeta": {}
               }
             ],
             "seat": "pubmatic"
@@ -111,9 +109,7 @@
                   "price": 0.51
                 },
                 "bidType": "video",
-                "bidMeta": {
-                  "adaptercode": "pubmatic"
-                }
+                "bidMeta": {}
               }
             ],
             "seat": "groupm"
@@ -164,9 +160,7 @@
                   "price": 0.3
                 },
                 "bidType": "banner",
-                "bidMeta": {
-                  "adaptercode": "appnexus"
-                }
+                "bidMeta": {}
               }
             ],
             "seat": "appnexus"
@@ -181,7 +175,6 @@
                 },
                 "bidType": "banner",
                 "bidMeta": {
-                  "adaptercode": "appnexus"
                 }
               }
             ],
@@ -205,9 +198,7 @@
               "ext": {
                 "origbidcpm": 0.51,
                 "prebid": {
-                  "meta": {
-                    "adaptercode": "groupm"
-                  },
+                  "meta": {},
                   "type": "video"
                 }
               }
@@ -220,7 +211,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "groupm"
                   },
                   "type": "banner"
                 }
@@ -239,7 +229,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "pubmatic"
                   },
                   "type": "video"
                 }
@@ -258,7 +247,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner"
                 }
diff --git a/exchange/exchangetest/append-bidder-names.json b/exchange/exchangetest/append-bidder-names.json
index 14f1181e..bc453213 100644
--- a/exchange/exchangetest/append-bidder-names.json
+++ b/exchange/exchangetest/append-bidder-names.json
@@ -138,7 +138,6 @@
                                 "prebid": {
                                     "type": "video",
                                     "meta": {
-                                        "adaptercode":"appnexus"
                                     },
                                     "targeting": {
                                         "hb_bidder": "appnexus",
@@ -166,7 +165,6 @@
                                 "origbidcpm": 0.6,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"appnexus"
                                     },
                                     "targeting": {
                                         "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/bid-consolidation-test.json b/exchange/exchangetest/bid-consolidation-test.json
index 61dbae5e..5222b680 100644
--- a/exchange/exchangetest/bid-consolidation-test.json
+++ b/exchange/exchangetest/bid-consolidation-test.json
@@ -128,7 +128,6 @@
                 "origbidcpm": 0.4,
                 "prebid": {
                   "meta": {
-                    "adaptercode":"rubicon"
                   },
                   "type": "video"
                 }
@@ -150,7 +149,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode":"appnexus"
                   },
                   "type": "video"
                 }
@@ -167,7 +165,6 @@
                 "origbidcpm": 0.6,
                 "prebid": {
                   "meta": {
-                    "adaptercode":"appnexus"
                   },
                   "type": "video"
                 }
diff --git a/exchange/exchangetest/bid-ext-prebid-collision.json b/exchange/exchangetest/bid-ext-prebid-collision.json
index f6a2a065..e38637a4 100644
--- a/exchange/exchangetest/bid-ext-prebid-collision.json
+++ b/exchange/exchangetest/bid-ext-prebid-collision.json
@@ -100,7 +100,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/bid-ext.json b/exchange/exchangetest/bid-ext.json
index f2416d6f..1d66e7d9 100644
--- a/exchange/exchangetest/bid-ext.json
+++ b/exchange/exchangetest/bid-ext.json
@@ -97,7 +97,6 @@
                                 "someField": "someValue",
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/bid_response_validation_enforce_one_bid_rejected.json b/exchange/exchangetest/bid_response_validation_enforce_one_bid_rejected.json
index 90484317..8c5d22e2 100644
--- a/exchange/exchangetest/bid_response_validation_enforce_one_bid_rejected.json
+++ b/exchange/exchangetest/bid_response_validation_enforce_one_bid_rejected.json
@@ -174,7 +174,6 @@
                                 "origbidcpm": 0.4,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"rubicon"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/bid_response_validation_warn_creative.json b/exchange/exchangetest/bid_response_validation_warn_creative.json
index 47546683..8d30c18c 100644
--- a/exchange/exchangetest/bid_response_validation_warn_creative.json
+++ b/exchange/exchangetest/bid_response_validation_warn_creative.json
@@ -170,7 +170,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"appnexus"
                                     },
                                     "type": "banner"
                                 }
@@ -192,7 +191,6 @@
                                 "origbidcpm": 0.4,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"rubicon"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/bid_response_validation_warn_secure.json b/exchange/exchangetest/bid_response_validation_warn_secure.json
index 3c06f695..9d2af597 100644
--- a/exchange/exchangetest/bid_response_validation_warn_secure.json
+++ b/exchange/exchangetest/bid_response_validation_warn_secure.json
@@ -173,7 +173,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"appnexus"
                                     },
                                     "type": "banner"
                                 }
@@ -196,7 +195,6 @@
                                 "origbidcpm": 0.4,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode":"rubicon"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/debuglog_disabled.json b/exchange/exchangetest/debuglog_disabled.json
index 5c0e029c..ce0669cf 100644
--- a/exchange/exchangetest/debuglog_disabled.json
+++ b/exchange/exchangetest/debuglog_disabled.json
@@ -146,7 +146,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -175,7 +174,6 @@
                 "origbidcpm": 0.6,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "targeting": {
                     "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/debuglog_enabled.json b/exchange/exchangetest/debuglog_enabled.json
index 11a63f5d..71a0bc06 100644
--- a/exchange/exchangetest/debuglog_enabled.json
+++ b/exchange/exchangetest/debuglog_enabled.json
@@ -148,7 +148,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -177,7 +176,6 @@
                 "origbidcpm": 0.6,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "targeting": {
                     "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/dsa-default-ignored.json b/exchange/exchangetest/dsa-default-ignored.json
index d70009e5..358bc6d1 100644
--- a/exchange/exchangetest/dsa-default-ignored.json
+++ b/exchange/exchangetest/dsa-default-ignored.json
@@ -126,7 +126,6 @@
                         "origbidcpm": 0.3,
                         "prebid": {
                             "meta": {
-                                "adaptercode": "appnexus"
                             },
                             "type": "video"
                         },
diff --git a/exchange/exchangetest/dsa-default.json b/exchange/exchangetest/dsa-default.json
index efac1441..cd8581e5 100644
--- a/exchange/exchangetest/dsa-default.json
+++ b/exchange/exchangetest/dsa-default.json
@@ -182,7 +182,6 @@
                         "origbidcpm": 0.3,
                         "prebid": {
                             "meta": {
-                                "adaptercode": "appnexus"
                             },
                             "type": "video"
                         },
diff --git a/exchange/exchangetest/dsa-not-required.json b/exchange/exchangetest/dsa-not-required.json
index f2a1f821..b3f75317 100644
--- a/exchange/exchangetest/dsa-not-required.json
+++ b/exchange/exchangetest/dsa-not-required.json
@@ -122,7 +122,6 @@
                         "origbidcpm": 0.3,
                         "prebid": {
                             "meta": {
-                                "adaptercode": "appnexus"
                             },
                             "type": "video"
                         }
diff --git a/exchange/exchangetest/dsa-required.json b/exchange/exchangetest/dsa-required.json
index d25efdc1..a3bccafc 100644
--- a/exchange/exchangetest/dsa-required.json
+++ b/exchange/exchangetest/dsa-required.json
@@ -195,7 +195,6 @@
                         "origbidcpm": 0.3,
                         "prebid": {
                             "meta": {
-                                "adaptercode": "appnexus"
                             },
                             "type": "video"
                         },
diff --git a/exchange/exchangetest/eidpermissions-allowed-alias.json b/exchange/exchangetest/eidpermissions-allowed-alias.json
index 3dfe4415..88692772 100644
--- a/exchange/exchangetest/eidpermissions-allowed-alias.json
+++ b/exchange/exchangetest/eidpermissions-allowed-alias.json
@@ -136,7 +136,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "foo"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/eidpermissions-allowed-case-insensitive.json b/exchange/exchangetest/eidpermissions-allowed-case-insensitive.json
index 459bb015..70d3d0be 100644
--- a/exchange/exchangetest/eidpermissions-allowed-case-insensitive.json
+++ b/exchange/exchangetest/eidpermissions-allowed-case-insensitive.json
@@ -133,7 +133,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/eidpermissions-allowed.json b/exchange/exchangetest/eidpermissions-allowed.json
index 06b2d184..045e1246 100644
--- a/exchange/exchangetest/eidpermissions-allowed.json
+++ b/exchange/exchangetest/eidpermissions-allowed.json
@@ -133,7 +133,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/eidpermissions-denied.json b/exchange/exchangetest/eidpermissions-denied.json
index 72431595..eb3e216e 100644
--- a/exchange/exchangetest/eidpermissions-denied.json
+++ b/exchange/exchangetest/eidpermissions-denied.json
@@ -120,7 +120,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/events-bid-account-off-request-off.json b/exchange/exchangetest/events-bid-account-off-request-off.json
index 4ae1881b..48906439 100644
--- a/exchange/exchangetest/events-bid-account-off-request-off.json
+++ b/exchange/exchangetest/events-bid-account-off-request-off.json
@@ -80,7 +80,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner"
                 }
@@ -97,7 +96,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner"
                 }
diff --git a/exchange/exchangetest/events-bid-account-off-request-on.json b/exchange/exchangetest/events-bid-account-off-request-on.json
index 20606002..9166bb43 100644
--- a/exchange/exchangetest/events-bid-account-off-request-on.json
+++ b/exchange/exchangetest/events-bid-account-off-request-on.json
@@ -83,7 +83,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner",
                   "events": {
@@ -104,7 +103,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner",
                   "events": {
diff --git a/exchange/exchangetest/events-bid-account-on-request-off.json b/exchange/exchangetest/events-bid-account-on-request-off.json
index 0447a224..536fdb69 100644
--- a/exchange/exchangetest/events-bid-account-on-request-off.json
+++ b/exchange/exchangetest/events-bid-account-on-request-off.json
@@ -82,7 +82,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner",
                   "events": {
@@ -103,7 +102,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner",
                   "events": {
diff --git a/exchange/exchangetest/events-vast-account-off-request-off.json b/exchange/exchangetest/events-vast-account-off-request-off.json
index 3792c0ba..9f2e4fe0 100644
--- a/exchange/exchangetest/events-vast-account-off-request-off.json
+++ b/exchange/exchangetest/events-vast-account-off-request-off.json
@@ -126,7 +126,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video"
                 }
@@ -149,7 +148,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -175,7 +173,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video"
                 }
diff --git a/exchange/exchangetest/events-vast-account-off-request-on.json b/exchange/exchangetest/events-vast-account-off-request-on.json
index 93ec6f35..560f4f0e 100644
--- a/exchange/exchangetest/events-vast-account-off-request-on.json
+++ b/exchange/exchangetest/events-vast-account-off-request-on.json
@@ -132,7 +132,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "bidid": "bid-audienceNetwork-1",
                   "type": "video"
@@ -157,7 +156,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "bidid": "bid-appnexus-1",
                   "type": "video",
@@ -185,7 +183,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "bidid": "bid-appnexus-2",
                   "type": "video"
diff --git a/exchange/exchangetest/events-vast-account-on-request-off.json b/exchange/exchangetest/events-vast-account-on-request-off.json
index 38f407d5..882f1e8c 100644
--- a/exchange/exchangetest/events-vast-account-on-request-off.json
+++ b/exchange/exchangetest/events-vast-account-on-request-off.json
@@ -127,7 +127,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video"
                 }
@@ -151,7 +150,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -178,7 +176,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video"
                 }
diff --git a/exchange/exchangetest/extra-bids-with-aliases-adaptercode.json b/exchange/exchangetest/extra-bids-with-aliases-adaptercode.json
index 8da9a290..75425397 100644
--- a/exchange/exchangetest/extra-bids-with-aliases-adaptercode.json
+++ b/exchange/exchangetest/extra-bids-with-aliases-adaptercode.json
@@ -81,7 +81,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pmbidder"
                 }
               },
               {
@@ -95,7 +94,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pmbidder"
                 }
               },
               {
@@ -109,7 +107,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pmbidder"
                 }
               }
             ],
@@ -128,7 +125,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pmbidder"
                 }
               }
             ],
@@ -156,7 +152,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "pmbidder"
                   },
                   "type": "video",
                   "targeting": {
@@ -185,7 +180,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "groupm"
                   },
                   "type": "video",
                   "targeting": {
@@ -214,7 +208,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "groupm"
                   },
                   "type": "video"
                 }
@@ -231,7 +224,6 @@
                 "origbidcpm": 0.61,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "groupm"
                   },
                   "type": "video",
                   "targeting": {
diff --git a/exchange/exchangetest/extra-bids.json b/exchange/exchangetest/extra-bids.json
index edf2e60b..e1682618 100644
--- a/exchange/exchangetest/extra-bids.json
+++ b/exchange/exchangetest/extra-bids.json
@@ -146,7 +146,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -160,7 +159,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -174,7 +172,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             }
                         ],
@@ -193,7 +190,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             }
                         ],
@@ -262,7 +258,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             }
                         ],
@@ -281,7 +276,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             }
                         ],
@@ -309,7 +303,6 @@
                                 "origbidcpm": 0.51,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "groupm"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -333,7 +326,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "groupm"
                                     },
                                     "type": "banner"
                                 }
@@ -355,7 +347,6 @@
                                 "origbidcpm": 0.71,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -384,7 +375,6 @@
                                 "origbidcpm": 0.21,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video"
                                 }
@@ -401,7 +391,6 @@
                                 "origbidcpm": 0.61,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -435,7 +424,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner",
                                     "targeting": {
diff --git a/exchange/exchangetest/firstpartydata-amp-imp-ext-one-prebid-bidder.json b/exchange/exchangetest/firstpartydata-amp-imp-ext-one-prebid-bidder.json
index 22e0fb82..f1119b22 100644
--- a/exchange/exchangetest/firstpartydata-amp-imp-ext-one-prebid-bidder.json
+++ b/exchange/exchangetest/firstpartydata-amp-imp-ext-one-prebid-bidder.json
@@ -122,7 +122,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/firstpartydata-imp-ext-multiple-prebid-bidders.json b/exchange/exchangetest/firstpartydata-imp-ext-multiple-prebid-bidders.json
index 37d5ade5..edeb0423 100644
--- a/exchange/exchangetest/firstpartydata-imp-ext-multiple-prebid-bidders.json
+++ b/exchange/exchangetest/firstpartydata-imp-ext-multiple-prebid-bidders.json
@@ -189,7 +189,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner"
                                 }
@@ -211,7 +210,6 @@
                                 "origbidcpm": 0.4,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "rubicon"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/firstpartydata-imp-ext-one-prebid-bidder.json b/exchange/exchangetest/firstpartydata-imp-ext-one-prebid-bidder.json
index 1b6b2043..ef0ad225 100644
--- a/exchange/exchangetest/firstpartydata-imp-ext-one-prebid-bidder.json
+++ b/exchange/exchangetest/firstpartydata-imp-ext-one-prebid-bidder.json
@@ -122,7 +122,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/fledge-with-bids.json b/exchange/exchangetest/fledge-with-bids.json
index df59c0d2..030467f6 100644
--- a/exchange/exchangetest/fledge-with-bids.json
+++ b/exchange/exchangetest/fledge-with-bids.json
@@ -115,7 +115,6 @@
                                 "someField": "someValue",
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "openx"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/floors_enforcement.json b/exchange/exchangetest/floors_enforcement.json
index f1495e7c..d280c412 100644
--- a/exchange/exchangetest/floors_enforcement.json
+++ b/exchange/exchangetest/floors_enforcement.json
@@ -137,7 +137,6 @@
                   "origbidcpm": 12,
                   "prebid": {
                     "meta": {
-                      "adaptercode": "appnexus"
                     },
                     "floors": {
                       "floorCurrency": "USD",
diff --git a/exchange/exchangetest/generate-bid-id-error.json b/exchange/exchangetest/generate-bid-id-error.json
index 9c13ef38..c38d0c97 100644
--- a/exchange/exchangetest/generate-bid-id-error.json
+++ b/exchange/exchangetest/generate-bid-id-error.json
@@ -110,7 +110,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
diff --git a/exchange/exchangetest/generate-bid-id-many.json b/exchange/exchangetest/generate-bid-id-many.json
index 4c6a18ab..8a55d197 100644
--- a/exchange/exchangetest/generate-bid-id-many.json
+++ b/exchange/exchangetest/generate-bid-id-many.json
@@ -98,7 +98,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "bidid": "bid-appnexus-1",
                   "type": "video"
@@ -119,7 +118,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "bidid": "bid-appnexus-2",
                   "type": "video"
diff --git a/exchange/exchangetest/generate-bid-id-one.json b/exchange/exchangetest/generate-bid-id-one.json
index 7d4169d6..e14e5db2 100644
--- a/exchange/exchangetest/generate-bid-id-one.json
+++ b/exchange/exchangetest/generate-bid-id-one.json
@@ -81,7 +81,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "bidid": "bid-appnexus-1",
                   "type": "video"
diff --git a/exchange/exchangetest/include-brand-category.json b/exchange/exchangetest/include-brand-category.json
index c0904448..74950598 100644
--- a/exchange/exchangetest/include-brand-category.json
+++ b/exchange/exchangetest/include-brand-category.json
@@ -135,7 +135,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -164,7 +163,6 @@
                 "origbidcpm": 0.6,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "targeting": {
                     "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/mediatypepricegranularity-banner-video-native.json b/exchange/exchangetest/mediatypepricegranularity-banner-video-native.json
index 4e532d1e..10dacd22 100644
--- a/exchange/exchangetest/mediatypepricegranularity-banner-video-native.json
+++ b/exchange/exchangetest/mediatypepricegranularity-banner-video-native.json
@@ -197,7 +197,6 @@
                                 "origbidcpm": 15,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner",
                                     "targeting": {
@@ -227,7 +226,6 @@
                                 "origbidcpm": 18,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "targeting": {
                                         "hb_bidder": "appnexus",
@@ -262,7 +260,6 @@
                                 "origbidcpm": 29,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "targeting": {
                                         "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/mediatypepricegranularity-native.json b/exchange/exchangetest/mediatypepricegranularity-native.json
index e454b500..a7a04b67 100644
--- a/exchange/exchangetest/mediatypepricegranularity-native.json
+++ b/exchange/exchangetest/mediatypepricegranularity-native.json
@@ -165,7 +165,6 @@
                                 "origbidcpm": 24,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "native",
                                     "targeting": {
@@ -195,7 +194,6 @@
                                 "origbidcpm": 29,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "targeting": {
                                         "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/multi-bid-default-bid-limit.json b/exchange/exchangetest/multi-bid-default-bid-limit.json
index 45e3c673..d94fc4a2 100644
--- a/exchange/exchangetest/multi-bid-default-bid-limit.json
+++ b/exchange/exchangetest/multi-bid-default-bid-limit.json
@@ -267,7 +267,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             },
                             {
@@ -295,7 +294,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             },
                             {
@@ -323,7 +321,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             }
                         ],
@@ -471,7 +468,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "rubicon"
                                 }
                             },
                             {
@@ -498,7 +494,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "rubicon"
                                 }
                             },
                             {
@@ -525,7 +520,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "rubicon"
                                 }
                             }
                         ],
@@ -552,7 +546,6 @@
                             "ext": {
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "rubicon"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -593,7 +586,6 @@
                             "ext": {
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "rubicon"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -638,7 +630,6 @@
                             "ext": {
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -674,7 +665,6 @@
                             "ext": {
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 },
diff --git a/exchange/exchangetest/multi-bids-error.json b/exchange/exchangetest/multi-bids-error.json
index fc96b5ea..35ad1d93 100644
--- a/exchange/exchangetest/multi-bids-error.json
+++ b/exchange/exchangetest/multi-bids-error.json
@@ -180,7 +180,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -194,7 +193,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -208,7 +206,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -222,7 +219,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             }
                         ],
@@ -283,7 +279,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             },
                             {
@@ -297,7 +292,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             }
                         ],
@@ -325,7 +319,6 @@
                                 "origbidcpm": 0.71,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -355,7 +348,6 @@
                                 "origbidcpm": 0.21,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -380,7 +372,6 @@
                                 "origbidcpm": 0.61,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -410,7 +401,6 @@
                                 "origbidcpm": 0.51,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -440,7 +430,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner",
                                     "targeting": {
@@ -464,7 +453,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/multi-bids-mixed-case.json b/exchange/exchangetest/multi-bids-mixed-case.json
index 44630b30..3ecdb123 100644
--- a/exchange/exchangetest/multi-bids-mixed-case.json
+++ b/exchange/exchangetest/multi-bids-mixed-case.json
@@ -146,7 +146,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pubmatic"
                 }
               },
               {
@@ -160,7 +159,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pubmatic"
                 }
               },
               {
@@ -174,7 +172,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pubmatic"
                 }
               },
               {
@@ -188,7 +185,6 @@
                 },
                 "bidType": "video",
                 "bidMeta": {
-                  "adaptercode": "pubmatic"
                 }
               }
             ],
@@ -261,7 +257,6 @@
                 },
                 "bidType": "banner",
                 "bidMeta": {
-                  "adaptercode": "appnexus"
                 }
               },
               {
@@ -275,7 +270,6 @@
                 },
                 "bidType": "banner",
                 "bidMeta": {
-                  "adaptercode": "appnexus"
                 }
               }
             ],
@@ -303,7 +297,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "pubmatic"
                   },
                   "type": "video",
                   "targeting": {
@@ -333,7 +326,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "pubmatic"
                   },
                   "type": "video"
                 }
@@ -350,7 +342,6 @@
                 "origbidcpm": 0.61,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "pubmatic"
                   },
                   "type": "video",
                   "targeting": {
@@ -380,7 +371,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "pubmatic"
                   },
                   "type": "video",
                   "targeting": {
@@ -410,7 +400,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "targetbiddercode": "appnexus",
                   "type": "banner",
@@ -435,7 +424,6 @@
                 "origbidcpm": 0.3,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner"
                 }
diff --git a/exchange/exchangetest/multi-bids-with-extra-bids.json b/exchange/exchangetest/multi-bids-with-extra-bids.json
index 92a7ff0a..4c87eb91 100644
--- a/exchange/exchangetest/multi-bids-with-extra-bids.json
+++ b/exchange/exchangetest/multi-bids-with-extra-bids.json
@@ -174,7 +174,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -188,7 +187,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -202,7 +200,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -216,7 +213,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             }
                         ],
@@ -293,7 +289,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             },
                             {
@@ -307,7 +302,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             }
                         ],
@@ -335,7 +329,6 @@
                                 "origbidcpm": 0.71,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -365,7 +358,6 @@
                                 "origbidcpm": 0.21,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video"
                                 }
@@ -382,7 +374,6 @@
                                 "origbidcpm": 0.61,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -412,7 +403,6 @@
                                 "origbidcpm": 0.51,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -442,7 +432,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "targetbiddercode": "appnexus",
                                     "type": "banner",
@@ -467,7 +456,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/multi-bids.json b/exchange/exchangetest/multi-bids.json
index ed3e1c1d..b4e02b57 100644
--- a/exchange/exchangetest/multi-bids.json
+++ b/exchange/exchangetest/multi-bids.json
@@ -146,7 +146,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -160,7 +159,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -174,7 +172,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             },
                             {
@@ -188,7 +185,6 @@
                                 },
                                 "bidType": "video",
                                 "bidMeta": {
-                                    "adaptercode": "pubmatic"
                                 }
                             }
                         ],
@@ -261,7 +257,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             },
                             {
@@ -275,7 +270,6 @@
                                 },
                                 "bidType": "banner",
                                 "bidMeta": {
-                                    "adaptercode": "appnexus"
                                 }
                             }
                         ],
@@ -303,7 +297,6 @@
                                 "origbidcpm": 0.71,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -333,7 +326,6 @@
                                 "origbidcpm": 0.21,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video"
                                 }
@@ -350,7 +342,6 @@
                                 "origbidcpm": 0.61,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -380,7 +371,6 @@
                                 "origbidcpm": 0.51,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "pubmatic"
                                     },
                                     "type": "video",
                                     "targeting": {
@@ -410,7 +400,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "targetbiddercode": "appnexus",
                                     "type": "banner",
@@ -435,7 +424,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "banner"
                                 }
diff --git a/exchange/exchangetest/passthrough_imp_only.json b/exchange/exchangetest/passthrough_imp_only.json
index bc3d8dd2..a577f73c 100644
--- a/exchange/exchangetest/passthrough_imp_only.json
+++ b/exchange/exchangetest/passthrough_imp_only.json
@@ -145,7 +145,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video",
                                     "passthrough": {
@@ -166,7 +165,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/passthrough_root_and_imp.json b/exchange/exchangetest/passthrough_root_and_imp.json
index 959b934f..d8a05055 100644
--- a/exchange/exchangetest/passthrough_root_and_imp.json
+++ b/exchange/exchangetest/passthrough_root_and_imp.json
@@ -107,7 +107,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video",
                                     "passthrough": {
diff --git a/exchange/exchangetest/passthrough_root_only.json b/exchange/exchangetest/passthrough_root_only.json
index 254b09ad..fe922431 100644
--- a/exchange/exchangetest/passthrough_root_only.json
+++ b/exchange/exchangetest/passthrough_root_only.json
@@ -102,7 +102,6 @@
                             "ext": {
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 },
diff --git a/exchange/exchangetest/request-ext-prebid-filtering.json b/exchange/exchangetest/request-ext-prebid-filtering.json
index 8a82f4cb..26312fbf 100644
--- a/exchange/exchangetest/request-ext-prebid-filtering.json
+++ b/exchange/exchangetest/request-ext-prebid-filtering.json
@@ -175,7 +175,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/request-imp-ext-prebid-filtering.json b/exchange/exchangetest/request-imp-ext-prebid-filtering.json
index 94ac6ec0..8733ef9c 100644
--- a/exchange/exchangetest/request-imp-ext-prebid-filtering.json
+++ b/exchange/exchangetest/request-imp-ext-prebid-filtering.json
@@ -125,7 +125,6 @@
                                 "origbidcpm": 0.3,
                                 "prebid": {
                                     "meta": {
-                                        "adaptercode": "appnexus"
                                     },
                                     "type": "video"
                                 }
diff --git a/exchange/exchangetest/request-multi-bidders-debug-info.json b/exchange/exchangetest/request-multi-bidders-debug-info.json
index 6eeaf58d..254d321f 100644
--- a/exchange/exchangetest/request-multi-bidders-debug-info.json
+++ b/exchange/exchangetest/request-multi-bidders-debug-info.json
@@ -155,7 +155,6 @@
                 "origbidcpm": 12.00,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "targeting": {
                     "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/request-multi-bidders-one-no-resp.json b/exchange/exchangetest/request-multi-bidders-one-no-resp.json
index fc55ebd3..4d54abc2 100644
--- a/exchange/exchangetest/request-multi-bidders-one-no-resp.json
+++ b/exchange/exchangetest/request-multi-bidders-one-no-resp.json
@@ -127,7 +127,6 @@
                 "origbidcpm": 12.00,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "targeting": {
                     "hb_bidder": "appnexus",
diff --git a/exchange/exchangetest/targeting-always-include-deals.json b/exchange/exchangetest/targeting-always-include-deals.json
index 1ffb8088..14521036 100644
--- a/exchange/exchangetest/targeting-always-include-deals.json
+++ b/exchange/exchangetest/targeting-always-include-deals.json
@@ -170,7 +170,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video",
                   "targeting": {
@@ -195,7 +194,6 @@
                 "origbidcpm": 0.40,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video"
                 }
@@ -218,7 +216,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -250,7 +247,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video"
                 }
@@ -268,7 +264,6 @@
                 "origbidcpm": 0.61,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
diff --git a/exchange/exchangetest/targeting-cache-vast-banner.json b/exchange/exchangetest/targeting-cache-vast-banner.json
index 91fb5817..66f322e4 100644
--- a/exchange/exchangetest/targeting-cache-vast-banner.json
+++ b/exchange/exchangetest/targeting-cache-vast-banner.json
@@ -88,7 +88,6 @@
                 "origbidcpm": 0.01,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "banner",
                   "targeting": {
diff --git a/exchange/exchangetest/targeting-cache-vast.json b/exchange/exchangetest/targeting-cache-vast.json
index 1c7cb636..5e1aca02 100644
--- a/exchange/exchangetest/targeting-cache-vast.json
+++ b/exchange/exchangetest/targeting-cache-vast.json
@@ -89,7 +89,6 @@
                 "origbidcpm": 0.01,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "cache": {
                     "bids": {
diff --git a/exchange/exchangetest/targeting-cache-zero.json b/exchange/exchangetest/targeting-cache-zero.json
index 7f94f73f..ff9672c3 100644
--- a/exchange/exchangetest/targeting-cache-zero.json
+++ b/exchange/exchangetest/targeting-cache-zero.json
@@ -91,7 +91,6 @@
                 "origbidcpm": 0.01,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "cache": {
                     "bids": {
diff --git a/exchange/exchangetest/targeting-mobile.json b/exchange/exchangetest/targeting-mobile.json
index 9cc2b1eb..3ae2a0ae 100644
--- a/exchange/exchangetest/targeting-mobile.json
+++ b/exchange/exchangetest/targeting-mobile.json
@@ -153,7 +153,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video",
                   "targeting": {
@@ -183,7 +182,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -214,7 +212,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video"
                 }
@@ -231,7 +228,6 @@
                 "origbidcpm": 0.61,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
diff --git a/exchange/exchangetest/targeting-no-winners.json b/exchange/exchangetest/targeting-no-winners.json
index 92526022..e6400d14 100644
--- a/exchange/exchangetest/targeting-no-winners.json
+++ b/exchange/exchangetest/targeting-no-winners.json
@@ -153,7 +153,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video",
                   "targeting": {
@@ -182,7 +181,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -206,7 +204,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video"
                 }
@@ -223,7 +220,6 @@
                 "origbidcpm": 0.61,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
diff --git a/exchange/exchangetest/targeting-only-winners.json b/exchange/exchangetest/targeting-only-winners.json
index 5e6d43ce..85bb81ed 100644
--- a/exchange/exchangetest/targeting-only-winners.json
+++ b/exchange/exchangetest/targeting-only-winners.json
@@ -153,7 +153,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video"
                 }
@@ -175,7 +174,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -199,7 +197,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video"
                 }
@@ -216,7 +213,6 @@
                 "origbidcpm": 0.61,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
diff --git a/exchange/exchangetest/targeting-with-winners.json b/exchange/exchangetest/targeting-with-winners.json
index 14ad8ef4..281e95b9 100644
--- a/exchange/exchangetest/targeting-with-winners.json
+++ b/exchange/exchangetest/targeting-with-winners.json
@@ -153,7 +153,6 @@
                 "origbidcpm": 0.51,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "audienceNetwork"
                   },
                   "type": "video",
                   "targeting": {
@@ -182,7 +181,6 @@
                 "origbidcpm": 0.71,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
@@ -211,7 +209,6 @@
                 "origbidcpm": 0.21,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video"
                 }
@@ -228,7 +225,6 @@
                 "origbidcpm": 0.61,
                 "prebid": {
                   "meta": {
-                    "adaptercode": "appnexus"
                   },
                   "type": "video",
                   "targeting": {
diff --git a/floors/fetcher_test.go b/floors/fetcher_test.go
index cdf0537c..499c9312 100644
--- a/floors/fetcher_test.go
+++ b/floors/fetcher_test.go
@@ -1219,6 +1219,7 @@ func TestPriceFloorFetcherSubmitFailed(t *testing.T) {
 }
 
 func getRandomNumber() int {
+	//nolint: staticcheck // SA1019: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value.
 	rand.Seed(time.Now().UnixNano())
 	min := 1
 	max := 10
diff --git a/openrtb_ext/request_wrapper_test.go b/openrtb_ext/request_wrapper_test.go
index ffa925e4..7b21531e 100644
--- a/openrtb_ext/request_wrapper_test.go
+++ b/openrtb_ext/request_wrapper_test.go
@@ -705,7 +705,7 @@ func TestCloneUserExt(t *testing.T) {
 				eids[0].UIDs[1].ID = "G2"
 				eids[1].UIDs[0].AType = 0
 				eids[0].UIDs = append(eids[0].UIDs, openrtb2.UID{ID: "Z", AType: 2})
-				eids = append(eids, openrtb2.EID{Source: "Blank"})
+				eids = append(eids, openrtb2.EID{Source: "Blank"}) //nolint: ineffassign, staticcheck // this value of `eids` is never used (staticcheck)
 				userExt.eids = nil
 			},
 		},
diff --git a/router/aspects/request_timeout_handler_test.go b/router/aspects/request_timeout_handler_test.go
index f77d48aa..0d6f2cf8 100644
--- a/router/aspects/request_timeout_handler_test.go
+++ b/router/aspects/request_timeout_handler_test.go
@@ -78,7 +78,7 @@ func TestAny(t *testing.T) {
 		reqTimeFloat, _ := strconv.ParseFloat(test.reqTimeInQueue, 64)
 		result := ExecuteAspectRequest(t, test.reqTimeInQueue, test.reqTimeOut, test.setHeaders, metrics.ReqTypeVideo, test.requestStatusMetrics, reqTimeFloat)
 		assert.Equal(t, test.expectedRespCode, result.Code, test.expectedRespCodeMessage)
-		assert.Equal(t, test.expectedRespBody, string(result.Body.Bytes()), test.expectedRespBodyMessage)
+		assert.Equal(t, test.expectedRespBody, result.Body.String(), test.expectedRespBodyMessage)
 	}
 }
 
diff --git a/server/server_test.go b/server/server_test.go
index 03a2fc91..7f81f781 100644
--- a/server/server_test.go
+++ b/server/server_test.go
@@ -12,6 +12,7 @@ import (
 	"github.com/prebid/prebid-server/v2/config"
 	metricsconfig "github.com/prebid/prebid-server/v2/metrics/config"
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 )
 
 func TestServerShutdown(t *testing.T) {
@@ -21,7 +22,7 @@ func TestServerShutdown(t *testing.T) {
 	stopper := make(chan os.Signal)
 	done := make(chan struct{})
 	go shutdownAfterSignals(server, stopper, done)
-	go server.Serve(ln)
+	go server.Serve(ln) //nolint: errcheck
 
 	stopper <- os.Interrupt
 	<-done
@@ -73,7 +74,8 @@ func TestNewSocketServer(t *testing.T) {
 	}
 
 	ret := newSocketServer(cfg, nil)
-	assert.NotEqual(t, nil, ret, "ret : isNil()")
+	require.NotNil(t, ret, "ret : isNil()")
+
 	assert.Equal(t, mockServer.Addr, ret.Addr, fmt.Sprintf("Addr invalide: %v != %v",
 		ret.Addr, mockServer.Addr))
 	assert.Equal(t, mockServer.ReadTimeout, ret.ReadTimeout, fmt.Sprintf("ReadTimeout invalide: %v != %v",
@@ -81,9 +83,7 @@ func TestNewSocketServer(t *testing.T) {
 	assert.Equal(t, mockServer.WriteTimeout, ret.WriteTimeout, fmt.Sprintf("WriteTimeout invalide: %v != %v",
 		ret.WriteTimeout, mockServer.WriteTimeout))
 
-	if ret != nil {
-		ret.Close()
-	}
+	ret.Close()
 }
 
 func TestNewMainServer(t *testing.T) {
@@ -103,7 +103,8 @@ func TestNewMainServer(t *testing.T) {
 	}
 
 	ret := newMainServer(cfg, nil)
-	assert.NotEqual(t, nil, ret, "ret : isNil()")
+	require.NotNil(t, ret, "ret : isNil()")
+
 	assert.Equal(t, ret.Addr, mockServer.Addr, fmt.Sprintf("Addr invalide: %v != %v",
 		ret.Addr, mockServer.Addr))
 	assert.Equal(t, ret.ReadTimeout, mockServer.ReadTimeout,
@@ -111,9 +112,7 @@ func TestNewMainServer(t *testing.T) {
 	assert.Equal(t, ret.WriteTimeout, mockServer.WriteTimeout,
 		fmt.Sprintf("WriteTimeout invalide: %v != %v", ret.WriteTimeout, mockServer.WriteTimeout))
 
-	if ret != nil {
-		ret.Close()
-	}
+	ret.Close()
 }
 
 func TestNewTCPListener(t *testing.T) {
@@ -155,13 +154,11 @@ func TestNewAdminServer(t *testing.T) {
 	}
 
 	ret := newAdminServer(cfg, nil)
-	assert.NotEqual(t, nil, ret, "ret : isNil()")
+	require.NotNil(t, ret, "ret : isNil()")
 	assert.Equal(t, mockServer.Addr, ret.Addr, fmt.Sprintf("Addr invalide: %v != %v",
 		ret.Addr, mockServer.Addr))
 
-	if ret != nil {
-		ret.Close()
-	}
+	ret.Close()
 }
 
 func TestRunServer(t *testing.T) {
@@ -181,7 +178,6 @@ func TestRunServer(t *testing.T) {
 }
 
 func TestListen(t *testing.T) {
-	const name = "TestListen"
 	var (
 		handler, adminHandler http.Handler
 
diff --git a/server/ssl/ssl_test.go b/server/ssl/ssl_test.go
index b72fb7ae..e6abdbdc 100644
--- a/server/ssl/ssl_test.go
+++ b/server/ssl/ssl_test.go
@@ -47,7 +47,7 @@ func TestAppendPEMFileToRootCAPoolFail(t *testing.T) {
 
 	// In this test we are going to pass a file that does not exist as value of second argument
 	fakeCertificatesFile := "mockcertificates/NO-FILE.pem"
-	certPool, err := AppendPEMFileToRootCAPool(certPool, fakeCertificatesFile)
+	_, err := AppendPEMFileToRootCAPool(certPool, fakeCertificatesFile)
 
 	// Assert AppendPEMFileToRootCAPool correctly throws an error when trying to load an nonexisting file
 	assert.Errorf(t, err, "AppendPEMFileToRootCAPool should throw an error by while loading fake file %s \n", fakeCertificatesFile)
diff --git a/stored_responses/stored_responses_test.go b/stored_responses/stored_responses_test.go
index 49ce19d3..58bba22a 100644
--- a/stored_responses/stored_responses_test.go
+++ b/stored_responses/stored_responses_test.go
@@ -258,7 +258,7 @@ func TestProcessStoredAuctionAndBidResponsesErrors(t *testing.T) {
 	for _, test := range testCases {
 		t.Run(test.description, func(t *testing.T) {
 			rw := &openrtb_ext.RequestWrapper{BidRequest: &test.request}
-			_, _, _, errorList := ProcessStoredResponses(nil, rw, nil)
+			_, _, _, errorList := ProcessStoredResponses(context.TODO(), rw, nil)
 			assert.Equalf(t, test.expectedErrorList, errorList, "Error doesn't match: %s\n", test.description)
 		})
 	}
@@ -663,7 +663,7 @@ func TestProcessStoredAuctionAndBidResponses(t *testing.T) {
 	for _, test := range testCases {
 		t.Run(test.description, func(t *testing.T) {
 			rw := openrtb_ext.RequestWrapper{BidRequest: &test.request}
-			storedAuctionResponses, storedBidResponses, bidderImpReplaceImpId, errorList := ProcessStoredResponses(nil, &rw, fetcher)
+			storedAuctionResponses, storedBidResponses, bidderImpReplaceImpId, errorList := ProcessStoredResponses(context.TODO(), &rw, fetcher)
 			assert.Equal(t, test.expectedStoredAuctionResponses, storedAuctionResponses)
 			assert.Equal(t, test.expectedStoredBidResponses, storedBidResponses)
 			assert.Equal(t, test.expectedBidderImpReplaceImpID, bidderImpReplaceImpId)
@@ -866,7 +866,7 @@ func TestProcessStoredResponsesNotFoundResponse(t *testing.T) {
 	for _, test := range testCases {
 		t.Run(test.description, func(t *testing.T) {
 			rw := openrtb_ext.RequestWrapper{BidRequest: &test.request}
-			_, _, _, errorList := ProcessStoredResponses(nil, &rw, fetcher)
+			_, _, _, errorList := ProcessStoredResponses(context.TODO(), &rw, fetcher)
 			for _, err := range test.expectedErrors {
 				assert.Contains(t, errorList, err)
 			}