From b969f223cf11f609cea872f25d65441532484a15 Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Fri, 27 May 2022 15:48:37 -0400 Subject: [PATCH 01/22] Old boilerplate code --- adapters/kargo/kargo.go | 79 +++++++++++++++++++++++++++++++++ exchange/adapter_builders.go | 2 + openrtb_ext/bidders.go | 2 + openrtb_ext/imp_kargo.go | 5 +++ static/bidder-info/kargo.yaml | 19 ++++++++ static/bidder-params/kargo.json | 16 +++++++ 6 files changed, 123 insertions(+) create mode 100644 adapters/kargo/kargo.go create mode 100644 openrtb_ext/imp_kargo.go create mode 100644 static/bidder-info/kargo.yaml create mode 100644 static/bidder-params/kargo.json diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go new file mode 100644 index 00000000000..a9d4d2d9eb2 --- /dev/null +++ b/adapters/kargo/kargo.go @@ -0,0 +1,79 @@ +package kargo + +import ( + "encoding/json" + "fmt" + "net/http" + + "github.com/mxmCherry/openrtb/v15/openrtb2" + "github.com/prebid/prebid-server/adapters" + "github.com/prebid/prebid-server/config" + "github.com/prebid/prebid-server/errortypes" + "github.com/prebid/prebid-server/openrtb_ext" +) + +type KargoAdapter struct { + URI string +} + +// Builder builds a new instance of the Kargo adapter for the given bidder with the given config. +func Builder(bidderName openrtb_ext.BidderName, config config.Adapter) (adapters.Bidder, error) { + bidder := &KargoAdapter{ + URI: config.Endpoint, // base url of bidding server + } + return bidder, nil +} + +// MakeRequests creates outgoing requests to the Kargo bidding server. +func (a *KargoAdapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) { + requestJSON, err := json.Marshal(request) + if err != nil { + return nil, []error{err} + } + + requestData := &adapters.RequestData{ + Method: "POST", + Uri: a.URI, + Body: requestJSON, + } + + return []*adapters.RequestData{requestData}, nil +} + +// MakeBids receives a bid response from the Kargo bidding server and creates bids for the publishers auction. +func (a *KargoAdapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.RequestData, responseData *adapters.ResponseData) (*adapters.BidderResponse, []error) { + if responseData.StatusCode == http.StatusNoContent { + return nil, nil + } + + if responseData.StatusCode == http.StatusBadRequest { + err := &errortypes.BadInput{ + Message: "Unexpected status code: 400. Bad request from publisher. Run with request.debug = 1 for more info.", + } + return nil, []error{err} + } + + if responseData.StatusCode != http.StatusOK { + err := &errortypes.BadServerResponse{ + Message: fmt.Sprintf("Unexpected status code: %d. Run with request.debug = 1 for more info.", responseData.StatusCode), + } + return nil, []error{err} + } + + var response openrtb2.BidResponse + if err := json.Unmarshal(responseData.Body, &response); err != nil { + return nil, []error{err} + } + + bidResponse := adapters.NewBidderResponseWithBidsCapacity(len(request.Imp)) + bidResponse.Currency = response.Cur + for _, seatBid := range response.SeatBid { + for i, bid := range seatBid.Bid { + b := &adapters.TypedBid{ + Bid: &seatBid.Bid[i], + } + bidResponse.Bids = append(bidResponse.Bids, b) + } + } + return bidResponse, nil +} diff --git a/exchange/adapter_builders.go b/exchange/adapter_builders.go index 12d31f0d9e3..48b74f1e822 100755 --- a/exchange/adapter_builders.go +++ b/exchange/adapter_builders.go @@ -72,6 +72,7 @@ import ( "github.com/prebid/prebid-server/adapters/iqzone" "github.com/prebid/prebid-server/adapters/ix" "github.com/prebid/prebid-server/adapters/jixie" + "github.com/prebid/prebid-server/adapters/kargo" "github.com/prebid/prebid-server/adapters/kayzen" "github.com/prebid/prebid-server/adapters/kidoz" "github.com/prebid/prebid-server/adapters/krushmedia" @@ -214,6 +215,7 @@ func newAdapterBuilders() map[openrtb_ext.BidderName]adapters.Builder { openrtb_ext.BidderIx: ix.Builder, openrtb_ext.BidderJANet: adtelligent.Builder, openrtb_ext.BidderJixie: jixie.Builder, + openrtb_ext.BidderKargo: kargo.Builder, openrtb_ext.BidderKayzen: kayzen.Builder, openrtb_ext.BidderKidoz: kidoz.Builder, openrtb_ext.BidderKrushmedia: krushmedia.Builder, diff --git a/openrtb_ext/bidders.go b/openrtb_ext/bidders.go index 524ab5e5a95..f010a0193fd 100644 --- a/openrtb_ext/bidders.go +++ b/openrtb_ext/bidders.go @@ -149,6 +149,7 @@ const ( BidderIx BidderName = "ix" BidderJANet BidderName = "janet" BidderJixie BidderName = "jixie" + BidderKargo BidderName = "kargo" BidderKayzen BidderName = "kayzen" BidderKidoz BidderName = "kidoz" BidderKrushmedia BidderName = "krushmedia" @@ -297,6 +298,7 @@ func CoreBidderNames() []BidderName { BidderIx, BidderJANet, BidderJixie, + BidderKargo, BidderKayzen, BidderKidoz, BidderKrushmedia, diff --git a/openrtb_ext/imp_kargo.go b/openrtb_ext/imp_kargo.go new file mode 100644 index 00000000000..7e6d0789da0 --- /dev/null +++ b/openrtb_ext/imp_kargo.go @@ -0,0 +1,5 @@ +package openrtb_ext + +type ImpExtKargo struct { + PlacementID string `json:"placementId"` +} diff --git a/static/bidder-info/kargo.yaml b/static/bidder-info/kargo.yaml new file mode 100644 index 00000000000..15b0ddfd421 --- /dev/null +++ b/static/bidder-info/kargo.yaml @@ -0,0 +1,19 @@ +maintainer: + email: kraken@kargo.com +gvlVendorID: 972 +modifyingVastXmlAllowed: true +capabilities: + app: + mediaTypes: + - banner + - video + - native + site: + mediaTypes: + - banner + - video + - native +userSync: + redirect: + url: 'https://crb.kargo.com/api/v1/initsyncrnd/{UUID}?seed={SEED}&idx={INDEX}&gdpr={GDPR}&gdpr_consent={GDPR_CONSENT}&us_privacy={US_PRIVACY}'; + userMacro: $UID \ No newline at end of file diff --git a/static/bidder-params/kargo.json b/static/bidder-params/kargo.json new file mode 100644 index 00000000000..1315e3558fe --- /dev/null +++ b/static/bidder-params/kargo.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Kargo Adapter Params", + "description": "A schema which validates params accepted by the Kargo adapter", + "type": "object", + + "properties": { + "placementId": { + "type": "integer", + "minimum": 1, + "description": "Placement ID" + } + }, + + "required": ["placementId"] + } \ No newline at end of file From 4899a3077a4c660ea5c3f2287b8b965dc4ec16bb Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Thu, 2 Jun 2022 18:40:14 -0400 Subject: [PATCH 02/22] Added media types --- adapters/kargo/kargo.go | 21 ++++++++++++++++++++- static/bidder-params/kargo.json | 3 +-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index a9d4d2d9eb2..64ffba1b7d3 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -70,10 +70,29 @@ func (a *KargoAdapter) MakeBids(request *openrtb2.BidRequest, requestData *adapt for _, seatBid := range response.SeatBid { for i, bid := range seatBid.Bid { b := &adapters.TypedBid{ - Bid: &seatBid.Bid[i], + Bid: &seatBid.Bid[i], + BidType: getMediaTypeForImp(bid.ImpID, request.Imp), } bidResponse.Bids = append(bidResponse.Bids, b) } } return bidResponse, nil } + +// getMediaTypeForImp checks the media type on the request Impression. +func getMediaTypeForImp(impID string, reqImps []openrtb2.Imp) openrtb_ext.BidType { + for _, imp := range reqImps { + if imp.ID == impID { + switch { + case imp.Banner != nil: + return openrtb_ext.BidTypeBanner + case imp.Native != nil: + return openrtb_ext.BidTypeNative + case imp.Video != nil: + return openrtb_ext.BidTypeVideo + } + } + } + + return openrtb_ext.BidTypeBanner +} diff --git a/static/bidder-params/kargo.json b/static/bidder-params/kargo.json index 1315e3558fe..05eba6c62e8 100644 --- a/static/bidder-params/kargo.json +++ b/static/bidder-params/kargo.json @@ -6,8 +6,7 @@ "properties": { "placementId": { - "type": "integer", - "minimum": 1, + "type": "string", "description": "Placement ID" } }, From 19ae9e8472b39aeeb33312a852459e015a71c0d1 Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Thu, 2 Jun 2022 18:51:36 -0400 Subject: [PATCH 03/22] added endpoint --- adapters/kargo/kargo.go | 1 - config/config.go | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index 64ffba1b7d3..437b12ac0d6 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -93,6 +93,5 @@ func getMediaTypeForImp(impID string, reqImps []openrtb2.Imp) openrtb_ext.BidTyp } } } - return openrtb_ext.BidTypeBanner } diff --git a/config/config.go b/config/config.go index 0b3bed046e6..2a16c10c219 100644 --- a/config/config.go +++ b/config/config.go @@ -887,6 +887,7 @@ func SetupViper(v *viper.Viper, filename string) { v.SetDefault("adapters.ix.disabled", true) v.SetDefault("adapters.janet.endpoint", "http://ghb.bidder.jmgads.com/pbs/ortb") v.SetDefault("adapters.jixie.endpoint", "https://hb.jixie.io/v2/hbsvrpost") + v.SetDefault("adapters.kargo.endpoint", "https://krk.kargo.com/api/v1/openrtb") v.SetDefault("adapters.kayzen.endpoint", "https://bids-{{.ZoneID}}.bidder.kayzen.io/?exchange={{.AccountID}}") v.SetDefault("adapters.krushmedia.endpoint", "http://ads4.krushmedia.com/?c=rtb&m=req&key={{.AccountID}}") v.SetDefault("adapters.invibes.endpoint", "https://{{.ZoneID}}.videostep.com/bid/ServerBidAdContent") From e5b3939294ca29d4fdf421e850b24a36e18dc04a Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Fri, 3 Jun 2022 09:16:37 -0400 Subject: [PATCH 04/22] unit test template --- adapters/kargo/kargo_test.go | 20 ++ .../kargo/kargotest/exemplary/banner.json | 247 ++++++++++++++++++ adapters/kargo/params_test.go | 43 +++ 3 files changed, 310 insertions(+) create mode 100644 adapters/kargo/kargo_test.go create mode 100644 adapters/kargo/kargotest/exemplary/banner.json create mode 100644 adapters/kargo/params_test.go diff --git a/adapters/kargo/kargo_test.go b/adapters/kargo/kargo_test.go new file mode 100644 index 00000000000..0936cfa4046 --- /dev/null +++ b/adapters/kargo/kargo_test.go @@ -0,0 +1,20 @@ +package kargo + +import ( + "testing" + + "github.com/prebid/prebid-server/adapters/adapterstest" + "github.com/prebid/prebid-server/config" + "github.com/prebid/prebid-server/openrtb_ext" +) + +func TestJsonSamples(t *testing.T) { + bidder, buildErr := Builder(openrtb_ext.BidderKargo, config.Adapter{ + Endpoint: "http://example.com/bid"}) + + if buildErr != nil { + t.Fatalf("Builder returned unexpected error %v", buildErr) + } + + adapterstest.RunJSONBidderTest(t, "kargotest", bidder) +} diff --git a/adapters/kargo/kargotest/exemplary/banner.json b/adapters/kargo/kargotest/exemplary/banner.json new file mode 100644 index 00000000000..fd7c9a5bb3e --- /dev/null +++ b/adapters/kargo/kargotest/exemplary/banner.json @@ -0,0 +1,247 @@ +{ + "mockBidRequest": { + "at": 1, + "id": "108074d0-0b2b-4294", + "imp": [ + { + "id": "b9ec7177-a4cd-4960", + "bidfloor": 0.1, + "banner": { + "w": 320, + "h": 50, + "format": [ + { + "w": 320, + "h": 50 + }, + { + "w": 320, + "h": 150 + } + ], + "pos": 1, + "expdir": [ + 1 + ] + }, + "pmp": { + "private_auction": 0, + "deals": [] + }, + "instl": 0, + "tagid": "2222", + "exp": 0, + "secure": 1, + "iframebuster": [ + "ALL" + ], + "ext": { + "multiresponse": true, + "tpid": null, + "transcoding": true + } + } + ], + "site": { + "id": "340", + "domain": "www.lifeandstylemag.com", + "page": "https://www.lifeandstylemag.com/", + "ref": "", + "mobile": 1, + "publisher": null + }, + "device": { + "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", + "geo": { + "ipservice": 4, + "country": "US", + "region": "NY", + "metro": "501", + "city": "Manhattan", + "zip": "11372" + }, + "ip": "127.0.0.1", + "devicetype": 4, + "make": "Apple", + "model": "iPhone", + "os": "iOS", + "osv": "11_0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0, + "lmt": 0 + }, + "user": { + "id": "e5ba0ca6-9b37-4d54", + "ext": { + "mt": [] + }, + "buyeruid": "", + "gender": "F", + "yob": 1977 + }, + "allimps": 0, + "test": 0, + "tmax": 125, + "source": { + "fd": 1 + } + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://example.com/bid", + "body": { + "at": 1, + "id": "108074d0-0b2b-4294", + "imp": [ + { + "id": "b9ec7177-a4cd-4960", + "bidfloor": 0.1, + "banner": { + "w": 320, + "h": 50, + "format": [ + { + "w": 320, + "h": 50 + }, + { + "w": 320, + "h": 150 + } + ], + "pos": 1, + "expdir": [ + 1 + ] + }, + "pmp": { + "private_auction": 0, + "deals": [] + }, + "instl": 0, + "tagid": "2222", + "exp": 0, + "secure": 1, + "iframebuster": [ + "ALL" + ], + "ext": { + "multiresponse": true, + "tpid": null, + "transcoding": true + } + } + ], + "site": { + "id": "340", + "domain": "www.lifeandstylemag.com", + "page": "https://www.lifeandstylemag.com/", + "ref": "", + "mobile": 1, + "publisher": null + }, + "device": { + "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", + "geo": { + "ipservice": 4, + "country": "US", + "region": "NY", + "metro": "501", + "city": "Manhattan", + "zip": "11372" + }, + "ip": "127.0.0.1", + "devicetype": 4, + "make": "Apple", + "model": "iPhone", + "os": "iOS", + "osv": "11_0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0, + "lmt": 0 + }, + "user": { + "id": "e5ba0ca6-9b37-4d54", + "ext": { + "mt": [] + }, + "buyeruid": "", + "gender": "F", + "yob": 1977 + }, + "allimps": 0, + "test": 0, + "tmax": 125, + "source": { + "fd": 1 + } + } + }, + "mockResponse": { + "status": 200, + "body": { + "id": "108074d0-0b2b-4294", + "seatbid": [ + { + "bid": [ + { + "id": "test-request-id", + "impid": "test-imp-id", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": [ + "example.com" + ], + "cid": "test-cid", + "crid": "test-crid", + "cat": [ + "IAB13" + ], + "w": 300, + "h": 300 + } + ], + "seat": "_b345" + } + ], + "bidid": "345", + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "currency": "USD", + "bids": [ + { + "bid": { + "id": "test-request-id", + "impid": "test-imp-id", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": [ + "example.com" + ], + "cid": "test-cid", + "crid": "test-crid", + "cat": [ + "IAB13" + ], + "w": 300, + "h": 300 + }, + "type": "banner" + } + ] + } + ] + } + \ No newline at end of file diff --git a/adapters/kargo/params_test.go b/adapters/kargo/params_test.go new file mode 100644 index 00000000000..696ce1ad983 --- /dev/null +++ b/adapters/kargo/params_test.go @@ -0,0 +1,43 @@ +package kargo + +import ( + "encoding/json" + "testing" + + "github.com/prebid/prebid-server/openrtb_ext" +) + +func TestValidParams(t *testing.T) { + validator, err := openrtb_ext.NewBidderParamsValidator("../../static/bidder-params") + if err != nil { + t.Fatalf("Failed to fetch the json schema. %v", err) + } + + for _, p := range validParams { + if err := validator.Validate(openrtb_ext.BidderKargo, json.RawMessage(p)); err != nil { + t.Errorf("Schema rejected valid params: %s", p) + } + } +} + +func TestInvalidParams(t *testing.T) { + validator, err := openrtb_ext.NewBidderParamsValidator("../../static/bidder-params") + if err != nil { + t.Fatalf("Failed to fetch the json schema. %v", err) + } + + for _, p := range invalidParams { + if err := validator.Validate(openrtb_ext.BidderKargo, json.RawMessage(p)); err == nil { + t.Errorf("Schema allowed invalid params: %s", p) + } + } +} + +var validParams = []string{ + `{"placementId": ""}`, + `{"placementId": "_mx764d"}`, +} + +var invalidParams = []string{ + `{"placementId": 42}`, +} From b4f8545e0905473fef939e09fc04e00e506e6d14 Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Tue, 7 Jun 2022 18:13:50 -0400 Subject: [PATCH 05/22] banner and native jsons --- .../kargo/kargotest/exemplary/banner.json | 505 ++++++++++-------- .../kargo/kargotest/exemplary/native.json | 316 +++++++++++ 2 files changed, 594 insertions(+), 227 deletions(-) create mode 100644 adapters/kargo/kargotest/exemplary/native.json diff --git a/adapters/kargo/kargotest/exemplary/banner.json b/adapters/kargo/kargotest/exemplary/banner.json index fd7c9a5bb3e..9223b8528d3 100644 --- a/adapters/kargo/kargotest/exemplary/banner.json +++ b/adapters/kargo/kargotest/exemplary/banner.json @@ -1,247 +1,298 @@ { - "mockBidRequest": { - "at": 1, - "id": "108074d0-0b2b-4294", - "imp": [ - { - "id": "b9ec7177-a4cd-4960", - "bidfloor": 0.1, - "banner": { - "w": 320, - "h": 50, - "format": [ - { - "w": 320, - "h": 50 - }, - { - "w": 320, - "h": 150 - } - ], - "pos": 1, - "expdir": [ - 1 - ] - }, - "pmp": { - "private_auction": 0, - "deals": [] - }, - "instl": 0, - "tagid": "2222", - "exp": 0, - "secure": 1, - "iframebuster": [ - "ALL" + "mockBidRequest": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "bidfloor": 0, + "banner": { + "w": 300, + "h": 250, + "format": [ + { + "w": 300, + "h": 250 + } ], - "ext": { + "pos": 0, + "expdir": [1, 2, 3, 4, 5] + }, + "video": {}, + "native": {}, + "pmp": { + "private_auction": 0, + "deals": [ + { + "id": "TTD", + "bidfloor": 0, + "at": 0, + "wseat": null, + "ext": { + "kargo": { + "isMainPG": false + } + } + } + ] + }, + "instl": 0, + "tagid": "73", + "secure": 1, + "iframebuster": ["ALL"], + "ext": { + "kargo": { "multiresponse": true, - "tpid": null, - "transcoding": true + "openAdID": "TDID", + "transcodingEnabled": true, + "whiteopsPredictionID": "123", + "auctionType": 1, + "adTagVersion": "v1" } } - ], - "site": { - "id": "340", - "domain": "www.lifeandstylemag.com", - "page": "https://www.lifeandstylemag.com/", - "ref": "", - "mobile": 1, - "publisher": null - }, - "device": { - "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - "geo": { - "ipservice": 4, - "country": "US", - "region": "NY", - "metro": "501", - "city": "Manhattan", - "zip": "11372" - }, - "ip": "127.0.0.1", - "devicetype": 4, - "make": "Apple", - "model": "iPhone", - "os": "iOS", - "osv": "11_0", - "carrier": "none", - "language": "en", - "connectiontype": 2, - "dnt": 0, - "lmt": 0 + } + ], + "site": { + "id": "", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "device": { + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", + "geo": { + "ipservice": 4, + "country": "US", + "region": "CO", + "metro": "751", + "city": "SomeCityInCo", + "zip": "11223" }, - "user": { - "id": "e5ba0ca6-9b37-4d54", - "ext": { - "mt": [] - }, - "buyeruid": "", - "gender": "F", - "yob": 1977 + "ip": "127.0.0.1", + "devicetype": 2, + "make": "Apple", + "model": "iPhone", + "os": "Windows", + "osv": "10.0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0 + }, + "user": { + "id": "07fb48ed", + "ext": { + "consent": "consent opt-out", + "kargo": { + "cerberusIDs": { + "86": "82fa2555" + } + } }, - "allimps": 0, - "test": 0, - "tmax": 125, - "source": { - "fd": 1 + "buyeruid": "" + }, + "regs": { + "ext": { + "us_privacy": "1" } }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "http://example.com/bid", - "body": { - "at": 1, - "id": "108074d0-0b2b-4294", - "imp": [ - { - "id": "b9ec7177-a4cd-4960", - "bidfloor": 0.1, - "banner": { - "w": 320, - "h": 50, - "format": [ - { - "w": 320, - "h": 50 - }, - { - "w": 320, - "h": 150 - } - ], - "pos": 1, - "expdir": [ - 1 - ] - }, - "pmp": { - "private_auction": 0, - "deals": [] - }, - "instl": 0, - "tagid": "2222", - "exp": 0, - "secure": 1, - "iframebuster": [ - "ALL" + "wseat": null, + "allimps": 0, + "test": 0, + "tmax": 200, + "ext": { + "kargo": { + "handler": "amazon", + "adaptor": "none", + "adSlotID": "_foobar", + "browser": "Chrome1", + "openBannerEnabled": true, + "openVideoEnabled": false, + "pmpBannerEnabled": false, + "pmpNativeEnabled": true + } + } + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://example.com/bid", + "body": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "bidfloor": 0, + "banner": { + "w": 300, + "h": 250, + "format": [ + { + "w": 300, + "h": 250 + } ], - "ext": { + "pos": 0, + "expdir": [1, 2, 3, 4, 5] + }, + "video": {}, + "native": {}, + "pmp": { + "private_auction": 0, + "deals": [ + { + "id": "TTD", + "bidfloor": 0, + "at": 0, + "wseat": null, + "ext": { + "kargo": { + "isMainPG": false + } + } + } + ] + }, + "instl": 0, + "tagid": "73", + "secure": 1, + "iframebuster": ["ALL"], + "ext": { + "kargo": { "multiresponse": true, - "tpid": null, - "transcoding": true + "openAdID": "TDID", + "transcodingEnabled": true, + "whiteopsPredictionID": "123", + "auctionType": 1, + "adTagVersion": "v1" } } - ], - "site": { - "id": "340", - "domain": "www.lifeandstylemag.com", - "page": "https://www.lifeandstylemag.com/", - "ref": "", - "mobile": 1, - "publisher": null - }, - "device": { - "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - "geo": { - "ipservice": 4, - "country": "US", - "region": "NY", - "metro": "501", - "city": "Manhattan", - "zip": "11372" - }, - "ip": "127.0.0.1", - "devicetype": 4, - "make": "Apple", - "model": "iPhone", - "os": "iOS", - "osv": "11_0", - "carrier": "none", - "language": "en", - "connectiontype": 2, - "dnt": 0, - "lmt": 0 + } + ], + "site": { + "id": "", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "device": { + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", + "geo": { + "ipservice": 4, + "country": "US", + "region": "CO", + "metro": "751", + "city": "SomeCityInCo", + "zip": "11223" }, - "user": { - "id": "e5ba0ca6-9b37-4d54", - "ext": { - "mt": [] - }, - "buyeruid": "", - "gender": "F", - "yob": 1977 + "ip": "127.0.0.1", + "devicetype": 2, + "make": "Apple", + "model": "iPhone", + "os": "Windows", + "osv": "10.0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0 + }, + "user": { + "id": "07fb48ed", + "ext": { + "consent": "consent opt-out", + "kargo": { + "cerberusIDs": { + "86": "82fa2555" + } + } }, - "allimps": 0, - "test": 0, - "tmax": 125, - "source": { - "fd": 1 + "buyeruid": "" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "wseat": null, + "allimps": 0, + "test": 0, + "tmax": 200, + "ext": { + "kargo": { + "handler": "amazon", + "adaptor": "none", + "adSlotID": "_foobar", + "browser": "Chrome1", + "openBannerEnabled": true, + "openVideoEnabled": false, + "pmpBannerEnabled": false, + "pmpNativeEnabled": true } - } - }, - "mockResponse": { - "status": 200, - "body": { - "id": "108074d0-0b2b-4294", - "seatbid": [ - { - "bid": [ - { - "id": "test-request-id", - "impid": "test-imp-id", - "price": 10, - "nurl": "http://example.com/win/10", - "adm": "
ad
", - "adomain": [ - "example.com" - ], - "cid": "test-cid", - "crid": "test-crid", - "cat": [ - "IAB13" - ], - "w": 300, - "h": 300 - } - ], - "seat": "_b345" - } - ], - "bidid": "345", - "cur": "USD" } } - } - ], - "expectedBidResponses": [ - { - "currency": "USD", - "bids": [ - { - "bid": { - "id": "test-request-id", - "impid": "test-imp-id", - "price": 10, - "nurl": "http://example.com/win/10", - "adm": "
ad
", - "adomain": [ - "example.com" - ], - "cid": "test-cid", - "crid": "test-crid", - "cat": [ - "IAB13" + }, + "mockResponse": { + "status": 200, + "body": { + "id": "5f4d1e01", + "seatbid": [ + { + "bid": [ + { + "id": "8b1bdcca", + "impid": "5f4d1e01", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": ["example.com"], + "cid": "test-cid", + "crid": "test-crid", + "cat": ["IAB13"], + "w": 300, + "h": 300 + } ], - "w": 300, - "h": 300 - }, - "type": "banner" - } - ] + "seat": "_b345" + } + ], + "bidid": "8b1bdcca", + "cur": "USD" + } } - ] - } - \ No newline at end of file + } + ], + "expectedBidResponses": [ + { + "currency": "USD", + "bids": [ + { + "bid": { + "id": "8b1bdcca", + "impid": "5f4d1e01", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": ["example.com"], + "cid": "test-cid", + "crid": "test-crid", + "cat": ["IAB13"], + "w": 300, + "h": 300 + }, + "type": "banner" + } + ] + } + ] +} diff --git a/adapters/kargo/kargotest/exemplary/native.json b/adapters/kargo/kargotest/exemplary/native.json new file mode 100644 index 00000000000..3c0faf74599 --- /dev/null +++ b/adapters/kargo/kargotest/exemplary/native.json @@ -0,0 +1,316 @@ +{ + "mockBidRequest": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "bidfloor": 0, + "banner": { + "w": 300, + "h": 250, + "format": [ + { + "w": 300, + "h": 250 + } + ], + "pos": 0, + "expdir": [1,2,3,4,5] + }, + "video": { + "skip":0, + "playbackmethod":[2] + }, + "native": { + "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" + }, + "pmp": { + "private_auction": 0, + "deals": [ + { + "id": "TTD", + "bidfloor": 0, + "at": 0, + "wseat": null, + "ext": { + "kargo" : { + "isMainPG": false + } + } + } + ] + }, + "instl": 0, + "tagid": "73", + "secure": 1, + "iframebuster": [ + "ALL" + ], + "ext": { + "kargo": { + "multiresponse": true, + "openAdID": "TDID", + "transcodingEnabled": true, + "whiteopsPredictionID": "056ed297", + "auctionType": 1, + "adTagVersion": "v1" + } + } + } + ], + "site": { + "id": "", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "device": { + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", + "geo": { + "ipservice": 4, + "country": "US", + "region": "CO", + "metro": "751", + "city": "Ft Collins", + "zip": "80524" + }, + "ip": "127.0.0.1", + "devicetype": 2, + "make": "Apple", + "model": "iPhone", + "os": "Windows", + "osv": "10.0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0 + }, + "user": { + "id": "07fb48ed", + "ext": { + "consent": "consent opt-out", + "kargo": { + "cerberusIDs": { + "86": "82fa2555" + } + } + }, + "buyeruid": "" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "wseat": null, + "allimps": 0, + "test": 0, + "tmax": 200, + "ext": { + "kargo": { + "handler": "amazon", + "adaptor": "none", + "adSlotID": "_foobar", + "browser": "Chrome1", + "openBannerEnabled": true, + "openVideoEnabled": false, + "pmpBannerEnabled": false, + "pmpNativeEnabled": true + } + } + } + , + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://example.com/bid", + "body": { + + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "bidfloor": 0, + "banner": { + "w": 300, + "h": 250, + "format": [ + { + "w": 300, + "h": 250 + } + ], + "pos": 0, + "expdir": [1,2,3,4,5] + }, + "video": { + "skip":0, + "playbackmethod":[2] + }, + "native": { + "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" + }, + "pmp": { + "private_auction": 0, + "deals": [ + { + "id": "TTD", + "bidfloor": 0, + "at": 0, + "wseat": null, + "ext": { + "kargo" : { + "isMainPG": false + } + } + } + ] + }, + "instl": 0, + "tagid": "73", + "secure": 1, + "iframebuster": [ + "ALL" + ], + "ext": { + "kargo": { + "multiresponse": true, + "openAdID": "TDID", + "transcodingEnabled": true, + "whiteopsPredictionID": "056ed297", + "auctionType": 1, + "adTagVersion": "v1" + } + } + } + ], + "site": { + "id": "", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "device": { + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", + "geo": { + "ipservice": 4, + "country": "US", + "region": "CO", + "metro": "751", + "city": "Ft Collins", + "zip": "80524" + }, + "ip": "127.0.0.1", + "devicetype": 2, + "make": "Apple", + "model": "iPhone", + "os": "Windows", + "osv": "10.0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0 + }, + "user": { + "id": "07fb48ed", + "ext": { + "consent": "consent opt-out", + "kargo": { + "cerberusIDs": { + "86": "82fa2555" + } + } + }, + "buyeruid": "" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "wseat": null, + "allimps": 0, + "test": 0, + "tmax": 200, + "ext": { + "kargo": { + "handler": "amazon", + "adaptor": "none", + "adSlotID": "_foobar", + "browser": "Chrome1", + "openBannerEnabled": true, + "openVideoEnabled": false, + "pmpBannerEnabled": false, + "pmpNativeEnabled": true + } + } + } + }, + "mockResponse": { + "status": 200, + "body": { + "id": "5f4d1e01", + "seatbid": [ + { + "bid": [ + { + "id": "8b1bdcca", + "impid": "5f4d1e01", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": ["example.com"], + "cid": "test-cid", + "crid": "test-crid", + "cat": ["IAB13"], + "w": 300, + "h": 300 + } + ], + "seat": "_b345" + } + ], + "bidid": "8b1bdcca", + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "currency": "USD", + "bids": [ + { + "bid": { + "id": "8b1bdcca", + "impid": "5f4d1e01", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": ["example.com"], + "cid": "test-cid", + "crid": "test-crid", + "cat": ["IAB13"], + "w": 300, + "h": 300 + }, + "type": "banner" + } + ] + } + ] + } + + \ No newline at end of file From dd966293ea478157dcb6d44838e651fe800a5b66 Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Tue, 7 Jun 2022 18:37:15 -0400 Subject: [PATCH 06/22] tests passing --- .../kargo/kargotest/exemplary/banner.json | 51 ++++++++----------- .../kargo/kargotest/exemplary/native.json | 37 ++++---------- 2 files changed, 31 insertions(+), 57 deletions(-) diff --git a/adapters/kargo/kargotest/exemplary/banner.json b/adapters/kargo/kargotest/exemplary/banner.json index 9223b8528d3..4a53fbd93a9 100644 --- a/adapters/kargo/kargotest/exemplary/banner.json +++ b/adapters/kargo/kargotest/exemplary/banner.json @@ -5,10 +5,9 @@ "imp": [ { "id": "8b1bdcca", - "bidfloor": 0, "banner": { "w": 300, - "h": 250, + "h": 300, "format": [ { "w": 300, @@ -18,16 +17,16 @@ "pos": 0, "expdir": [1, 2, 3, 4, 5] }, - "video": {}, - "native": {}, + "video": { + "mimes": null + }, + "native": { + "request": "" + }, "pmp": { - "private_auction": 0, "deals": [ { "id": "TTD", - "bidfloor": 0, - "at": 0, - "wseat": null, "ext": { "kargo": { "isMainPG": false @@ -36,7 +35,6 @@ } ] }, - "instl": 0, "tagid": "73", "secure": 1, "iframebuster": ["ALL"], @@ -53,11 +51,11 @@ } ], "site": { - "id": "", + "id": "123", "domain": "www.dailymail.co.uk", "cat": ["IAB7"], "page": "https://www.dailymail.co.uk/", - "ref": "", + "ref": "https://www.dailymail.co.uk/", "mobile": 1, "publisher": { "id": "1" @@ -94,16 +92,13 @@ } } }, - "buyeruid": "" + "buyeruid": "345" }, "regs": { "ext": { "us_privacy": "1" } }, - "wseat": null, - "allimps": 0, - "test": 0, "tmax": 200, "ext": { "kargo": { @@ -128,10 +123,9 @@ "imp": [ { "id": "8b1bdcca", - "bidfloor": 0, "banner": { "w": 300, - "h": 250, + "h": 300, "format": [ { "w": 300, @@ -141,16 +135,16 @@ "pos": 0, "expdir": [1, 2, 3, 4, 5] }, - "video": {}, - "native": {}, + "video": { + "mimes": null + }, + "native": { + "request": "" + }, "pmp": { - "private_auction": 0, "deals": [ { "id": "TTD", - "bidfloor": 0, - "at": 0, - "wseat": null, "ext": { "kargo": { "isMainPG": false @@ -159,7 +153,6 @@ } ] }, - "instl": 0, "tagid": "73", "secure": 1, "iframebuster": ["ALL"], @@ -176,11 +169,11 @@ } ], "site": { - "id": "", + "id": "123", "domain": "www.dailymail.co.uk", "cat": ["IAB7"], "page": "https://www.dailymail.co.uk/", - "ref": "", + "ref": "https://www.dailymail.co.uk/", "mobile": 1, "publisher": { "id": "1" @@ -217,16 +210,13 @@ } } }, - "buyeruid": "" + "buyeruid": "345" }, "regs": { "ext": { "us_privacy": "1" } }, - "wseat": null, - "allimps": 0, - "test": 0, "tmax": 200, "ext": { "kargo": { @@ -274,7 +264,6 @@ ], "expectedBidResponses": [ { - "currency": "USD", "bids": [ { "bid": { diff --git a/adapters/kargo/kargotest/exemplary/native.json b/adapters/kargo/kargotest/exemplary/native.json index 3c0faf74599..74f54d74c28 100644 --- a/adapters/kargo/kargotest/exemplary/native.json +++ b/adapters/kargo/kargotest/exemplary/native.json @@ -5,10 +5,9 @@ "imp": [ { "id": "8b1bdcca", - "bidfloor": 0, "banner": { "w": 300, - "h": 250, + "h": 300, "format": [ { "w": 300, @@ -19,6 +18,7 @@ "expdir": [1,2,3,4,5] }, "video": { + "mimes": null, "skip":0, "playbackmethod":[2] }, @@ -26,13 +26,10 @@ "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" }, "pmp": { - "private_auction": 0, + "deals": [ { "id": "TTD", - "bidfloor": 0, - "at": 0, - "wseat": null, "ext": { "kargo" : { "isMainPG": false @@ -41,7 +38,6 @@ } ] }, - "instl": 0, "tagid": "73", "secure": 1, "iframebuster": [ @@ -60,11 +56,11 @@ } ], "site": { - "id": "", + "id": "123", "domain": "www.dailymail.co.uk", "cat": ["IAB7"], "page": "https://www.dailymail.co.uk/", - "ref": "", + "ref": "https://www.dailymail.co.uk/", "mobile": 1, "publisher": { "id": "1" @@ -101,16 +97,13 @@ } } }, - "buyeruid": "" + "buyeruid": "345" }, "regs": { "ext": { "us_privacy": "1" } }, - "wseat": null, - "allimps": 0, - "test": 0, "tmax": 200, "ext": { "kargo": { @@ -137,10 +130,9 @@ "imp": [ { "id": "8b1bdcca", - "bidfloor": 0, "banner": { "w": 300, - "h": 250, + "h": 300, "format": [ { "w": 300, @@ -151,6 +143,7 @@ "expdir": [1,2,3,4,5] }, "video": { + "mimes": null, "skip":0, "playbackmethod":[2] }, @@ -158,13 +151,9 @@ "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" }, "pmp": { - "private_auction": 0, "deals": [ { "id": "TTD", - "bidfloor": 0, - "at": 0, - "wseat": null, "ext": { "kargo" : { "isMainPG": false @@ -173,7 +162,6 @@ } ] }, - "instl": 0, "tagid": "73", "secure": 1, "iframebuster": [ @@ -192,11 +180,11 @@ } ], "site": { - "id": "", + "id": "123", "domain": "www.dailymail.co.uk", "cat": ["IAB7"], "page": "https://www.dailymail.co.uk/", - "ref": "", + "ref": "https://www.dailymail.co.uk/", "mobile": 1, "publisher": { "id": "1" @@ -233,16 +221,13 @@ } } }, - "buyeruid": "" + "buyeruid": "345" }, "regs": { "ext": { "us_privacy": "1" } }, - "wseat": null, - "allimps": 0, - "test": 0, "tmax": 200, "ext": { "kargo": { From 757501874c4320b9a7c5f2f8b2f56ef7820abd47 Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Wed, 8 Jun 2022 17:38:21 -0400 Subject: [PATCH 07/22] yaml fix --- static/bidder-info/kargo.yaml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/static/bidder-info/kargo.yaml b/static/bidder-info/kargo.yaml index 15b0ddfd421..3e15b751bca 100644 --- a/static/bidder-info/kargo.yaml +++ b/static/bidder-info/kargo.yaml @@ -1,19 +1,13 @@ maintainer: - email: kraken@kargo.com + email: "kraken@kargo.com" gvlVendorID: 972 modifyingVastXmlAllowed: true capabilities: - app: - mediaTypes: - - banner - - video - - native site: mediaTypes: - banner - video - native userSync: - redirect: - url: 'https://crb.kargo.com/api/v1/initsyncrnd/{UUID}?seed={SEED}&idx={INDEX}&gdpr={GDPR}&gdpr_consent={GDPR_CONSENT}&us_privacy={US_PRIVACY}'; - userMacro: $UID \ No newline at end of file + supports: + - redirect \ No newline at end of file From ee7d8f519b9cd3bb7891d5d197f2b823b481f854 Mon Sep 17 00:00:00 2001 From: ssadman22 <97482944+ssadman22@users.noreply.github.com> Date: Tue, 14 Jun 2022 14:47:17 -0400 Subject: [PATCH 08/22] Update kargo.yaml --- static/bidder-info/kargo.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/static/bidder-info/kargo.yaml b/static/bidder-info/kargo.yaml index 3e15b751bca..879f1e4d281 100644 --- a/static/bidder-info/kargo.yaml +++ b/static/bidder-info/kargo.yaml @@ -10,4 +10,5 @@ capabilities: - native userSync: supports: - - redirect \ No newline at end of file + - redirect + From 9445edc535f3efe6b4ed23121f35b1cea64ae4ea Mon Sep 17 00:00:00 2001 From: ssadman22 <97482944+ssadman22@users.noreply.github.com> Date: Tue, 14 Jun 2022 14:48:12 -0400 Subject: [PATCH 09/22] Update kargo.json --- static/bidder-params/kargo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/bidder-params/kargo.json b/static/bidder-params/kargo.json index 05eba6c62e8..51cfac61324 100644 --- a/static/bidder-params/kargo.json +++ b/static/bidder-params/kargo.json @@ -12,4 +12,4 @@ }, "required": ["placementId"] - } \ No newline at end of file + } From 1c7ea9e21e0259ad27fde16d286e5711bbfd8a21 Mon Sep 17 00:00:00 2001 From: Syed Sadman Date: Tue, 14 Jun 2022 15:48:19 -0400 Subject: [PATCH 10/22] spaces --- adapters/kargo/kargotest/exemplary/native.json | 3 +-- static/bidder-info/kargo.yaml | 3 ++- static/bidder-params/kargo.json | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/adapters/kargo/kargotest/exemplary/native.json b/adapters/kargo/kargotest/exemplary/native.json index 74f54d74c28..944f28ec443 100644 --- a/adapters/kargo/kargotest/exemplary/native.json +++ b/adapters/kargo/kargotest/exemplary/native.json @@ -297,5 +297,4 @@ } ] } - - \ No newline at end of file + \ No newline at end of file diff --git a/static/bidder-info/kargo.yaml b/static/bidder-info/kargo.yaml index 3e15b751bca..45a2b08fba1 100644 --- a/static/bidder-info/kargo.yaml +++ b/static/bidder-info/kargo.yaml @@ -10,4 +10,5 @@ capabilities: - native userSync: supports: - - redirect \ No newline at end of file + - redirect + \ No newline at end of file diff --git a/static/bidder-params/kargo.json b/static/bidder-params/kargo.json index 05eba6c62e8..b58df2df8e8 100644 --- a/static/bidder-params/kargo.json +++ b/static/bidder-params/kargo.json @@ -12,4 +12,5 @@ }, "required": ["placementId"] - } \ No newline at end of file + } + \ No newline at end of file From 2b81c3087cb49754c370cd7775c0d268cde54fdc Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Tue, 21 Jun 2022 17:49:52 -0400 Subject: [PATCH 11/22] replaced placementId with tagid --- adapters/kargo/params_test.go | 9 ++++++--- openrtb_ext/imp_kargo.go | 2 +- static/bidder-params/kargo.json | 6 +++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/adapters/kargo/params_test.go b/adapters/kargo/params_test.go index 696ce1ad983..6b8e3b19551 100644 --- a/adapters/kargo/params_test.go +++ b/adapters/kargo/params_test.go @@ -34,10 +34,13 @@ func TestInvalidParams(t *testing.T) { } var validParams = []string{ - `{"placementId": ""}`, - `{"placementId": "_mx764d"}`, + `{"tagid": ""}`, + `{"tagid": "11523"}`, } var invalidParams = []string{ - `{"placementId": 42}`, + `{"tagid": 42}`, + `{"tagid": }`, + `{"id": }`, + `{}`, } diff --git a/openrtb_ext/imp_kargo.go b/openrtb_ext/imp_kargo.go index 7e6d0789da0..e287a275655 100644 --- a/openrtb_ext/imp_kargo.go +++ b/openrtb_ext/imp_kargo.go @@ -1,5 +1,5 @@ package openrtb_ext type ImpExtKargo struct { - PlacementID string `json:"placementId"` + TagId string `json:"tagid"` } diff --git a/static/bidder-params/kargo.json b/static/bidder-params/kargo.json index 51cfac61324..6e544296295 100644 --- a/static/bidder-params/kargo.json +++ b/static/bidder-params/kargo.json @@ -5,11 +5,11 @@ "type": "object", "properties": { - "placementId": { + "tagid": { "type": "string", - "description": "Placement ID" + "description": "An ID which identifies the adslot placement. Equivalent to the id of target inventory, ad unit code, or placement id" } }, - "required": ["placementId"] + "required": ["tagid"] } From 185ab4bf6fe7ad031d06ccbf33d676f4383d19d4 Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Tue, 21 Jun 2022 17:51:49 -0400 Subject: [PATCH 12/22] un-export KargoAdapter to adapter --- adapters/kargo/kargo.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index 437b12ac0d6..6d456c35eb1 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -12,20 +12,20 @@ import ( "github.com/prebid/prebid-server/openrtb_ext" ) -type KargoAdapter struct { +type adapter struct { URI string } // Builder builds a new instance of the Kargo adapter for the given bidder with the given config. func Builder(bidderName openrtb_ext.BidderName, config config.Adapter) (adapters.Bidder, error) { - bidder := &KargoAdapter{ + bidder := &adapter{ URI: config.Endpoint, // base url of bidding server } return bidder, nil } // MakeRequests creates outgoing requests to the Kargo bidding server. -func (a *KargoAdapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) { +func (a *adapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) { requestJSON, err := json.Marshal(request) if err != nil { return nil, []error{err} @@ -41,7 +41,7 @@ func (a *KargoAdapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *a } // MakeBids receives a bid response from the Kargo bidding server and creates bids for the publishers auction. -func (a *KargoAdapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.RequestData, responseData *adapters.ResponseData) (*adapters.BidderResponse, []error) { +func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.RequestData, responseData *adapters.ResponseData) (*adapters.BidderResponse, []error) { if responseData.StatusCode == http.StatusNoContent { return nil, nil } From 0bc2b80e9430c2be28736ecc26607c7fdbe0e9da Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Wed, 22 Jun 2022 10:34:02 -0400 Subject: [PATCH 13/22] Added supplemental tests --- adapters/kargo/kargo.go | 11 +- .../supplemental/status-bad-request.json | 36 ++++ .../supplemental/status-no-content.json | 203 ++++++++++++++++++ 3 files changed, 241 insertions(+), 9 deletions(-) create mode 100644 adapters/kargo/kargotest/supplemental/status-bad-request.json create mode 100644 adapters/kargo/kargotest/supplemental/status-no-content.json diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index 6d456c35eb1..64a85c46ebb 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -46,13 +46,6 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R return nil, nil } - if responseData.StatusCode == http.StatusBadRequest { - err := &errortypes.BadInput{ - Message: "Unexpected status code: 400. Bad request from publisher. Run with request.debug = 1 for more info.", - } - return nil, []error{err} - } - if responseData.StatusCode != http.StatusOK { err := &errortypes.BadServerResponse{ Message: fmt.Sprintf("Unexpected status code: %d. Run with request.debug = 1 for more info.", responseData.StatusCode), @@ -80,9 +73,9 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R } // getMediaTypeForImp checks the media type on the request Impression. -func getMediaTypeForImp(impID string, reqImps []openrtb2.Imp) openrtb_ext.BidType { +func getMediaTypeForImp(bidImpID string, reqImps []openrtb2.Imp) openrtb_ext.BidType { for _, imp := range reqImps { - if imp.ID == impID { + if imp.ID == bidImpID { switch { case imp.Banner != nil: return openrtb_ext.BidTypeBanner diff --git a/adapters/kargo/kargotest/supplemental/status-bad-request.json b/adapters/kargo/kargotest/supplemental/status-bad-request.json new file mode 100644 index 00000000000..3cb98431def --- /dev/null +++ b/adapters/kargo/kargotest/supplemental/status-bad-request.json @@ -0,0 +1,36 @@ +{ + "mockBidRequest": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + ], + "tmax": 200 + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://example.com/bid", + "body": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + ], + "tmax": 200 + } + }, + "mockResponse": { + "status": 400, + "body": { + } + } + } + ], + "expectedBidResponses": [], + "expectedMakeBidsErrors": [ + { + "value": "Unexpected status code: 400. Run with request.debug = 1 for more info.", + "comparison": "literal" + } + ] + } + \ No newline at end of file diff --git a/adapters/kargo/kargotest/supplemental/status-no-content.json b/adapters/kargo/kargotest/supplemental/status-no-content.json new file mode 100644 index 00000000000..e88381f0f35 --- /dev/null +++ b/adapters/kargo/kargotest/supplemental/status-no-content.json @@ -0,0 +1,203 @@ +{ + "mockBidRequest": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "banner": { + "w": 300, + "h": 300, + "format": [ + { + "w": 300, + "h": 250 + } + ], + "pos": 0, + "expdir": [1, 2, 3, 4, 5] + }, + "video": { + "mimes": null + }, + "native": { + "request": "" + }, + "pmp": { + "deals": [ + { + "id": "TTD", + "ext": { + "kargo": { + "isMainPG": false + } + } + } + ] + }, + "tagid": "73", + "secure": 1, + "iframebuster": ["ALL"], + "ext": { + "kargo": { + "multiresponse": true, + "openAdID": "TDID", + "transcodingEnabled": true, + "whiteopsPredictionID": "123", + "auctionType": 1, + "adTagVersion": "v1" + } + } + } + ], + "site": { + "id": "123", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "https://www.dailymail.co.uk/", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "user": { + "id": "07fb48ed", + "ext": { + "consent": "consent opt-out", + "kargo": { + "cerberusIDs": { + "86": "82fa2555" + } + } + }, + "buyeruid": "345" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "tmax": 200, + "ext": { + "kargo": { + "handler": "amazon", + "adaptor": "none", + "adSlotID": "_foobar", + "browser": "Chrome1", + "openBannerEnabled": true, + "openVideoEnabled": false, + "pmpBannerEnabled": false, + "pmpNativeEnabled": true + } + } + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://example.com/bid", + "body": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "banner": { + "w": 300, + "h": 300, + "format": [ + { + "w": 300, + "h": 250 + } + ], + "pos": 0, + "expdir": [1, 2, 3, 4, 5] + }, + "video": { + "mimes": null + }, + "native": { + "request": "" + }, + "pmp": { + "deals": [ + { + "id": "TTD", + "ext": { + "kargo": { + "isMainPG": false + } + } + } + ] + }, + "tagid": "73", + "secure": 1, + "iframebuster": ["ALL"], + "ext": { + "kargo": { + "multiresponse": true, + "openAdID": "TDID", + "transcodingEnabled": true, + "whiteopsPredictionID": "123", + "auctionType": 1, + "adTagVersion": "v1" + } + } + } + ], + "site": { + "id": "123", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "https://www.dailymail.co.uk/", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "user": { + "id": "07fb48ed", + "ext": { + "consent": "consent opt-out", + "kargo": { + "cerberusIDs": { + "86": "82fa2555" + } + } + }, + "buyeruid": "345" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "tmax": 200, + "ext": { + "kargo": { + "handler": "amazon", + "adaptor": "none", + "adSlotID": "_foobar", + "browser": "Chrome1", + "openBannerEnabled": true, + "openVideoEnabled": false, + "pmpBannerEnabled": false, + "pmpNativeEnabled": true + } + } + } + }, + "mockResponse": { + "status": 204, + "body": { + } + } + } + ], + "expectedBidResponses": [ + ] + } + \ No newline at end of file From cfcc8e5d52e554a32e6473500e466287b2a4b103 Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Wed, 22 Jun 2022 10:52:03 -0400 Subject: [PATCH 14/22] Add native, remove some fields from test --- adapters/kargo/kargo.go | 8 +- .../kargo/kargotest/exemplary/banner.json | 70 +---- .../kargo/kargotest/exemplary/native.json | 74 +----- adapters/kargo/kargotest/exemplary/video.json | 242 ++++++++++++++++++ 4 files changed, 251 insertions(+), 143 deletions(-) create mode 100644 adapters/kargo/kargotest/exemplary/video.json diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index 64a85c46ebb..e0980899187 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -77,12 +77,12 @@ func getMediaTypeForImp(bidImpID string, reqImps []openrtb2.Imp) openrtb_ext.Bid for _, imp := range reqImps { if imp.ID == bidImpID { switch { - case imp.Banner != nil: - return openrtb_ext.BidTypeBanner - case imp.Native != nil: - return openrtb_ext.BidTypeNative case imp.Video != nil: return openrtb_ext.BidTypeVideo + case imp.Native != nil: + return openrtb_ext.BidTypeNative + case imp.Banner != nil: + return openrtb_ext.BidTypeBanner } } } diff --git a/adapters/kargo/kargotest/exemplary/banner.json b/adapters/kargo/kargotest/exemplary/banner.json index 4a53fbd93a9..f9bd84bcced 100644 --- a/adapters/kargo/kargotest/exemplary/banner.json +++ b/adapters/kargo/kargotest/exemplary/banner.json @@ -17,20 +17,11 @@ "pos": 0, "expdir": [1, 2, 3, 4, 5] }, - "video": { - "mimes": null - }, - "native": { - "request": "" - }, "pmp": { "deals": [ { "id": "TTD", "ext": { - "kargo": { - "isMainPG": false - } } } ] @@ -39,14 +30,6 @@ "secure": 1, "iframebuster": ["ALL"], "ext": { - "kargo": { - "multiresponse": true, - "openAdID": "TDID", - "transcodingEnabled": true, - "whiteopsPredictionID": "123", - "auctionType": 1, - "adTagVersion": "v1" - } } } ], @@ -85,12 +68,6 @@ "user": { "id": "07fb48ed", "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" - } - } }, "buyeruid": "345" }, @@ -101,16 +78,6 @@ }, "tmax": 200, "ext": { - "kargo": { - "handler": "amazon", - "adaptor": "none", - "adSlotID": "_foobar", - "browser": "Chrome1", - "openBannerEnabled": true, - "openVideoEnabled": false, - "pmpBannerEnabled": false, - "pmpNativeEnabled": true - } } }, "httpCalls": [ @@ -135,20 +102,11 @@ "pos": 0, "expdir": [1, 2, 3, 4, 5] }, - "video": { - "mimes": null - }, - "native": { - "request": "" - }, "pmp": { "deals": [ { "id": "TTD", "ext": { - "kargo": { - "isMainPG": false - } } } ] @@ -157,14 +115,6 @@ "secure": 1, "iframebuster": ["ALL"], "ext": { - "kargo": { - "multiresponse": true, - "openAdID": "TDID", - "transcodingEnabled": true, - "whiteopsPredictionID": "123", - "auctionType": 1, - "adTagVersion": "v1" - } } } ], @@ -203,12 +153,6 @@ "user": { "id": "07fb48ed", "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" - } - } }, "buyeruid": "345" }, @@ -219,16 +163,6 @@ }, "tmax": 200, "ext": { - "kargo": { - "handler": "amazon", - "adaptor": "none", - "adSlotID": "_foobar", - "browser": "Chrome1", - "openBannerEnabled": true, - "openVideoEnabled": false, - "pmpBannerEnabled": false, - "pmpNativeEnabled": true - } } } }, @@ -241,7 +175,7 @@ "bid": [ { "id": "8b1bdcca", - "impid": "5f4d1e01", + "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", "adm": "
ad
", @@ -268,7 +202,7 @@ { "bid": { "id": "8b1bdcca", - "impid": "5f4d1e01", + "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", "adm": "
ad
", diff --git a/adapters/kargo/kargotest/exemplary/native.json b/adapters/kargo/kargotest/exemplary/native.json index 944f28ec443..e0e835b8061 100644 --- a/adapters/kargo/kargotest/exemplary/native.json +++ b/adapters/kargo/kargotest/exemplary/native.json @@ -17,24 +17,13 @@ "pos": 0, "expdir": [1,2,3,4,5] }, - "video": { - "mimes": null, - "skip":0, - "playbackmethod":[2] - }, "native": { "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" }, "pmp": { - "deals": [ { - "id": "TTD", - "ext": { - "kargo" : { - "isMainPG": false - } - } + "id": "TTD" } ] }, @@ -44,14 +33,6 @@ "ALL" ], "ext": { - "kargo": { - "multiresponse": true, - "openAdID": "TDID", - "transcodingEnabled": true, - "whiteopsPredictionID": "056ed297", - "auctionType": 1, - "adTagVersion": "v1" - } } } ], @@ -90,12 +71,6 @@ "user": { "id": "07fb48ed", "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" - } - } }, "buyeruid": "345" }, @@ -106,16 +81,6 @@ }, "tmax": 200, "ext": { - "kargo": { - "handler": "amazon", - "adaptor": "none", - "adSlotID": "_foobar", - "browser": "Chrome1", - "openBannerEnabled": true, - "openVideoEnabled": false, - "pmpBannerEnabled": false, - "pmpNativeEnabled": true - } } } , @@ -124,7 +89,6 @@ "expectedRequest": { "uri": "http://example.com/bid", "body": { - "id": "5f4d1e01", "at": 1, "imp": [ @@ -142,11 +106,6 @@ "pos": 0, "expdir": [1,2,3,4,5] }, - "video": { - "mimes": null, - "skip":0, - "playbackmethod":[2] - }, "native": { "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" }, @@ -155,9 +114,6 @@ { "id": "TTD", "ext": { - "kargo" : { - "isMainPG": false - } } } ] @@ -168,14 +124,6 @@ "ALL" ], "ext": { - "kargo": { - "multiresponse": true, - "openAdID": "TDID", - "transcodingEnabled": true, - "whiteopsPredictionID": "056ed297", - "auctionType": 1, - "adTagVersion": "v1" - } } } ], @@ -214,12 +162,6 @@ "user": { "id": "07fb48ed", "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" - } - } }, "buyeruid": "345" }, @@ -230,16 +172,6 @@ }, "tmax": 200, "ext": { - "kargo": { - "handler": "amazon", - "adaptor": "none", - "adSlotID": "_foobar", - "browser": "Chrome1", - "openBannerEnabled": true, - "openVideoEnabled": false, - "pmpBannerEnabled": false, - "pmpNativeEnabled": true - } } } }, @@ -252,7 +184,7 @@ "bid": [ { "id": "8b1bdcca", - "impid": "5f4d1e01", + "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", "adm": "
ad
", @@ -280,7 +212,7 @@ { "bid": { "id": "8b1bdcca", - "impid": "5f4d1e01", + "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", "adm": "
ad
", diff --git a/adapters/kargo/kargotest/exemplary/video.json b/adapters/kargo/kargotest/exemplary/video.json new file mode 100644 index 00000000000..caa7890f739 --- /dev/null +++ b/adapters/kargo/kargotest/exemplary/video.json @@ -0,0 +1,242 @@ +{ + "mockBidRequest": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "banner": { + "w": 300, + "h": 300, + "format": [ + { + "w": 300, + "h": 250 + } + ], + "pos": 0, + "expdir": [1,2,3,4,5] + }, + "video": { + "mimes": null, + "skip":0, + "playbackmethod":[2] + }, + "native": { + "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" + }, + "pmp": { + "deals": [ + { + "id": "TTD" + } + ] + }, + "tagid": "73", + "secure": 1, + "iframebuster": [ + "ALL" + ], + "ext": { + } + } + ], + "site": { + "id": "123", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "https://www.dailymail.co.uk/", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "device": { + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", + "geo": { + "ipservice": 4, + "country": "US", + "region": "CO", + "metro": "751", + "city": "Ft Collins", + "zip": "80524" + }, + "ip": "127.0.0.1", + "devicetype": 2, + "make": "Apple", + "model": "iPhone", + "os": "Windows", + "osv": "10.0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0 + }, + "user": { + "id": "07fb48ed", + "ext": { + }, + "buyeruid": "345" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "tmax": 200, + "ext": { + } + } + , + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://example.com/bid", + "body": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "banner": { + "w": 300, + "h": 300, + "format": [ + { + "w": 300, + "h": 250 + } + ], + "pos": 0, + "expdir": [1,2,3,4,5] + }, + "video": { + "mimes": null, + "skip":0, + "playbackmethod":[2] + }, + "native": { + "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" + }, + "pmp": { + "deals": [ + { + "id": "TTD", + "ext": { + } + } + ] + }, + "tagid": "73", + "secure": 1, + "iframebuster": [ + "ALL" + ], + "ext": { + } + } + ], + "site": { + "id": "123", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "https://www.dailymail.co.uk/", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "device": { + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", + "geo": { + "ipservice": 4, + "country": "US", + "region": "CO", + "metro": "751", + "city": "Ft Collins", + "zip": "80524" + }, + "ip": "127.0.0.1", + "devicetype": 2, + "make": "Apple", + "model": "iPhone", + "os": "Windows", + "osv": "10.0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0 + }, + "user": { + "id": "07fb48ed", + "ext": { + }, + "buyeruid": "345" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "tmax": 200, + "ext": { + } + } + }, + "mockResponse": { + "status": 200, + "body": { + "id": "5f4d1e01", + "seatbid": [ + { + "bid": [ + { + "id": "8b1bdcca", + "impid": "8b1bdcca", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": ["example.com"], + "cid": "test-cid", + "crid": "test-crid", + "cat": ["IAB13"], + "w": 300, + "h": 300 + } + ], + "seat": "_b345" + } + ], + "bidid": "8b1bdcca", + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "currency": "USD", + "bids": [ + { + "bid": { + "id": "8b1bdcca", + "impid": "8b1bdcca", + "price": 10, + "nurl": "http://example.com/win/10", + "adm": "
ad
", + "adomain": ["example.com"], + "cid": "test-cid", + "crid": "test-crid", + "cat": ["IAB13"], + "w": 300, + "h": 300 + }, + "type": "banner" + } + ] + } + ] + } + \ No newline at end of file From e9222c9872835a3183ca99bfbb6e6be6b0f07de9 Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Wed, 22 Jun 2022 11:47:24 -0400 Subject: [PATCH 15/22] local is buggy, test in dev --- adapters/kargo/kargotest/exemplary/native.json | 6 ++---- adapters/kargo/kargotest/exemplary/video.json | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/adapters/kargo/kargotest/exemplary/native.json b/adapters/kargo/kargotest/exemplary/native.json index e0e835b8061..24659643c50 100644 --- a/adapters/kargo/kargotest/exemplary/native.json +++ b/adapters/kargo/kargotest/exemplary/native.json @@ -112,9 +112,7 @@ "pmp": { "deals": [ { - "id": "TTD", - "ext": { - } + "id": "TTD" } ] }, @@ -223,7 +221,7 @@ "w": 300, "h": 300 }, - "type": "banner" + "type": "native" } ] } diff --git a/adapters/kargo/kargotest/exemplary/video.json b/adapters/kargo/kargotest/exemplary/video.json index caa7890f739..c3c1a0a0199 100644 --- a/adapters/kargo/kargotest/exemplary/video.json +++ b/adapters/kargo/kargotest/exemplary/video.json @@ -122,9 +122,7 @@ "pmp": { "deals": [ { - "id": "TTD", - "ext": { - } + "id": "TTD" } ] }, @@ -233,7 +231,7 @@ "w": 300, "h": 300 }, - "type": "banner" + "type": "video" } ] } From 17e5b9379d44879b8d7ac04fc942e3e7437f74ab Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Thu, 23 Jun 2022 18:12:09 -0400 Subject: [PATCH 16/22] remove redundant return --- adapters/kargo/kargo.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index e0980899187..88a7bb7e30f 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -81,8 +81,6 @@ func getMediaTypeForImp(bidImpID string, reqImps []openrtb2.Imp) openrtb_ext.Bid return openrtb_ext.BidTypeVideo case imp.Native != nil: return openrtb_ext.BidTypeNative - case imp.Banner != nil: - return openrtb_ext.BidTypeBanner } } } From 60f97d6979243cb2e588d15163ff45583aab1a2e Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Fri, 24 Jun 2022 12:30:07 -0400 Subject: [PATCH 17/22] adSlotId instead of tagId, get mediaType from ext --- adapters/kargo/kargo.go | 28 +-- .../kargo/kargotest/exemplary/banner.json | 32 +-- .../kargo/kargotest/exemplary/native.json | 28 +-- adapters/kargo/kargotest/exemplary/video.json | 186 ++++++++---------- adapters/kargo/params_test.go | 9 +- static/bidder-params/kargo.json | 4 +- 6 files changed, 125 insertions(+), 162 deletions(-) diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index 88a7bb7e30f..8f1489e343f 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -15,6 +15,9 @@ import ( type adapter struct { URI string } +type kargoExt struct { + MediaType string `json:"mediaType"` +} // Builder builds a new instance of the Kargo adapter for the given bidder with the given config. func Builder(bidderName openrtb_ext.BidderName, config config.Adapter) (adapters.Bidder, error) { @@ -61,10 +64,10 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R bidResponse := adapters.NewBidderResponseWithBidsCapacity(len(request.Imp)) bidResponse.Currency = response.Cur for _, seatBid := range response.SeatBid { - for i, bid := range seatBid.Bid { + for _, bid := range seatBid.Bid { b := &adapters.TypedBid{ - Bid: &seatBid.Bid[i], - BidType: getMediaTypeForImp(bid.ImpID, request.Imp), + Bid: &bid, + BidType: getMediaTypeForBid(bid.Ext), } bidResponse.Bids = append(bidResponse.Bids, b) } @@ -72,16 +75,15 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R return bidResponse, nil } -// getMediaTypeForImp checks the media type on the request Impression. -func getMediaTypeForImp(bidImpID string, reqImps []openrtb2.Imp) openrtb_ext.BidType { - for _, imp := range reqImps { - if imp.ID == bidImpID { - switch { - case imp.Video != nil: - return openrtb_ext.BidTypeVideo - case imp.Native != nil: - return openrtb_ext.BidTypeNative - } +// getMediaTypeForBid checks the media type of the bid. +func getMediaTypeForBid(ext json.RawMessage) openrtb_ext.BidType { + var impExt kargoExt + if err := json.Unmarshal(ext, &impExt); err == nil { + switch impExt.MediaType { + case string(openrtb_ext.BidTypeVideo): + return openrtb_ext.BidTypeVideo + case string(openrtb_ext.BidTypeNative): + return openrtb_ext.BidTypeNative } } return openrtb_ext.BidTypeBanner diff --git a/adapters/kargo/kargotest/exemplary/banner.json b/adapters/kargo/kargotest/exemplary/banner.json index f9bd84bcced..db14ee8b792 100644 --- a/adapters/kargo/kargotest/exemplary/banner.json +++ b/adapters/kargo/kargotest/exemplary/banner.json @@ -17,19 +17,11 @@ "pos": 0, "expdir": [1, 2, 3, 4, 5] }, - "pmp": { - "deals": [ - { - "id": "TTD", - "ext": { - } - } - ] - }, "tagid": "73", "secure": 1, "iframebuster": ["ALL"], "ext": { + "adSlotID": "11523" } } ], @@ -102,19 +94,11 @@ "pos": 0, "expdir": [1, 2, 3, 4, 5] }, - "pmp": { - "deals": [ - { - "id": "TTD", - "ext": { - } - } - ] - }, "tagid": "73", "secure": 1, "iframebuster": ["ALL"], "ext": { + "adSlotID": "11523" } } ], @@ -174,7 +158,7 @@ { "bid": [ { - "id": "8b1bdcca", + "id": "67sadsac", "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", @@ -184,13 +168,14 @@ "crid": "test-crid", "cat": ["IAB13"], "w": 300, - "h": 300 + "h": 300, + "ext": {"mediaType": "banner"} } ], "seat": "_b345" } ], - "bidid": "8b1bdcca", + "bidid": "67sadsac", "cur": "USD" } } @@ -201,7 +186,7 @@ "bids": [ { "bid": { - "id": "8b1bdcca", + "id": "67sadsac", "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", @@ -211,7 +196,8 @@ "crid": "test-crid", "cat": ["IAB13"], "w": 300, - "h": 300 + "h": 300, + "ext": {"mediaType": "banner"} }, "type": "banner" } diff --git a/adapters/kargo/kargotest/exemplary/native.json b/adapters/kargo/kargotest/exemplary/native.json index 24659643c50..d0f03d6104f 100644 --- a/adapters/kargo/kargotest/exemplary/native.json +++ b/adapters/kargo/kargotest/exemplary/native.json @@ -20,19 +20,13 @@ "native": { "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" }, - "pmp": { - "deals": [ - { - "id": "TTD" - } - ] - }, "tagid": "73", "secure": 1, "iframebuster": [ "ALL" ], "ext": { + "adSlotID": "11523" } } ], @@ -109,19 +103,13 @@ "native": { "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" }, - "pmp": { - "deals": [ - { - "id": "TTD" - } - ] - }, "tagid": "73", "secure": 1, "iframebuster": [ "ALL" ], "ext": { + "adSlotID": "11523" } } ], @@ -181,7 +169,7 @@ { "bid": [ { - "id": "8b1bdcca", + "id": "67sadsac", "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", @@ -191,13 +179,14 @@ "crid": "test-crid", "cat": ["IAB13"], "w": 300, - "h": 300 + "h": 300, + "ext": {"mediaType": "native"} } ], "seat": "_b345" } ], - "bidid": "8b1bdcca", + "bidid": "67sadsac", "cur": "USD" } } @@ -209,7 +198,7 @@ "bids": [ { "bid": { - "id": "8b1bdcca", + "id": "67sadsac", "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", @@ -219,7 +208,8 @@ "crid": "test-crid", "cat": ["IAB13"], "w": 300, - "h": 300 + "h": 300, + "ext": {"mediaType": "native"} }, "type": "native" } diff --git a/adapters/kargo/kargotest/exemplary/video.json b/adapters/kargo/kargotest/exemplary/video.json index c3c1a0a0199..92a2124976f 100644 --- a/adapters/kargo/kargotest/exemplary/video.json +++ b/adapters/kargo/kargotest/exemplary/video.json @@ -22,22 +22,13 @@ "skip":0, "playbackmethod":[2] }, - "native": { - "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" - }, - "pmp": { - "deals": [ - { - "id": "TTD" - } - ] - }, "tagid": "73", "secure": 1, "iframebuster": [ "ALL" ], "ext": { + "adSlotID": "11523" } } ], @@ -95,92 +86,83 @@ "uri": "http://example.com/bid", "body": { "id": "5f4d1e01", - "at": 1, - "imp": [ - { - "id": "8b1bdcca", - "banner": { - "w": 300, - "h": 300, - "format": [ - { - "w": 300, - "h": 250 - } - ], - "pos": 0, - "expdir": [1,2,3,4,5] - }, - "video": { - "mimes": null, - "skip":0, - "playbackmethod":[2] - }, - "native": { - "request" : "{\"plcmttype\":2,\"privacy\":0,\"assets\":[{\"id\":5,\"required\":0,\"title\":{\"len\":90}},{\"id\":6,\"required\":0,\"img\":{\"wmin\":620,\"hmin\":300,\"type\":3}},{\"id\":10,\"required\":0,\"data\":{\"len\":90,\"type\":1}},{\"id\":8,\"required\":0,\"data\":{\"len\":14,\"type\":12}},{\"id\":7,\"required\":0,\"img\":{\"wmin\":80,\"hmin\":80,\"type\":1}},{\"id\":11,\"required\":0,\"data\":{\"len\":140,\"type\":2}}]}" - }, - "pmp": { - "deals": [ - { - "id": "TTD" - } - ] - }, - "tagid": "73", - "secure": 1, - "iframebuster": [ - "ALL" - ], - "ext": { - } - } - ], - "site": { - "id": "123", - "domain": "www.dailymail.co.uk", - "cat": ["IAB7"], - "page": "https://www.dailymail.co.uk/", - "ref": "https://www.dailymail.co.uk/", - "mobile": 1, - "publisher": { - "id": "1" - } - }, - "device": { - "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", - "geo": { - "ipservice": 4, - "country": "US", - "region": "CO", - "metro": "751", - "city": "Ft Collins", - "zip": "80524" - }, - "ip": "127.0.0.1", - "devicetype": 2, - "make": "Apple", - "model": "iPhone", - "os": "Windows", - "osv": "10.0", - "carrier": "none", - "language": "en", - "connectiontype": 2, - "dnt": 0 - }, - "user": { - "id": "07fb48ed", - "ext": { - }, - "buyeruid": "345" - }, - "regs": { - "ext": { - "us_privacy": "1" - } - }, - "tmax": 200, - "ext": { - } + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "banner": { + "w": 300, + "h": 300, + "format": [ + { + "w": 300, + "h": 250 + } + ], + "pos": 0, + "expdir": [1,2,3,4,5] + }, + "video": { + "mimes": null, + "skip":0, + "playbackmethod":[2] + }, + "tagid": "73", + "secure": 1, + "iframebuster": [ + "ALL" + ], + "ext": { + "adSlotID": "11523" + } + } + ], + "site": { + "id": "123", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "https://www.dailymail.co.uk/", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "device": { + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537", + "geo": { + "ipservice": 4, + "country": "US", + "region": "CO", + "metro": "751", + "city": "Ft Collins", + "zip": "80524" + }, + "ip": "127.0.0.1", + "devicetype": 2, + "make": "Apple", + "model": "iPhone", + "os": "Windows", + "osv": "10.0", + "carrier": "none", + "language": "en", + "connectiontype": 2, + "dnt": 0 + }, + "user": { + "id": "07fb48ed", + "ext": { + }, + "buyeruid": "345" + }, + "regs": { + "ext": { + "us_privacy": "1" + } + }, + "tmax": 200, + "ext": { + } } }, "mockResponse": { @@ -191,7 +173,7 @@ { "bid": [ { - "id": "8b1bdcca", + "id": "67sadsac", "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", @@ -201,13 +183,14 @@ "crid": "test-crid", "cat": ["IAB13"], "w": 300, - "h": 300 + "h": 300, + "ext": {"mediaType": "video"} } ], "seat": "_b345" } ], - "bidid": "8b1bdcca", + "bidid": "67sadsac", "cur": "USD" } } @@ -219,7 +202,7 @@ "bids": [ { "bid": { - "id": "8b1bdcca", + "id": "67sadsac", "impid": "8b1bdcca", "price": 10, "nurl": "http://example.com/win/10", @@ -229,7 +212,8 @@ "crid": "test-crid", "cat": ["IAB13"], "w": 300, - "h": 300 + "h": 300, + "ext": {"mediaType": "video"} }, "type": "video" } diff --git a/adapters/kargo/params_test.go b/adapters/kargo/params_test.go index 6b8e3b19551..44937637480 100644 --- a/adapters/kargo/params_test.go +++ b/adapters/kargo/params_test.go @@ -34,13 +34,14 @@ func TestInvalidParams(t *testing.T) { } var validParams = []string{ - `{"tagid": ""}`, - `{"tagid": "11523"}`, + `{"adSlotID": ""}`, + `{"adSlotID": "11523"}`, } var invalidParams = []string{ - `{"tagid": 42}`, - `{"tagid": }`, + `{"adSlotID": 42}`, + `{"adSlotID": }`, + `{"adSlotId": "32321"}`, `{"id": }`, `{}`, } diff --git a/static/bidder-params/kargo.json b/static/bidder-params/kargo.json index 6e544296295..a0503e88d9b 100644 --- a/static/bidder-params/kargo.json +++ b/static/bidder-params/kargo.json @@ -5,11 +5,11 @@ "type": "object", "properties": { - "tagid": { + "AdSlotID": { "type": "string", "description": "An ID which identifies the adslot placement. Equivalent to the id of target inventory, ad unit code, or placement id" } }, - "required": ["tagid"] + "required": ["adSlotID"] } From 8a0153084aad1d5b54e509323bf3f3a9093f0b7a Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Fri, 24 Jun 2022 12:35:04 -0400 Subject: [PATCH 18/22] update imp_ext --- openrtb_ext/imp_kargo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openrtb_ext/imp_kargo.go b/openrtb_ext/imp_kargo.go index e287a275655..682561fb1f0 100644 --- a/openrtb_ext/imp_kargo.go +++ b/openrtb_ext/imp_kargo.go @@ -1,5 +1,5 @@ package openrtb_ext type ImpExtKargo struct { - TagId string `json:"tagid"` + AdSlotID string `json:"adSlotID"` } From 80de643736ca5638bb764bc384002d15d686bc02 Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Fri, 24 Jun 2022 12:36:30 -0400 Subject: [PATCH 19/22] lowercase --- static/bidder-params/kargo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/bidder-params/kargo.json b/static/bidder-params/kargo.json index a0503e88d9b..15c11526b7c 100644 --- a/static/bidder-params/kargo.json +++ b/static/bidder-params/kargo.json @@ -5,7 +5,7 @@ "type": "object", "properties": { - "AdSlotID": { + "adSlotID": { "type": "string", "description": "An ID which identifies the adslot placement. Equivalent to the id of target inventory, ad unit code, or placement id" } From e841a910cfddce2d24335a771b2b79b1c547ed31 Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Tue, 28 Jun 2022 16:22:55 -0400 Subject: [PATCH 20/22] code review --- adapters/kargo/kargo.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/adapters/kargo/kargo.go b/adapters/kargo/kargo.go index 8f1489e343f..8525d771103 100644 --- a/adapters/kargo/kargo.go +++ b/adapters/kargo/kargo.go @@ -64,9 +64,9 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R bidResponse := adapters.NewBidderResponseWithBidsCapacity(len(request.Imp)) bidResponse.Currency = response.Cur for _, seatBid := range response.SeatBid { - for _, bid := range seatBid.Bid { + for i, bid := range seatBid.Bid { b := &adapters.TypedBid{ - Bid: &bid, + Bid: &seatBid.Bid[i], BidType: getMediaTypeForBid(bid.Ext), } bidResponse.Bids = append(bidResponse.Bids, b) @@ -75,7 +75,6 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R return bidResponse, nil } -// getMediaTypeForBid checks the media type of the bid. func getMediaTypeForBid(ext json.RawMessage) openrtb_ext.BidType { var impExt kargoExt if err := json.Unmarshal(ext, &impExt); err == nil { From 9e371f8f7cc5a149e2f4586f74a5853fffe32970 Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Tue, 28 Jun 2022 17:07:55 -0400 Subject: [PATCH 21/22] removed some ext --- .../supplemental/status-no-content.json | 313 +++++++----------- 1 file changed, 126 insertions(+), 187 deletions(-) diff --git a/adapters/kargo/kargotest/supplemental/status-no-content.json b/adapters/kargo/kargotest/supplemental/status-no-content.json index e88381f0f35..1d92e057354 100644 --- a/adapters/kargo/kargotest/supplemental/status-no-content.json +++ b/adapters/kargo/kargotest/supplemental/status-no-content.json @@ -1,203 +1,142 @@ { - "mockBidRequest": { - "id": "5f4d1e01", - "at": 1, - "imp": [ - { - "id": "8b1bdcca", - "banner": { - "w": 300, - "h": 300, - "format": [ - { - "w": 300, - "h": 250 - } - ], - "pos": 0, - "expdir": [1, 2, 3, 4, 5] - }, - "video": { - "mimes": null - }, - "native": { - "request": "" - }, - "pmp": { - "deals": [ - { - "id": "TTD", - "ext": { - "kargo": { - "isMainPG": false - } - } - } - ] - }, - "tagid": "73", - "secure": 1, - "iframebuster": ["ALL"], - "ext": { - "kargo": { - "multiresponse": true, - "openAdID": "TDID", - "transcodingEnabled": true, - "whiteopsPredictionID": "123", - "auctionType": 1, - "adTagVersion": "v1" - } - } - } - ], - "site": { - "id": "123", - "domain": "www.dailymail.co.uk", - "cat": ["IAB7"], - "page": "https://www.dailymail.co.uk/", - "ref": "https://www.dailymail.co.uk/", - "mobile": 1, - "publisher": { - "id": "1" - } - }, - "user": { - "id": "07fb48ed", - "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" + "mockBidRequest": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "banner": { + "w": 300, + "h": 300, + "format": [ + { + "w": 300, + "h": 250 } - } + ], + "pos": 0, + "expdir": [1, 2, 3, 4, 5] }, - "buyeruid": "345" - }, - "regs": { - "ext": { - "us_privacy": "1" - } - }, - "tmax": 200, + "video": { + "mimes": null + }, + "native": { + "request": "" + }, + "pmp": { + "deals": [] + }, + "tagid": "73", + "secure": 1, + "iframebuster": ["ALL"], + "ext": {} + } + ], + "site": { + "id": "123", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "https://www.dailymail.co.uk/", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "user": { + "id": "07fb48ed", "ext": { + "consent": "consent opt-out", "kargo": { - "handler": "amazon", - "adaptor": "none", - "adSlotID": "_foobar", - "browser": "Chrome1", - "openBannerEnabled": true, - "openVideoEnabled": false, - "pmpBannerEnabled": false, - "pmpNativeEnabled": true + "cerberusIDs": { + "86": "82fa2555" + } } + }, + "buyeruid": "345" + }, + "regs": { + "ext": { + "us_privacy": "1" } }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "http://example.com/bid", - "body": { - "id": "5f4d1e01", - "at": 1, - "imp": [ - { - "id": "8b1bdcca", - "banner": { - "w": 300, - "h": 300, - "format": [ - { - "w": 300, - "h": 250 - } - ], - "pos": 0, - "expdir": [1, 2, 3, 4, 5] - }, - "video": { - "mimes": null - }, - "native": { - "request": "" - }, - "pmp": { - "deals": [ - { - "id": "TTD", - "ext": { - "kargo": { - "isMainPG": false - } - } - } - ] - }, - "tagid": "73", - "secure": 1, - "iframebuster": ["ALL"], - "ext": { - "kargo": { - "multiresponse": true, - "openAdID": "TDID", - "transcodingEnabled": true, - "whiteopsPredictionID": "123", - "auctionType": 1, - "adTagVersion": "v1" - } - } - } - ], - "site": { - "id": "123", - "domain": "www.dailymail.co.uk", - "cat": ["IAB7"], - "page": "https://www.dailymail.co.uk/", - "ref": "https://www.dailymail.co.uk/", - "mobile": 1, - "publisher": { - "id": "1" - } - }, - "user": { - "id": "07fb48ed", - "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" + "tmax": 200, + "ext": {} + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "http://example.com/bid", + "body": { + "id": "5f4d1e01", + "at": 1, + "imp": [ + { + "id": "8b1bdcca", + "banner": { + "w": 300, + "h": 300, + "format": [ + { + "w": 300, + "h": 250 } - } + ], + "pos": 0, + "expdir": [1, 2, 3, 4, 5] }, - "buyeruid": "345" - }, - "regs": { - "ext": { - "us_privacy": "1" - } - }, - "tmax": 200, + "video": { + "mimes": null + }, + "native": { + "request": "" + }, + "pmp": { + "deals": [] + }, + "tagid": "73", + "secure": 1, + "iframebuster": ["ALL"], + "ext": {} + } + ], + "site": { + "id": "123", + "domain": "www.dailymail.co.uk", + "cat": ["IAB7"], + "page": "https://www.dailymail.co.uk/", + "ref": "https://www.dailymail.co.uk/", + "mobile": 1, + "publisher": { + "id": "1" + } + }, + "user": { + "id": "07fb48ed", "ext": { + "consent": "consent opt-out", "kargo": { - "handler": "amazon", - "adaptor": "none", - "adSlotID": "_foobar", - "browser": "Chrome1", - "openBannerEnabled": true, - "openVideoEnabled": false, - "pmpBannerEnabled": false, - "pmpNativeEnabled": true + "cerberusIDs": { + "86": "82fa2555" + } } + }, + "buyeruid": "345" + }, + "regs": { + "ext": { + "us_privacy": "1" } - } - }, - "mockResponse": { - "status": 204, - "body": { - } + }, + "tmax": 200, + "ext": {} } + }, + "mockResponse": { + "status": 204, + "body": {} } - ], - "expectedBidResponses": [ - ] - } - \ No newline at end of file + } + ], + "expectedBidResponses": [] +} From 13a9b11c187f436e062d134b1835f3a2f9cd4af8 Mon Sep 17 00:00:00 2001 From: ssadman22 Date: Wed, 29 Jun 2022 11:34:15 -0400 Subject: [PATCH 22/22] fix json test --- .../supplemental/status-no-content.json | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/adapters/kargo/kargotest/supplemental/status-no-content.json b/adapters/kargo/kargotest/supplemental/status-no-content.json index 1d92e057354..8c6e0544589 100644 --- a/adapters/kargo/kargotest/supplemental/status-no-content.json +++ b/adapters/kargo/kargotest/supplemental/status-no-content.json @@ -24,7 +24,6 @@ "request": "" }, "pmp": { - "deals": [] }, "tagid": "73", "secure": 1, @@ -46,12 +45,7 @@ "user": { "id": "07fb48ed", "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" - } - } + "consent": "consent opt-out" }, "buyeruid": "345" }, @@ -92,7 +86,6 @@ "request": "" }, "pmp": { - "deals": [] }, "tagid": "73", "secure": 1, @@ -114,12 +107,7 @@ "user": { "id": "07fb48ed", "ext": { - "consent": "consent opt-out", - "kargo": { - "cerberusIDs": { - "86": "82fa2555" - } - } + "consent": "consent opt-out" }, "buyeruid": "345" },