diff --git a/adapters/ogury/ogury.go b/adapters/ogury/ogury.go index 7207ff2ac98..1b2293c1bc8 100644 --- a/adapters/ogury/ogury.go +++ b/adapters/ogury/ogury.go @@ -87,15 +87,10 @@ func (a adapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *adapter } if len(impsWithOguryParams) == 0 { - if request.Site != nil && (request.Site.Publisher == nil || request.Site.Publisher.ID == "") { + if !hasPublisherId(request) { // we can serve ads with publisherId+adunitcode combination return nil, []error{&errortypes.BadInput{ - Message: "Invalid request. assetKey/adUnitId or request.site.publisher.id required", - }} - } else if request.App != nil { - // for app request there is no adunitcode equivalent so we can't serve ads with just the publisher id - return nil, []error{&errortypes.BadInput{ - Message: "Invalid request. assetKey/adUnitId required", + Message: "Invalid request. assetKey/adUnitId or request.site/app.publisher.id required", }} } } else if len(impsWithOguryParams) > 0 { @@ -149,6 +144,18 @@ func getMediaTypeForBid(bid openrtb2.Bid) (openrtb_ext.BidType, error) { } } +func hasPublisherId(request *openrtb2.BidRequest) bool { + return hasSitePublisherId(request) || hasAppPublisherId(request) +} + +func hasSitePublisherId(request *openrtb2.BidRequest) bool { + return request.Site != nil && request.Site.Publisher != nil && request.Site.Publisher.ID != "" +} + +func hasAppPublisherId(request *openrtb2.BidRequest) bool { + return request.App != nil && request.App.Publisher != nil && request.App.Publisher.ID != "" +} + func (a adapter) MakeBids(request *openrtb2.BidRequest, _ *adapters.RequestData, responseData *adapters.ResponseData) (*adapters.BidderResponse, []error) { if adapters.IsResponseStatusCodeNoContent(responseData) { return nil, nil diff --git a/adapters/ogury/ogurytest/exemplary/app_banner_publisher.json b/adapters/ogury/ogurytest/exemplary/app_banner_publisher.json new file mode 100644 index 00000000000..6a19c077298 --- /dev/null +++ b/adapters/ogury/ogurytest/exemplary/app_banner_publisher.json @@ -0,0 +1,97 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "app": { + "id": "1", + "bundle": "com.example", + "publisher": { + "id": "pub-id" + } + }, + "imp": [ + { + "id": "imp-id", + "banner": { + "format": [{"w": 320, "h": 50}] + }, + "ext": { + } + } + ] + }, + + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://ogury.example.com", + "body": { + "app": { + "id": "1", + "bundle": "com.example", + "publisher": { + "id": "pub-id" + } + }, + "id": "test-request-id", + "imp": [ + { + "id":"imp-id", + "tagid": "imp-id", + "banner": { + "format": [{"w": 320, "h": 50}] + }, + "ext": { + } + } + ] + }, + "impIDs":["imp-id"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "cur": "USD", + "seatbid": [ + { + "seat": "seat", + "bid": [{ + "id": "some-UUID", + "impid": "imp-id", + "price": 0.500000, + "nurl": "example nurl", + "adm": "adm string", + "crid": "crid_10", + "h": 100, + "w": 128, + "mtype": 1 + }] + } + ] + } + } + } + ], + + "expectedBidResponses": [ + { + "currency": "USD", + "bids": [ + { + "bid": { + "id": "some-UUID", + "impid": "imp-id", + "price": 0.5, + "nurl": "example nurl", + "adm": "adm string", + "crid": "crid_10", + "h": 100, + "w": 128, + "mtype": 1 + }, + "type": "banner" + } + ] + } + ] +} diff --git a/adapters/ogury/ogurytest/supplemental/app_banner_invalid_request.json b/adapters/ogury/ogurytest/supplemental/app_banner_invalid_request.json index 36f7948bc1b..274258f9faa 100644 --- a/adapters/ogury/ogurytest/supplemental/app_banner_invalid_request.json +++ b/adapters/ogury/ogurytest/supplemental/app_banner_invalid_request.json @@ -3,10 +3,7 @@ "id": "test-request-id", "app": { "id": "1", - "bundle": "com.example", - "publisher": { - "id": "pub-id" - } + "bundle": "com.example" }, "imp": [ { @@ -26,7 +23,7 @@ "expectedBidResponses": [], "expectedMakeRequestsErrors": [{ - "value": "Invalid request. assetKey/adUnitId required", + "value": "Invalid request. assetKey/adUnitId or request.site/app.publisher.id required", "comparison": "literal" }] } diff --git a/adapters/ogury/ogurytest/supplemental/site_banner_invalid_request.json b/adapters/ogury/ogurytest/supplemental/site_banner_invalid_request.json index e26875ba072..c385c9f1e6f 100644 --- a/adapters/ogury/ogurytest/supplemental/site_banner_invalid_request.json +++ b/adapters/ogury/ogurytest/supplemental/site_banner_invalid_request.json @@ -22,7 +22,7 @@ "httpCalls": [], "expectedBidResponses": [], "expectedMakeRequestsErrors": [{ - "value": "Invalid request. assetKey/adUnitId or request.site.publisher.id required", + "value": "Invalid request. assetKey/adUnitId or request.site/app.publisher.id required", "comparison": "literal" }] }