Repository: prebid/prebid-server
Pull request #3660 (2024-05-03 19:49:57)

CPMStar: use iframe based usersync
CPMStar: Use iframe based usersync

JoshuaMGoldstein: Thanks Bret, I updated to have both sync types.


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/cpmstar.yaml b/static/bidder-info/cpmstar.yaml
index 7c54ba53..94a91e5a 100644
--- a/static/bidder-info/cpmstar.yaml
+++ b/static/bidder-info/cpmstar.yaml
@@ -11,6 +11,9 @@ capabilities:
       - banner
       - video
 userSync:
+  iframe:
+    url: "https://server.cpmstar.com/usersync.aspx?ifr=1&gdpr={{.GDPR}}&consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect={{.RedirectURL}}"
+    userMacro: "$UID"
   redirect:
     url: "https://server.cpmstar.com/usersync.aspx?gdpr={{.GDPR}}&consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect={{.RedirectURL}}"
-    userMacro: "$UID"
+    userMacro: "$UID"    
\ No newline at end of file
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)
 			}