Skip to content

Conversation

pm-priyanka-bagade
Copy link
Contributor

No description provided.

Copy link

github-actions bot commented Feb 3, 2025

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 57cb1d2

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				91.5%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:523:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:545:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:557:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:570:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:585:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:635:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:648:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:670:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:679:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.5%

Copy link

github-actions bot commented Feb 3, 2025

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 96bff22

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				91.5%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:523:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:545:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:557:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:570:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:585:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:635:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:648:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:670:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:679:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.5%

@bsardo bsardo added the adapter label Feb 3, 2025
Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, e1f0fbe

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				88.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				92.9%

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 446ec4a

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				88.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				92.9%

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 5aa750e

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				88.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				92.9%

pm-isha-bharti
pm-isha-bharti previously approved these changes Feb 18, 2025
@bsardo bsardo assigned bsardo, scr-oath and guscarreon and unassigned bsardo Feb 19, 2025
@pm-isha-bharti
Copy link
Contributor

@guscarreon / @scr-oath Can someone please review this PR?

scr-oath
scr-oath previously approved these changes Mar 11, 2025
Copy link
Contributor

@guscarreon guscarreon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please include a JSON test with no mtype so the default banner value gets used?

@@ -637,24 +649,27 @@ func getStringArray(array []interface{}) []string {
return aString
}

// getBidType returns the bid type specified in the response bid.ext
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we update the comment? getMediaTypeForBid doesn't return the bid type from bid.ext anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes sure

bidType = openrtb_ext.BidTypeNative
mType := openrtb_ext.BidTypeBanner
if bid != nil {
switch bid.MType {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we sure from now on the media type will always be located in bid.MType and not in bid.Ext? Do you think we should look in bid.MType first and then bid.Ext second for backwards compatibility?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we are sure on media type will always be located in bid.MType. I don't think we need to have any backward compatibility logic.


typedBid.BidMeta = &openrtb_ext.ExtBidPrebidMeta{MediaType: string(mType)}
if bidExt.InBannerVideo {
typedBid.BidMeta.MediaType = string(openrtb_ext.BidTypeVideo)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the scenario where bidExt.InBannerVideo is true, but bidExt.VideoCreativeInfo or bidExt.VideoCreativeInfo.Duration is nil, valid? If not, should we validate and append an error to the errs array in such cases?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, It is valid case bidExt.VideoCreativeInfo and bidExt.VideoCreativeInfo.Duration is nil in case of bidExt.InBannerVideo is true.

}
if tt.expectedError != nil && actualError == nil {
t.Errorf("Expected error: %v, but got nil", tt.expectedError)
} else if tt.expectedError != nil && actualError != nil && actualError.Error() != tt.expectedError.Error() {
Copy link
Contributor

@guscarreon guscarreon Mar 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The if-else statement seems to not compare an tt.expectedError equal to nil. If tt.expectedError equals nil, shouldn't we assert that actualError is also nil?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added check if expectedError is nil.
Modified code accordingly.

@@ -461,26 +462,37 @@ func (a *PubmaticAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externa
bid.Cat = bid.Cat[0:1]
}

mType, err := getMediaTypeForBid(&bid)
if err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we write a JSON test case to cover the error scenario?
image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes Added test case

@bsardo
Copy link
Collaborator

bsardo commented Apr 7, 2025

Hi @pm-priyanka-bagade, please see recent comments.

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, dd73a53

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				92.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.6%

@pm-priyanka-bagade
Copy link
Contributor Author

pm-priyanka-bagade commented Apr 22, 2025

@guscarreon Can you please review this PR again?
Resolved all the comments.

Comment on lines 417 to 570
// args: args{
// response: &adapters.ResponseData{
// StatusCode: http.StatusOK,
// Body: []byte(`{"id": "test-request-id", "seatbid":[{"seat": "958", "bid":[{"id": "7706636740145184841", "impid": "test-imp-id", "price": 0.500000, "adid": "29681110", "adm": "some-test-ad", "adomain":["pubmatic.com"], "crid": "29681110", "h": 250, "w": 300, "dealid": "testdeal","mtype": 1, "ext":{"dspid": 6, "deal_channel": 1, "prebiddealpriority": -1}}]}], "bidid": "5778926625248726496", "cur": "USD"}`),
// },
// },
// wantErr: nil,
// wantResp: &adapters.BidderResponse{
// Bids: []*adapters.TypedBid{
// {
// Bid: &openrtb2.Bid{
// ID: "7706636740145184841",
// ImpID: "test-imp-id",
// Price: 0.500000,
// AdID: "29681110",
// AdM: "some-test-ad",
// ADomain: []string{"pubmatic.com"},
// CrID: "29681110",
// H: 250,
// W: 300,
// DealID: "testdeal",
// MType: 1,
// Ext: json.RawMessage(`{"dspid": 6, "deal_channel": 1, "prebiddealpriority": -1}`),
// },
// BidType: openrtb_ext.BidTypeBanner,
// BidVideo: &openrtb_ext.ExtBidPrebidVideo{},
// BidMeta: &openrtb_ext.ExtBidPrebidMeta{
// AdapterCode: "",
// AdvertiserDomains: nil,
// AdvertiserID: 0,
// AdvertiserName: "",
// AgencyID: 0,
// AgencyName: "",
// DChain: nil,
// DemandSource: "",
// MediaType: "banner",
// NetworkID: 0,
// NetworkName: "",
// RendererName: "",
// RendererVersion: "",
// RendererData: nil,
// RendererUrl: "",
// SecondaryCategoryIDs: nil,
// },
// },
// },
// Currency: "USD",
// },
// },
// {
// name: "bid_ext_InBannerVideo_is_true",
// args: args{
// response: &adapters.ResponseData{
// StatusCode: http.StatusOK,
// Body: []byte(`{"id": "test-request-id", "seatbid":[{"seat": "958", "bid":[{"id": "7706636740145184841", "impid": "test-imp-id", "price": 0.500000, "adid": "29681110", "adm": "some-test-ad", "adomain":["pubmatic.com"], "crid": "29681110", "h": 250, "w": 300, "dealid": "testdeal", "mtype": 1, "ext":{"dspid": 6, "deal_channel": 1, "prebiddealpriority": -1, "ibv": true}}]}], "bidid": "5778926625248726496", "cur": "USD"}`),
// },
// },
// wantErr: nil,
// wantResp: &adapters.BidderResponse{
// Bids: []*adapters.TypedBid{
// {
// Bid: &openrtb2.Bid{
// ID: "7706636740145184841",
// ImpID: "test-imp-id",
// Price: 0.500000,
// AdID: "29681110",
// AdM: "some-test-ad",
// ADomain: []string{"pubmatic.com"},
// CrID: "29681110",
// H: 250,
// W: 300,
// DealID: "testdeal",
// MType: 1,
// Ext: json.RawMessage(`{"dspid": 6, "deal_channel": 1, "prebiddealpriority": -1, "ibv": true}`),
// },
// BidType: openrtb_ext.BidTypeBanner,
// BidVideo: &openrtb_ext.ExtBidPrebidVideo{},
// BidMeta: &openrtb_ext.ExtBidPrebidMeta{
// AdapterCode: "",
// AdvertiserDomains: nil,
// AdvertiserID: 0,
// AdvertiserName: "",
// AgencyID: 0,
// AgencyName: "",
// DChain: nil,
// DemandSource: "",
// MediaType: "video",
// NetworkID: 0,
// NetworkName: "",
// RendererName: "",
// RendererVersion: "",
// RendererData: nil,
// RendererUrl: "",
// SecondaryCategoryIDs: nil,
// },
// },
// },
// Currency: "USD",
// },
// },
Copy link
Collaborator

@bsardo bsardo Apr 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pm-priyanka-bagade please address the commented out test cases.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So sorry i forgot to uncomment test cases

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 58b1910

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				92.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.6%

@pm-priyanka-bagade
Copy link
Contributor Author

Please check @guscarreon
Resolved all the comments.

t.Errorf("Expected Bid Type value was: %v, actual value is: %v", tt.expectedMType, actualBidTypeValue)
}
if tt.expectedError == nil {
if actualError != nil {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm ok with this approach but, wouldn't an assert.Equal() call produce the same results?

81             if actualBidTypeValue != tt.expectedMType {
82                 t.Errorf("Expected Bid Type value was: %v, actual value is: %v", tt.expectedMType, actualBidTypeValue)
83             }
   +           assert.Equal(t, tt.expectedError, actualError)
84 -           if tt.expectedError == nil {
85 -               if actualError != nil {
86 -                   t.Errorf("Expected no error, but got: %v", actualError)
87 -               }
88 -           } else {
89 -               if actualError == nil {
90 -                   t.Errorf("Expected error: %v, but got nil", tt.expectedError)
91 -               } else if actualError.Error() != tt.expectedError.Error() {
92 -                   t.Errorf("Expected error: %v, but got: %v", tt.expectedError, actualError)
93 -               }
94 -           }
95         })
adapters/pubmatic/pubmatic_test.go

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes you are right
Made changes

if err != nil {
errs = append(errs, err)
} else if bidExt != nil {
typedBid.Seat = openrtb_ext.BidderName(bidExt.Marketplace)
typedBid.BidType = getBidType(bidExt)
typedBid.BidType = mType
Copy link
Contributor

@guscarreon guscarreon Apr 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes implemented in this pull request make that setting typedBid.BidType does not depend on bidExt not being nil because we're now taking mType from bid.MType and not from bid.Ext.BidType. Do we still need to assign typedBid.BidType = mType inside the if bidExt != nil statement?

470
471             typedBid := &adapters.TypedBid{
472                 Bid:      &bid,
473                 BidType:  openrtb_ext.BidTypeBanner,
474                 BidVideo: &openrtb_ext.ExtBidPrebidVideo{},
    +               BidType:  mType,
475             }
476
477             var bidExt *pubmaticBidExt
478             err = jsonutil.Unmarshal(bid.Ext, &bidExt)
479             if err != nil {
480                 errs = append(errs, err)
481             } else if bidExt != nil {
482                 typedBid.Seat = openrtb_ext.BidderName(bidExt.Marketplace)
483 -               typedBid.BidType = mType
484                 if bidExt.PrebidDealPriority > 0 {
485                     typedBid.DealPriority = bidExt.PrebidDealPriority
486                 }
adapters/pubmatic/pubmatic.go

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes you are right,
anyway we are setting default value in getMediaTypeForBid as "banner" and we don't need to assign in if block.

Copy link

github-actions bot commented May 5, 2025

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 797b986

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				91.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.5%

@pm-priyanka-bagade
Copy link
Contributor Author

@guscarreon / @bsardo
Please check and merge

Copy link

github-actions bot commented May 7, 2025

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, f7d1aa0

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				91.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.5%

@pm-isha-bharti
Copy link
Contributor

@guscarreon Could you please review it again? Thanks!

Comment on lines 441 to 458
BidMeta: &openrtb_ext.ExtBidPrebidMeta{
AdapterCode: "",
AdvertiserDomains: nil,
AdvertiserID: 0,
AdvertiserName: "",
AgencyID: 0,
AgencyName: "",
DChain: nil,
DemandSource: "",
MediaType: "banner",
NetworkID: 0,
NetworkName: "",
RendererName: "",
RendererVersion: "",
RendererData: nil,
RendererUrl: "",
SecondaryCategoryIDs: nil,
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: reduce complexity by omitting "zero values"

Suggested change
BidMeta: &openrtb_ext.ExtBidPrebidMeta{
AdapterCode: "",
AdvertiserDomains: nil,
AdvertiserID: 0,
AdvertiserName: "",
AgencyID: 0,
AgencyName: "",
DChain: nil,
DemandSource: "",
MediaType: "banner",
NetworkID: 0,
NetworkName: "",
RendererName: "",
RendererVersion: "",
RendererData: nil,
RendererUrl: "",
SecondaryCategoryIDs: nil,
},
BidMeta: &openrtb_ext.ExtBidPrebidMeta{
MediaType: "banner",
},

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 9a52706

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:86:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:196:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:239:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:247:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:255:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:352:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:403:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:421:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:435:	MakeBids				91.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:528:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:550:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:562:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:575:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:590:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:640:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:653:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:676:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:685:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.5%

// default value is banner
bidType = openrtb_ext.BidTypeBanner
return "", &errortypes.BadServerResponse{
Message: fmt.Sprintf("failed to parse bid mtype (%d) for impression id %s", bid.MType, bid.ImpID),
Copy link
Contributor

@scr-oath scr-oath Jun 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: superfluous space.

Suggested change
Message: fmt.Sprintf("failed to parse bid mtype (%d) for impression id %s", bid.MType, bid.ImpID),
Message: fmt.Sprintf("failed to parse bid mtype (%d) for impression id %s", bid.MType, bid.ImpID),

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed extra space

Comment on lines 85 to 89
if tt.expectedError != nil {
assert.EqualError(t, actualError, tt.expectedError.Error(), "unexpected error message")
} else {
assert.NoError(t, actualError, "expected no error but got one")
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Use require for things that cannot proceed if unmet. Also, in the expect error case, use the guard pattern (merely return rather than needing else clause).

Suggested change
if tt.expectedError != nil {
assert.EqualError(t, actualError, tt.expectedError.Error(), "unexpected error message")
} else {
assert.NoError(t, actualError, "expected no error but got one")
}
if tt.expectedError != nil {
require.EqualError(t, actualError, tt.expectedError.Error(), "unexpected error message")
return
}
require.NoError(t, actualError, "expected no error but got one")

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you
Updated code with require.

@@ -34,6 +34,7 @@ type pubmaticBidExt struct {
VideoCreativeInfo *pubmaticBidExtVideo `json:"video,omitempty"`
Marketplace string `json:"marketplace,omitempty"`
PrebidDealPriority int `json:"prebiddealpriority,omitempty"`
InBannerVideo bool `json:"ibv,omitempty"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that getBidType(bidExt *pubmaticBidExt) has become getMediaTypeForBid(bid *openrtb2.Bid), the BidType *int json:"BidType,omitempty" field seems to not be used anywhere in your adapter's code anymore. Should we remove?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, removed BidType from adapter code

if bidExt.PrebidDealPriority > 0 {
typedBid.DealPriority = bidExt.PrebidDealPriority
}

if bidExt.VideoCreativeInfo != nil && bidExt.VideoCreativeInfo.Duration != nil {
typedBid.BidVideo.Duration = *bidExt.VideoCreativeInfo.Duration
}

typedBid.BidMeta = &openrtb_ext.ExtBidPrebidMeta{MediaType: string(mType)}
if bidExt.InBannerVideo {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suppose a native type bid comes and, for some unknown reason, its bidExt.InBannerVideo is set to true. Would it be misleading to set typedBid.BidMeta.MediaType to "video" given that this is not a banner? In other words, would it be desirable to add an additional check here to make sure this is really a banner that contains a video?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This scenario will not occur on Pubmatic-openwrap side. It will be handled by Pubmatic SSP side.
So, we don't need any extra check for this scenario.

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 088fd46

pubmatic

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:85:	MakeRequests				93.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:195:	validateAdSlot				91.3%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:238:	assignBannerSize			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:246:	assignBannerWidthAndHeight		100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:254:	parseImpressionObject			92.2%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:351:	extractPubmaticExtFromRequest		96.6%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:402:	getAlternateBidderCodesFromRequestExt	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:420:	addKeywordsToExt			85.7%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:434:	MakeBids				91.8%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:526:	getNativeAdm				90.9%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:548:	getMapFromJSON				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:560:	populateFirstPartyDataImpAttributes	100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:573:	populateAdUnitKey			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:588:	populateDctrKey				85.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:638:	getStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:651:	getMediaTypeForBid			100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:674:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/pubmatic/pubmatic.go:683:	getDisplayManagerAndVer			100.0%
total:									(statements)				93.5%

@scr-oath scr-oath self-requested a review June 25, 2025 16:34
Copy link
Contributor

@guscarreon guscarreon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@bsardo bsardo merged commit b7c6bcf into prebid:master Jun 26, 2025
7 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants