From eca70741f00a661945d59d17f5c9fd5cc44bc41b Mon Sep 17 00:00:00 2001 From: pinklion Date: Thu, 5 Jun 2025 16:06:32 +0300 Subject: [PATCH 1/9] init new adapter --- adapters/pinkLion/params_test.go | 47 ++++ adapters/pinkLion/pinkLion.go | 153 +++++++++++ adapters/pinkLion/pinkLion_test.go | 20 ++ .../pinkLiontest/exemplary/endpointId.json | 136 ++++++++++ .../pinkLiontest/exemplary/multi-format.json | 105 ++++++++ .../pinkLiontest/exemplary/multi-imp.json | 253 ++++++++++++++++++ .../pinkLiontest/exemplary/simple-banner.json | 136 ++++++++++ .../pinkLiontest/exemplary/simple-native.json | 120 +++++++++ .../pinkLiontest/exemplary/simple-video.json | 131 +++++++++ .../exemplary/simple-web-banner.json | 136 ++++++++++ .../supplemental/bad_media_type.json | 83 ++++++ .../supplemental/bad_response.json | 85 ++++++ .../pinkLiontest/supplemental/status-204.json | 80 ++++++ .../supplemental/status-not-200.json | 85 ++++++ exchange/adapter_builders.go | 2 + openrtb_ext/bidders.go | 2 + openrtb_ext/imp_pinkLion.go | 6 + static/bidder-info/pinkLion.yaml | 14 + static/bidder-params/pinkLion.json | 22 ++ 19 files changed, 1616 insertions(+) create mode 100644 adapters/pinkLion/params_test.go create mode 100644 adapters/pinkLion/pinkLion.go create mode 100644 adapters/pinkLion/pinkLion_test.go create mode 100644 adapters/pinkLion/pinkLiontest/exemplary/endpointId.json create mode 100644 adapters/pinkLion/pinkLiontest/exemplary/multi-format.json create mode 100644 adapters/pinkLion/pinkLiontest/exemplary/multi-imp.json create mode 100644 adapters/pinkLion/pinkLiontest/exemplary/simple-banner.json create mode 100644 adapters/pinkLion/pinkLiontest/exemplary/simple-native.json create mode 100644 adapters/pinkLion/pinkLiontest/exemplary/simple-video.json create mode 100644 adapters/pinkLion/pinkLiontest/exemplary/simple-web-banner.json create mode 100644 adapters/pinkLion/pinkLiontest/supplemental/bad_media_type.json create mode 100644 adapters/pinkLion/pinkLiontest/supplemental/bad_response.json create mode 100644 adapters/pinkLion/pinkLiontest/supplemental/status-204.json create mode 100644 adapters/pinkLion/pinkLiontest/supplemental/status-not-200.json create mode 100644 openrtb_ext/imp_pinkLion.go create mode 100644 static/bidder-info/pinkLion.yaml create mode 100644 static/bidder-params/pinkLion.json diff --git a/adapters/pinkLion/params_test.go b/adapters/pinkLion/params_test.go new file mode 100644 index 00000000000..e48ad00e679 --- /dev/null +++ b/adapters/pinkLion/params_test.go @@ -0,0 +1,47 @@ +package pinkLion + +import ( + "encoding/json" + "testing" + + "github.com/prebid/prebid-server/v3/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.BidderPinkLion, 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.BidderPinkLion, json.RawMessage(p)); err == nil { + t.Errorf("Schema allowed invalid params: %s", p) + } + } +} + +var validParams = []string{ + `{"placementId": "test"}`, + `{"placementId": "1"}`, + `{"endpointId": "test"}`, + `{"endpointId": "1"}`, +} + +var invalidParams = []string{ + `{"placementId": 42}`, + `{"endpointId": 42}`, + `{"placementId": "1", "endpointId": "1"}`, +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLion.go b/adapters/pinkLion/pinkLion.go new file mode 100644 index 00000000000..c28287ec63f --- /dev/null +++ b/adapters/pinkLion/pinkLion.go @@ -0,0 +1,153 @@ +package pinkLion + +import ( + "encoding/json" + "fmt" + "net/http" + + "github.com/prebid/openrtb/v20/openrtb2" + "github.com/prebid/prebid-server/v3/adapters" + "github.com/prebid/prebid-server/v3/config" + "github.com/prebid/prebid-server/v3/openrtb_ext" + "github.com/prebid/prebid-server/v3/util/jsonutil" +) + +type adapter struct { + endpoint string +} + +type reqBodyExt struct { + PinkLionBidderExt reqBodyExtBidder `json:"bidder"` +} + +type reqBodyExtBidder struct { + Type string `json:"type"` + PlacementID string `json:"placementId,omitempty"` + EndpointID string `json:"endpointId,omitempty"` +} + +func Builder(bidderName openrtb_ext.BidderName, config config.Adapter, server config.Server) (adapters.Bidder, error) { + bidder := &adapter{ + endpoint: config.Endpoint, + } + return bidder, nil +} + +func (a *adapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) { + var errs []error + var adapterRequests []*adapters.RequestData + + reqCopy := *request + for _, imp := range request.Imp { + reqCopy.Imp = []openrtb2.Imp{imp} + + var bidderExt adapters.ExtImpBidder + var pinkLionExt openrtb_ext.ImpExtPinkLion + + if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil { + errs = append(errs, err) + continue + } + if err := jsonutil.Unmarshal(bidderExt.Bidder, &pinkLionExt); err != nil { + errs = append(errs, err) + continue + } + + impExt := reqBodyExt{PinkLionBidderExt: reqBodyExtBidder{}} + + if pinkLionExt.PlacementID != "" { + impExt.PinkLionBidderExt.PlacementID = pinkLionExt.PlacementID + impExt.PinkLionBidderExt.Type = "publisher" + } else if pinkLionExt.EndpointID != "" { + impExt.PinkLionBidderExt.EndpointID = pinkLionExt.EndpointID + impExt.PinkLionBidderExt.Type = "network" + } + + finalyImpExt, err := json.Marshal(impExt) + if err != nil { + errs = append(errs, err) + continue + } + + reqCopy.Imp[0].Ext = finalyImpExt + + adapterReq, err := a.makeRequest(&reqCopy) + if err != nil { + errs = append(errs, err) + continue + } + + adapterRequests = append(adapterRequests, adapterReq) + } + + return adapterRequests, nil +} + +func (a *adapter) makeRequest(request *openrtb2.BidRequest) (*adapters.RequestData, error) { + reqJSON, err := json.Marshal(request) + if err != nil { + return nil, err + } + + headers := http.Header{} + headers.Add("Content-Type", "application/json;charset=utf-8") + headers.Add("Accept", "application/json") + return &adapters.RequestData{ + Method: "POST", + Uri: a.endpoint, + Body: reqJSON, + Headers: headers, + ImpIDs: openrtb_ext.GetImpIDs(request.Imp), + }, nil +} + +func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.RequestData, responseData *adapters.ResponseData) (*adapters.BidderResponse, []error) { + if adapters.IsResponseStatusCodeNoContent(responseData) { + return nil, nil + } + + if err := adapters.CheckResponseStatusCodeForErrors(responseData); err != nil { + return nil, []error{err} + } + + var response openrtb2.BidResponse + if err := jsonutil.Unmarshal(responseData.Body, &response); err != nil { + return nil, []error{err} + } + + bidResponse := adapters.NewBidderResponseWithBidsCapacity(len(request.Imp)) + if len(response.Cur) != 0 { + bidResponse.Currency = response.Cur + } + + for _, seatBid := range response.SeatBid { + for i := range seatBid.Bid { + bid := seatBid.Bid[i] + bidType, err := getBidType(bid) + if err != nil { + return nil, []error{err} + } + + b := &adapters.TypedBid{ + Bid: &seatBid.Bid[i], + BidType: bidType, + } + bidResponse.Bids = append(bidResponse.Bids, b) + } + } + return bidResponse, nil +} + +func getBidType(bid openrtb2.Bid) (openrtb_ext.BidType, error) { + // determinate media type by bid response field mtype + switch bid.MType { + case openrtb2.MarkupBanner: + return openrtb_ext.BidTypeBanner, nil + case openrtb2.MarkupVideo: + return openrtb_ext.BidTypeVideo, nil + case openrtb2.MarkupNative: + return openrtb_ext.BidTypeNative, nil + } + + return "", fmt.Errorf("could not define media type for impression: %s", bid.ImpID) +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLion_test.go b/adapters/pinkLion/pinkLion_test.go new file mode 100644 index 00000000000..2cfa400e42d --- /dev/null +++ b/adapters/pinkLion/pinkLion_test.go @@ -0,0 +1,20 @@ +package pinkLion + +import ( + "testing" + + "github.com/prebid/prebid-server/v3/adapters/adapterstest" + "github.com/prebid/prebid-server/v3/config" + "github.com/prebid/prebid-server/v3/openrtb_ext" +) + +func TestJsonSamples(t *testing.T) { + bidder, buildErr := Builder(openrtb_ext.BidderPinkLion, config.Adapter{ + Endpoint: "https://fake.test.io/pserver"}, config.Server{ExternalUrl: "http://hosturl.com", GvlID: 1, DataCenter: "2"}) + + if buildErr != nil { + t.Fatalf("Builder returned unexpected error %v", buildErr) + } + + adapterstest.RunJSONBidderTest(t, "pinkLiontest", bidder) +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/exemplary/endpointId.json b/adapters/pinkLion/pinkLiontest/exemplary/endpointId.json new file mode 100644 index 00000000000..7257f4fe261 --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/exemplary/endpointId.json @@ -0,0 +1,136 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + }, + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "endpointId": "test" + } + } + } + ] + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "endpointId": "test", + "type": "network" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "bids": [ + { + "bid": { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + }, + "type": "banner" + } + ] + } + ] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/exemplary/multi-format.json b/adapters/pinkLion/pinkLiontest/exemplary/multi-format.json new file mode 100644 index 00000000000..cb1c6ffd9c6 --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/exemplary/multi-format.json @@ -0,0 +1,105 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + }, + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "video": { + "mimes": [ + "video/mp4" + ], + "protocols": [ + 2, + 5 + ], + "w": 1024, + "h": 576 + }, + "ext": { + "bidder": { + "endpointId": "test" + } + } + } + ] + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "video": { + "mimes": [ + "video/mp4" + ], + "protocols": [ + 2, + 5 + ], + "w": 1024, + "h": 576 + }, + "ext": { + "bidder": { + "endpointId": "test", + "type": "network" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 204 + } + } + ], + "expectedBidResponses": [] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/exemplary/multi-imp.json b/adapters/pinkLion/pinkLiontest/exemplary/multi-imp.json new file mode 100644 index 00000000000..b8c0e328c01 --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/exemplary/multi-imp.json @@ -0,0 +1,253 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + }, + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "imp": [ + { + "id": "test-imp-id1", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "endpointId": "test" + } + } + }, + { + "id": "test-imp-id2", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "endpointId": "test" + } + } + } + ] + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id1", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "endpointId": "test", + "type": "network" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + } + }, + "impIDs":["test-imp-id1"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id1", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + }, + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id2", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "endpointId": "test", + "type": "network" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + } + }, + "impIDs":["test-imp-id2"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id2", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "bids": [ + { + "bid": { + "id": "test_bid_id", + "impid": "test-imp-id1", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + }, + "type": "banner" + } + ] + }, + { + "bids": [ + { + "bid": { + "id": "test_bid_id", + "impid": "test-imp-id2", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + }, + "type": "banner" + } + ] + } + ] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-banner.json b/adapters/pinkLion/pinkLiontest/exemplary/simple-banner.json new file mode 100644 index 00000000000..6743d0a355d --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/exemplary/simple-banner.json @@ -0,0 +1,136 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + }, + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ] + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "bids": [ + { + "bid": { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "banner" + } + } + }, + "type": "banner" + } + ] + } + ] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-native.json b/adapters/pinkLion/pinkLiontest/exemplary/simple-native.json new file mode 100644 index 00000000000..14b09a05318 --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/exemplary/simple-native.json @@ -0,0 +1,120 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + }, + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "native": { + "request": "{\"ver\":\"1.1\",\"layout\":1,\"adunit\":2,\"plcmtcnt\":6,\"plcmttype\":4,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":75}},{\"id\":2,\"required\":1,\"img\":{\"wmin\":492,\"hmin\":328,\"type\":3,\"mimes\":[\"image/jpeg\",\"image/jpg\",\"image/png\"]}},{\"id\":4,\"required\":0,\"data\":{\"type\":6}},{\"id\":5,\"required\":0,\"data\":{\"type\":7}},{\"id\":6,\"required\":0,\"data\":{\"type\":1,\"len\":20}}]}", + "ver": "1.1" + }, + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ] + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "native": { + "request": "{\"ver\":\"1.1\",\"layout\":1,\"adunit\":2,\"plcmtcnt\":6,\"plcmttype\":4,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":75}},{\"id\":2,\"required\":1,\"img\":{\"wmin\":492,\"hmin\":328,\"type\":3,\"mimes\":[\"image/jpeg\",\"image/jpg\",\"image/png\"]}},{\"id\":4,\"required\":0,\"data\":{\"type\":6}},{\"id\":5,\"required\":0,\"data\":{\"type\":7}},{\"id\":6,\"required\":0,\"data\":{\"type\":1,\"len\":20}}]}", + "ver": "1.1" + }, + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 4, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "native" + } + } + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "bids": [ + { + "bid": { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 4, + "w": 300, + "h": 250, + "ext": { + "prebid": { + "type": "native" + } + } + }, + "type": "native" + } + ] + } + ] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-video.json b/adapters/pinkLion/pinkLiontest/exemplary/simple-video.json new file mode 100644 index 00000000000..582c4bf0cb9 --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/exemplary/simple-video.json @@ -0,0 +1,131 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + }, + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "video": { + "mimes": [ + "video/mp4" + ], + "protocols": [ + 2, + 5 + ], + "w": 1024, + "h": 576 + }, + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ] + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "device": { + "ip": "123.123.123.123", + "ua": "iPad" + }, + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "video": { + "mimes": [ + "video/mp4" + ], + "protocols": [ + 2, + 5 + ], + "w": 1024, + "h": 576 + }, + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ] + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "00:01:00", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 2, + "ext": { + "prebid": { + "type": "video" + } + } + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "currency": "USD", + "bids": [ + { + "bid": { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "00:01:00", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 2, + "ext": { + "prebid": { + "type": "video" + } + } + }, + "type": "video" + } + ] + } + ] +} diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-web-banner.json b/adapters/pinkLion/pinkLiontest/exemplary/simple-web-banner.json new file mode 100644 index 00000000000..64b59033257 --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/exemplary/simple-web-banner.json @@ -0,0 +1,136 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ], + "site": { + "id": "1", + "domain": "test.com" + }, + "device": { + "ip": "123.123.123.123", + "ua": "Ubuntu" + } + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "tagid": "test", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ], + "site": { + "id": "1", + "domain": "test.com" + }, + "device": { + "ip": "123.123.123.123", + "ua": "Ubuntu" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 468, + "h": 60, + "ext": { + "prebid": { + "type": "banner" + } + } + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + } + ], + "expectedBidResponses": [ + { + "bids": [ + { + "bid": { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "mtype": 1, + "w": 468, + "h": 60, + "ext": { + "prebid": { + "type": "banner" + } + } + }, + "type": "banner" + } + ] + } + ] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/supplemental/bad_media_type.json b/adapters/pinkLion/pinkLiontest/supplemental/bad_media_type.json new file mode 100644 index 00000000000..2782ecc14fd --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/supplemental/bad_media_type.json @@ -0,0 +1,83 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "httpCalls": [{ + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 200, + "body": { + "id": "test-request-id", + "seatbid": [ + { + "bid": [ + { + "id": "test_bid_id", + "impid": "test-imp-id", + "price": 0.27543, + "adm": "", + "cid": "test_cid", + "crid": "test_crid", + "dealid": "test_dealid", + "w": 300, + "h": 250, + "ext": {} + } + ], + "seat": "pinkLion" + } + ], + "cur": "USD" + } + } + }], + "expectedMakeBidsErrors": [ + { + "value": "could not define media type for impression: test-imp-id", + "comparison": "literal" + } + ] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/supplemental/bad_response.json b/adapters/pinkLion/pinkLiontest/supplemental/bad_response.json new file mode 100644 index 00000000000..6d9d7c3452b --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/supplemental/bad_response.json @@ -0,0 +1,85 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "httpCalls": [{ + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 200, + "body": "" + } + }], + "expectedMakeBidsErrors": [ + { + "value": "expect { or n, but found \"", + "comparison": "literal" + } + ] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/supplemental/status-204.json b/adapters/pinkLion/pinkLiontest/supplemental/status-204.json new file mode 100644 index 00000000000..9fde09a13b9 --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/supplemental/status-204.json @@ -0,0 +1,80 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "httpCalls": [{ + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 204, + "body": {} + } + }], + "expectedBidResponses": [] +} \ No newline at end of file diff --git a/adapters/pinkLion/pinkLiontest/supplemental/status-not-200.json b/adapters/pinkLion/pinkLiontest/supplemental/status-not-200.json new file mode 100644 index 00000000000..5e7a1d0b05c --- /dev/null +++ b/adapters/pinkLion/pinkLiontest/supplemental/status-not-200.json @@ -0,0 +1,85 @@ +{ + "mockBidRequest": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "httpCalls": [{ + "expectedRequest": { + "uri": "https://fake.test.io/pserver", + "body": { + "id": "test-request-id", + "imp": [ + { + "id": "test-imp-id", + "banner": { + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "ext": { + "bidder": { + "placementId": "test", + "type": "publisher" + } + } + } + ], + "app": { + "id": "1", + "bundle": "com.wls.testwlsapplication" + }, + "device": { + "ip": "123.123.123.123", + "ifa": "sdjfksdf-dfsds-dsdg-dsgg" + } + }, + "impIDs":["test-imp-id"] + }, + "mockResponse": { + "status": 404, + "body": {} + } + }], + "expectedMakeBidsErrors": [ + { + "value": "Unexpected status code: 404. Run with request.debug = 1 for more info", + "comparison": "literal" + } + ] +} \ No newline at end of file diff --git a/exchange/adapter_builders.go b/exchange/adapter_builders.go index 87821fd0c75..698302da414 100755 --- a/exchange/adapter_builders.go +++ b/exchange/adapter_builders.go @@ -171,6 +171,7 @@ import ( "github.com/prebid/prebid-server/v3/adapters/ownadx" "github.com/prebid/prebid-server/v3/adapters/pangle" "github.com/prebid/prebid-server/v3/adapters/pgamssp" + "github.com/prebid/prebid-server/v3/adapters/pinkLion" "github.com/prebid/prebid-server/v3/adapters/playdigo" "github.com/prebid/prebid-server/v3/adapters/pubmatic" "github.com/prebid/prebid-server/v3/adapters/pubnative" @@ -423,6 +424,7 @@ func newAdapterBuilders() map[openrtb_ext.BidderName]adapters.Builder { openrtb_ext.BidderOwnAdx: ownadx.Builder, openrtb_ext.BidderPangle: pangle.Builder, openrtb_ext.BidderPGAMSsp: pgamssp.Builder, + openrtb_ext.BidderPinkLion: pinkLion.Builder, openrtb_ext.BidderPlaydigo: playdigo.Builder, openrtb_ext.BidderPubmatic: pubmatic.Builder, openrtb_ext.BidderPubnative: pubnative.Builder, diff --git a/openrtb_ext/bidders.go b/openrtb_ext/bidders.go index 67cf8e7c15e..d71553f499c 100644 --- a/openrtb_ext/bidders.go +++ b/openrtb_ext/bidders.go @@ -189,6 +189,7 @@ var coreBidderNames []BidderName = []BidderName{ BidderOwnAdx, BidderPangle, BidderPGAMSsp, + BidderPinkLion, BidderPlaydigo, BidderPubmatic, BidderPubrise, @@ -545,6 +546,7 @@ const ( BidderOwnAdx BidderName = "ownadx" BidderPangle BidderName = "pangle" BidderPGAMSsp BidderName = "pgamssp" + BidderPinkLion BidderName = "pinklion" BidderPlaydigo BidderName = "playdigo" BidderPubmatic BidderName = "pubmatic" BidderPubrise BidderName = "pubrise" diff --git a/openrtb_ext/imp_pinkLion.go b/openrtb_ext/imp_pinkLion.go new file mode 100644 index 00000000000..456c6afe2e3 --- /dev/null +++ b/openrtb_ext/imp_pinkLion.go @@ -0,0 +1,6 @@ +package openrtb_ext + +type ImpExtPinkLion struct { + PlacementID string `json:"placementId"` + EndpointID string `json:"endpointId"` +} \ No newline at end of file diff --git a/static/bidder-info/pinkLion.yaml b/static/bidder-info/pinkLion.yaml new file mode 100644 index 00000000000..5c402c224e3 --- /dev/null +++ b/static/bidder-info/pinkLion.yaml @@ -0,0 +1,14 @@ +endpoint: "https://us-east-ep.pinklion.io/pserver" +maintainer: + email: "prebid@pinklion.io" +capabilities: + site: + mediaTypes: + - banner + - video + - native + app: + mediaTypes: + - banner + - video + - native \ No newline at end of file diff --git a/static/bidder-params/pinkLion.json b/static/bidder-params/pinkLion.json new file mode 100644 index 00000000000..d9eef4bbb6c --- /dev/null +++ b/static/bidder-params/pinkLion.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "PinkLion Adapter Params", + "description": "A schema which validates params accepted by the PinkLion adapter", + "type": "object", + "properties": { + "placementId": { + "type": "string", + "minLength": 1, + "description": "Placement ID" + }, + "endpointId": { + "type": "string", + "minLength": 1, + "description": "Endpoint ID" + } + }, + "oneOf": [ + { "required": ["placementId"] }, + { "required": ["endpointId"] } + ] +} \ No newline at end of file From 9d6f7d24ffcbbcbf5153b7b95d537df42565244a Mon Sep 17 00:00:00 2001 From: pinklion Date: Thu, 5 Jun 2025 16:31:00 +0300 Subject: [PATCH 2/9] fix lowercase problem --- openrtb_ext/bidders.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openrtb_ext/bidders.go b/openrtb_ext/bidders.go index d71553f499c..75b99802ac7 100644 --- a/openrtb_ext/bidders.go +++ b/openrtb_ext/bidders.go @@ -546,7 +546,7 @@ const ( BidderOwnAdx BidderName = "ownadx" BidderPangle BidderName = "pangle" BidderPGAMSsp BidderName = "pgamssp" - BidderPinkLion BidderName = "pinklion" + BidderPinkLion BidderName = "pinkLion" BidderPlaydigo BidderName = "playdigo" BidderPubmatic BidderName = "pubmatic" BidderPubrise BidderName = "pubrise" From 5e43af0388d31cb32f221d652ddf862263d64ebb Mon Sep 17 00:00:00 2001 From: pinklion Date: Wed, 11 Jun 2025 10:07:32 +0300 Subject: [PATCH 3/9] name conconventions + jsonutil usage --- adapters/{pinkLion => pinklion}/params_test.go | 2 +- adapters/{pinkLion/pinkLion.go => pinklion/pinklion.go} | 8 ++++---- .../pinkLion_test.go => pinklion/pinklion_test.go} | 2 +- .../pinkliontest}/exemplary/endpointId.json | 0 .../pinkliontest}/exemplary/multi-format.json | 0 .../pinkliontest}/exemplary/multi-imp.json | 0 .../pinkliontest}/exemplary/simple-banner.json | 0 .../pinkliontest}/exemplary/simple-native.json | 0 .../pinkliontest}/exemplary/simple-video.json | 0 .../pinkliontest}/exemplary/simple-web-banner.json | 0 .../pinkliontest}/supplemental/bad_media_type.json | 0 .../pinkliontest}/supplemental/bad_response.json | 0 .../pinkliontest}/supplemental/status-204.json | 0 .../pinkliontest}/supplemental/status-not-200.json | 0 exchange/adapter_builders.go | 4 ++-- openrtb_ext/{imp_pinkLion.go => imp_pinklion.go} | 0 16 files changed, 8 insertions(+), 8 deletions(-) rename adapters/{pinkLion => pinklion}/params_test.go (98%) rename adapters/{pinkLion/pinkLion.go => pinklion/pinklion.go} (95%) rename adapters/{pinkLion/pinkLion_test.go => pinklion/pinklion_test.go} (97%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/exemplary/endpointId.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/exemplary/multi-format.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/exemplary/multi-imp.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/exemplary/simple-banner.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/exemplary/simple-native.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/exemplary/simple-video.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/exemplary/simple-web-banner.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/supplemental/bad_media_type.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/supplemental/bad_response.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/supplemental/status-204.json (100%) rename adapters/{pinkLion/pinkLiontest => pinklion/pinkliontest}/supplemental/status-not-200.json (100%) rename openrtb_ext/{imp_pinkLion.go => imp_pinklion.go} (100%) diff --git a/adapters/pinkLion/params_test.go b/adapters/pinklion/params_test.go similarity index 98% rename from adapters/pinkLion/params_test.go rename to adapters/pinklion/params_test.go index e48ad00e679..f3ce47d4e0b 100644 --- a/adapters/pinkLion/params_test.go +++ b/adapters/pinklion/params_test.go @@ -1,4 +1,4 @@ -package pinkLion +package pinklion import ( "encoding/json" diff --git a/adapters/pinkLion/pinkLion.go b/adapters/pinklion/pinklion.go similarity index 95% rename from adapters/pinkLion/pinkLion.go rename to adapters/pinklion/pinklion.go index c28287ec63f..b33650bd397 100644 --- a/adapters/pinkLion/pinkLion.go +++ b/adapters/pinklion/pinklion.go @@ -1,4 +1,4 @@ -package pinkLion +package pinklion import ( "encoding/json" @@ -63,7 +63,7 @@ func (a *adapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.E impExt.PinkLionBidderExt.Type = "network" } - finalyImpExt, err := json.Marshal(impExt) + finalyImpExt, err := jsonutil.Marshal(impExt) if err != nil { errs = append(errs, err) continue @@ -84,7 +84,7 @@ func (a *adapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.E } func (a *adapter) makeRequest(request *openrtb2.BidRequest) (*adapters.RequestData, error) { - reqJSON, err := json.Marshal(request) + reqJSON, err := jsonutil.Marshal(request) if err != nil { return nil, err } @@ -149,5 +149,5 @@ func getBidType(bid openrtb2.Bid) (openrtb_ext.BidType, error) { return openrtb_ext.BidTypeNative, nil } - return "", fmt.Errorf("could not define media type for impression: %s", bid.ImpID) + return "", fmt.Errorf("could not define media type for bid: %s", bid.ImpID) } \ No newline at end of file diff --git a/adapters/pinkLion/pinkLion_test.go b/adapters/pinklion/pinklion_test.go similarity index 97% rename from adapters/pinkLion/pinkLion_test.go rename to adapters/pinklion/pinklion_test.go index 2cfa400e42d..6e47b2a3a34 100644 --- a/adapters/pinkLion/pinkLion_test.go +++ b/adapters/pinklion/pinklion_test.go @@ -1,4 +1,4 @@ -package pinkLion +package pinklion import ( "testing" diff --git a/adapters/pinkLion/pinkLiontest/exemplary/endpointId.json b/adapters/pinklion/pinkliontest/exemplary/endpointId.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/exemplary/endpointId.json rename to adapters/pinklion/pinkliontest/exemplary/endpointId.json diff --git a/adapters/pinkLion/pinkLiontest/exemplary/multi-format.json b/adapters/pinklion/pinkliontest/exemplary/multi-format.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/exemplary/multi-format.json rename to adapters/pinklion/pinkliontest/exemplary/multi-format.json diff --git a/adapters/pinkLion/pinkLiontest/exemplary/multi-imp.json b/adapters/pinklion/pinkliontest/exemplary/multi-imp.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/exemplary/multi-imp.json rename to adapters/pinklion/pinkliontest/exemplary/multi-imp.json diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-banner.json b/adapters/pinklion/pinkliontest/exemplary/simple-banner.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/exemplary/simple-banner.json rename to adapters/pinklion/pinkliontest/exemplary/simple-banner.json diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-native.json b/adapters/pinklion/pinkliontest/exemplary/simple-native.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/exemplary/simple-native.json rename to adapters/pinklion/pinkliontest/exemplary/simple-native.json diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-video.json b/adapters/pinklion/pinkliontest/exemplary/simple-video.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/exemplary/simple-video.json rename to adapters/pinklion/pinkliontest/exemplary/simple-video.json diff --git a/adapters/pinkLion/pinkLiontest/exemplary/simple-web-banner.json b/adapters/pinklion/pinkliontest/exemplary/simple-web-banner.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/exemplary/simple-web-banner.json rename to adapters/pinklion/pinkliontest/exemplary/simple-web-banner.json diff --git a/adapters/pinkLion/pinkLiontest/supplemental/bad_media_type.json b/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/supplemental/bad_media_type.json rename to adapters/pinklion/pinkliontest/supplemental/bad_media_type.json diff --git a/adapters/pinkLion/pinkLiontest/supplemental/bad_response.json b/adapters/pinklion/pinkliontest/supplemental/bad_response.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/supplemental/bad_response.json rename to adapters/pinklion/pinkliontest/supplemental/bad_response.json diff --git a/adapters/pinkLion/pinkLiontest/supplemental/status-204.json b/adapters/pinklion/pinkliontest/supplemental/status-204.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/supplemental/status-204.json rename to adapters/pinklion/pinkliontest/supplemental/status-204.json diff --git a/adapters/pinkLion/pinkLiontest/supplemental/status-not-200.json b/adapters/pinklion/pinkliontest/supplemental/status-not-200.json similarity index 100% rename from adapters/pinkLion/pinkLiontest/supplemental/status-not-200.json rename to adapters/pinklion/pinkliontest/supplemental/status-not-200.json diff --git a/exchange/adapter_builders.go b/exchange/adapter_builders.go index 698302da414..44af640a57d 100755 --- a/exchange/adapter_builders.go +++ b/exchange/adapter_builders.go @@ -171,7 +171,7 @@ import ( "github.com/prebid/prebid-server/v3/adapters/ownadx" "github.com/prebid/prebid-server/v3/adapters/pangle" "github.com/prebid/prebid-server/v3/adapters/pgamssp" - "github.com/prebid/prebid-server/v3/adapters/pinkLion" + "github.com/prebid/prebid-server/v3/adapters/pinklion" "github.com/prebid/prebid-server/v3/adapters/playdigo" "github.com/prebid/prebid-server/v3/adapters/pubmatic" "github.com/prebid/prebid-server/v3/adapters/pubnative" @@ -424,7 +424,7 @@ func newAdapterBuilders() map[openrtb_ext.BidderName]adapters.Builder { openrtb_ext.BidderOwnAdx: ownadx.Builder, openrtb_ext.BidderPangle: pangle.Builder, openrtb_ext.BidderPGAMSsp: pgamssp.Builder, - openrtb_ext.BidderPinkLion: pinkLion.Builder, + openrtb_ext.BidderPinkLion: pinklion.Builder, openrtb_ext.BidderPlaydigo: playdigo.Builder, openrtb_ext.BidderPubmatic: pubmatic.Builder, openrtb_ext.BidderPubnative: pubnative.Builder, diff --git a/openrtb_ext/imp_pinkLion.go b/openrtb_ext/imp_pinklion.go similarity index 100% rename from openrtb_ext/imp_pinkLion.go rename to openrtb_ext/imp_pinklion.go From 481f9c592ff8a7810be32bffcd4ea495f16f5f6b Mon Sep 17 00:00:00 2001 From: pinklion Date: Wed, 11 Jun 2025 10:09:38 +0300 Subject: [PATCH 4/9] lint --- adapters/pinklion/pinklion.go | 1 - 1 file changed, 1 deletion(-) diff --git a/adapters/pinklion/pinklion.go b/adapters/pinklion/pinklion.go index b33650bd397..a0b5051c858 100644 --- a/adapters/pinklion/pinklion.go +++ b/adapters/pinklion/pinklion.go @@ -1,7 +1,6 @@ package pinklion import ( - "encoding/json" "fmt" "net/http" From 5ba855ce42cfd26a63b5a8249b103ab391c9cb9d Mon Sep 17 00:00:00 2001 From: pinklion Date: Wed, 11 Jun 2025 10:13:31 +0300 Subject: [PATCH 5/9] test error fix --- adapters/pinklion/pinklion_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adapters/pinklion/pinklion_test.go b/adapters/pinklion/pinklion_test.go index 6e47b2a3a34..ead7b7c7d03 100644 --- a/adapters/pinklion/pinklion_test.go +++ b/adapters/pinklion/pinklion_test.go @@ -16,5 +16,5 @@ func TestJsonSamples(t *testing.T) { t.Fatalf("Builder returned unexpected error %v", buildErr) } - adapterstest.RunJSONBidderTest(t, "pinkLiontest", bidder) + adapterstest.RunJSONBidderTest(t, "pinkliontest", bidder) } \ No newline at end of file From 5132f7a6e8e21be94b8650d439b435e27a3110e0 Mon Sep 17 00:00:00 2001 From: pinklion Date: Wed, 11 Jun 2025 10:16:18 +0300 Subject: [PATCH 6/9] fix error msg --- adapters/pinklion/pinkliontest/supplemental/bad_media_type.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json b/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json index 2782ecc14fd..eb161c11bab 100644 --- a/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json +++ b/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json @@ -76,7 +76,7 @@ }], "expectedMakeBidsErrors": [ { - "value": "could not define media type for impression: test-imp-id", + "value": "could not define media type for bid: test-imp-id", "comparison": "literal" } ] From 5683fc35fcb6f22e9d2c81da13c20e6c37a2cf03 Mon Sep 17 00:00:00 2001 From: pinklion Date: Thu, 26 Jun 2025 14:12:12 +0300 Subject: [PATCH 7/9] format update --- adapters/pinklion/params_test.go | 2 +- adapters/pinklion/pinklion.go | 2 +- adapters/pinklion/pinklion_test.go | 2 +- openrtb_ext/imp_pinklion.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/adapters/pinklion/params_test.go b/adapters/pinklion/params_test.go index f3ce47d4e0b..d658ba2358d 100644 --- a/adapters/pinklion/params_test.go +++ b/adapters/pinklion/params_test.go @@ -44,4 +44,4 @@ var invalidParams = []string{ `{"placementId": 42}`, `{"endpointId": 42}`, `{"placementId": "1", "endpointId": "1"}`, -} \ No newline at end of file +} diff --git a/adapters/pinklion/pinklion.go b/adapters/pinklion/pinklion.go index a0b5051c858..59071754ea1 100644 --- a/adapters/pinklion/pinklion.go +++ b/adapters/pinklion/pinklion.go @@ -149,4 +149,4 @@ func getBidType(bid openrtb2.Bid) (openrtb_ext.BidType, error) { } return "", fmt.Errorf("could not define media type for bid: %s", bid.ImpID) -} \ No newline at end of file +} diff --git a/adapters/pinklion/pinklion_test.go b/adapters/pinklion/pinklion_test.go index ead7b7c7d03..b53f65c7e0c 100644 --- a/adapters/pinklion/pinklion_test.go +++ b/adapters/pinklion/pinklion_test.go @@ -17,4 +17,4 @@ func TestJsonSamples(t *testing.T) { } adapterstest.RunJSONBidderTest(t, "pinkliontest", bidder) -} \ No newline at end of file +} diff --git a/openrtb_ext/imp_pinklion.go b/openrtb_ext/imp_pinklion.go index 456c6afe2e3..dc3c82456b9 100644 --- a/openrtb_ext/imp_pinklion.go +++ b/openrtb_ext/imp_pinklion.go @@ -3,4 +3,4 @@ package openrtb_ext type ImpExtPinkLion struct { PlacementID string `json:"placementId"` EndpointID string `json:"endpointId"` -} \ No newline at end of file +} From f8c220cbcb10d0f3e1b940dc381dd5b1e2f9127e Mon Sep 17 00:00:00 2001 From: pinklion Date: Thu, 28 Aug 2025 01:14:21 +0300 Subject: [PATCH 8/9] alias usage --- adapters/pinklion/params_test.go | 47 ---- adapters/pinklion/pinklion.go | 152 ----------- adapters/pinklion/pinklion_test.go | 20 -- .../pinkliontest/exemplary/endpointId.json | 136 ---------- .../pinkliontest/exemplary/multi-format.json | 105 -------- .../pinkliontest/exemplary/multi-imp.json | 253 ------------------ .../pinkliontest/exemplary/simple-banner.json | 136 ---------- .../pinkliontest/exemplary/simple-native.json | 120 --------- .../pinkliontest/exemplary/simple-video.json | 131 --------- .../exemplary/simple-web-banner.json | 136 ---------- .../supplemental/bad_media_type.json | 83 ------ .../supplemental/bad_response.json | 85 ------ .../pinkliontest/supplemental/status-204.json | 80 ------ .../supplemental/status-not-200.json | 85 ------ exchange/adapter_builders.go | 2 - openrtb_ext/bidders.go | 2 - openrtb_ext/imp_pinklion.go | 6 - static/bidder-info/pinkLion.yaml | 1 + static/bidder-params/pinkLion.json | 22 -- 19 files changed, 1 insertion(+), 1601 deletions(-) delete mode 100644 adapters/pinklion/params_test.go delete mode 100644 adapters/pinklion/pinklion.go delete mode 100644 adapters/pinklion/pinklion_test.go delete mode 100644 adapters/pinklion/pinkliontest/exemplary/endpointId.json delete mode 100644 adapters/pinklion/pinkliontest/exemplary/multi-format.json delete mode 100644 adapters/pinklion/pinkliontest/exemplary/multi-imp.json delete mode 100644 adapters/pinklion/pinkliontest/exemplary/simple-banner.json delete mode 100644 adapters/pinklion/pinkliontest/exemplary/simple-native.json delete mode 100644 adapters/pinklion/pinkliontest/exemplary/simple-video.json delete mode 100644 adapters/pinklion/pinkliontest/exemplary/simple-web-banner.json delete mode 100644 adapters/pinklion/pinkliontest/supplemental/bad_media_type.json delete mode 100644 adapters/pinklion/pinkliontest/supplemental/bad_response.json delete mode 100644 adapters/pinklion/pinkliontest/supplemental/status-204.json delete mode 100644 adapters/pinklion/pinkliontest/supplemental/status-not-200.json delete mode 100644 openrtb_ext/imp_pinklion.go delete mode 100644 static/bidder-params/pinkLion.json diff --git a/adapters/pinklion/params_test.go b/adapters/pinklion/params_test.go deleted file mode 100644 index d658ba2358d..00000000000 --- a/adapters/pinklion/params_test.go +++ /dev/null @@ -1,47 +0,0 @@ -package pinklion - -import ( - "encoding/json" - "testing" - - "github.com/prebid/prebid-server/v3/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.BidderPinkLion, 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.BidderPinkLion, json.RawMessage(p)); err == nil { - t.Errorf("Schema allowed invalid params: %s", p) - } - } -} - -var validParams = []string{ - `{"placementId": "test"}`, - `{"placementId": "1"}`, - `{"endpointId": "test"}`, - `{"endpointId": "1"}`, -} - -var invalidParams = []string{ - `{"placementId": 42}`, - `{"endpointId": 42}`, - `{"placementId": "1", "endpointId": "1"}`, -} diff --git a/adapters/pinklion/pinklion.go b/adapters/pinklion/pinklion.go deleted file mode 100644 index 59071754ea1..00000000000 --- a/adapters/pinklion/pinklion.go +++ /dev/null @@ -1,152 +0,0 @@ -package pinklion - -import ( - "fmt" - "net/http" - - "github.com/prebid/openrtb/v20/openrtb2" - "github.com/prebid/prebid-server/v3/adapters" - "github.com/prebid/prebid-server/v3/config" - "github.com/prebid/prebid-server/v3/openrtb_ext" - "github.com/prebid/prebid-server/v3/util/jsonutil" -) - -type adapter struct { - endpoint string -} - -type reqBodyExt struct { - PinkLionBidderExt reqBodyExtBidder `json:"bidder"` -} - -type reqBodyExtBidder struct { - Type string `json:"type"` - PlacementID string `json:"placementId,omitempty"` - EndpointID string `json:"endpointId,omitempty"` -} - -func Builder(bidderName openrtb_ext.BidderName, config config.Adapter, server config.Server) (adapters.Bidder, error) { - bidder := &adapter{ - endpoint: config.Endpoint, - } - return bidder, nil -} - -func (a *adapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) { - var errs []error - var adapterRequests []*adapters.RequestData - - reqCopy := *request - for _, imp := range request.Imp { - reqCopy.Imp = []openrtb2.Imp{imp} - - var bidderExt adapters.ExtImpBidder - var pinkLionExt openrtb_ext.ImpExtPinkLion - - if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil { - errs = append(errs, err) - continue - } - if err := jsonutil.Unmarshal(bidderExt.Bidder, &pinkLionExt); err != nil { - errs = append(errs, err) - continue - } - - impExt := reqBodyExt{PinkLionBidderExt: reqBodyExtBidder{}} - - if pinkLionExt.PlacementID != "" { - impExt.PinkLionBidderExt.PlacementID = pinkLionExt.PlacementID - impExt.PinkLionBidderExt.Type = "publisher" - } else if pinkLionExt.EndpointID != "" { - impExt.PinkLionBidderExt.EndpointID = pinkLionExt.EndpointID - impExt.PinkLionBidderExt.Type = "network" - } - - finalyImpExt, err := jsonutil.Marshal(impExt) - if err != nil { - errs = append(errs, err) - continue - } - - reqCopy.Imp[0].Ext = finalyImpExt - - adapterReq, err := a.makeRequest(&reqCopy) - if err != nil { - errs = append(errs, err) - continue - } - - adapterRequests = append(adapterRequests, adapterReq) - } - - return adapterRequests, nil -} - -func (a *adapter) makeRequest(request *openrtb2.BidRequest) (*adapters.RequestData, error) { - reqJSON, err := jsonutil.Marshal(request) - if err != nil { - return nil, err - } - - headers := http.Header{} - headers.Add("Content-Type", "application/json;charset=utf-8") - headers.Add("Accept", "application/json") - return &adapters.RequestData{ - Method: "POST", - Uri: a.endpoint, - Body: reqJSON, - Headers: headers, - ImpIDs: openrtb_ext.GetImpIDs(request.Imp), - }, nil -} - -func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.RequestData, responseData *adapters.ResponseData) (*adapters.BidderResponse, []error) { - if adapters.IsResponseStatusCodeNoContent(responseData) { - return nil, nil - } - - if err := adapters.CheckResponseStatusCodeForErrors(responseData); err != nil { - return nil, []error{err} - } - - var response openrtb2.BidResponse - if err := jsonutil.Unmarshal(responseData.Body, &response); err != nil { - return nil, []error{err} - } - - bidResponse := adapters.NewBidderResponseWithBidsCapacity(len(request.Imp)) - if len(response.Cur) != 0 { - bidResponse.Currency = response.Cur - } - - for _, seatBid := range response.SeatBid { - for i := range seatBid.Bid { - bid := seatBid.Bid[i] - bidType, err := getBidType(bid) - if err != nil { - return nil, []error{err} - } - - b := &adapters.TypedBid{ - Bid: &seatBid.Bid[i], - BidType: bidType, - } - bidResponse.Bids = append(bidResponse.Bids, b) - } - } - return bidResponse, nil -} - -func getBidType(bid openrtb2.Bid) (openrtb_ext.BidType, error) { - // determinate media type by bid response field mtype - switch bid.MType { - case openrtb2.MarkupBanner: - return openrtb_ext.BidTypeBanner, nil - case openrtb2.MarkupVideo: - return openrtb_ext.BidTypeVideo, nil - case openrtb2.MarkupNative: - return openrtb_ext.BidTypeNative, nil - } - - return "", fmt.Errorf("could not define media type for bid: %s", bid.ImpID) -} diff --git a/adapters/pinklion/pinklion_test.go b/adapters/pinklion/pinklion_test.go deleted file mode 100644 index b53f65c7e0c..00000000000 --- a/adapters/pinklion/pinklion_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package pinklion - -import ( - "testing" - - "github.com/prebid/prebid-server/v3/adapters/adapterstest" - "github.com/prebid/prebid-server/v3/config" - "github.com/prebid/prebid-server/v3/openrtb_ext" -) - -func TestJsonSamples(t *testing.T) { - bidder, buildErr := Builder(openrtb_ext.BidderPinkLion, config.Adapter{ - Endpoint: "https://fake.test.io/pserver"}, config.Server{ExternalUrl: "http://hosturl.com", GvlID: 1, DataCenter: "2"}) - - if buildErr != nil { - t.Fatalf("Builder returned unexpected error %v", buildErr) - } - - adapterstest.RunJSONBidderTest(t, "pinkliontest", bidder) -} diff --git a/adapters/pinklion/pinkliontest/exemplary/endpointId.json b/adapters/pinklion/pinkliontest/exemplary/endpointId.json deleted file mode 100644 index 7257f4fe261..00000000000 --- a/adapters/pinklion/pinkliontest/exemplary/endpointId.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - }, - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "endpointId": "test" - } - } - } - ] - }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "endpointId": "test", - "type": "network" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - } - ], - "expectedBidResponses": [ - { - "bids": [ - { - "bid": { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - }, - "type": "banner" - } - ] - } - ] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/exemplary/multi-format.json b/adapters/pinklion/pinkliontest/exemplary/multi-format.json deleted file mode 100644 index cb1c6ffd9c6..00000000000 --- a/adapters/pinklion/pinkliontest/exemplary/multi-format.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - }, - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "video": { - "mimes": [ - "video/mp4" - ], - "protocols": [ - 2, - 5 - ], - "w": 1024, - "h": 576 - }, - "ext": { - "bidder": { - "endpointId": "test" - } - } - } - ] - }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "video": { - "mimes": [ - "video/mp4" - ], - "protocols": [ - 2, - 5 - ], - "w": 1024, - "h": 576 - }, - "ext": { - "bidder": { - "endpointId": "test", - "type": "network" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 204 - } - } - ], - "expectedBidResponses": [] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/exemplary/multi-imp.json b/adapters/pinklion/pinkliontest/exemplary/multi-imp.json deleted file mode 100644 index b8c0e328c01..00000000000 --- a/adapters/pinklion/pinkliontest/exemplary/multi-imp.json +++ /dev/null @@ -1,253 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - }, - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "imp": [ - { - "id": "test-imp-id1", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "endpointId": "test" - } - } - }, - { - "id": "test-imp-id2", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "endpointId": "test" - } - } - } - ] - }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id1", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "endpointId": "test", - "type": "network" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - } - }, - "impIDs":["test-imp-id1"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id1", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - }, - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id2", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "endpointId": "test", - "type": "network" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - } - }, - "impIDs":["test-imp-id2"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id2", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - } - ], - "expectedBidResponses": [ - { - "bids": [ - { - "bid": { - "id": "test_bid_id", - "impid": "test-imp-id1", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - }, - "type": "banner" - } - ] - }, - { - "bids": [ - { - "bid": { - "id": "test_bid_id", - "impid": "test-imp-id2", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - }, - "type": "banner" - } - ] - } - ] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/exemplary/simple-banner.json b/adapters/pinklion/pinkliontest/exemplary/simple-banner.json deleted file mode 100644 index 6743d0a355d..00000000000 --- a/adapters/pinklion/pinkliontest/exemplary/simple-banner.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - }, - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ] - }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - } - ], - "expectedBidResponses": [ - { - "bids": [ - { - "bid": { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner" - } - } - }, - "type": "banner" - } - ] - } - ] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/exemplary/simple-native.json b/adapters/pinklion/pinkliontest/exemplary/simple-native.json deleted file mode 100644 index 14b09a05318..00000000000 --- a/adapters/pinklion/pinkliontest/exemplary/simple-native.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - }, - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "native": { - "request": "{\"ver\":\"1.1\",\"layout\":1,\"adunit\":2,\"plcmtcnt\":6,\"plcmttype\":4,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":75}},{\"id\":2,\"required\":1,\"img\":{\"wmin\":492,\"hmin\":328,\"type\":3,\"mimes\":[\"image/jpeg\",\"image/jpg\",\"image/png\"]}},{\"id\":4,\"required\":0,\"data\":{\"type\":6}},{\"id\":5,\"required\":0,\"data\":{\"type\":7}},{\"id\":6,\"required\":0,\"data\":{\"type\":1,\"len\":20}}]}", - "ver": "1.1" - }, - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ] - }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "native": { - "request": "{\"ver\":\"1.1\",\"layout\":1,\"adunit\":2,\"plcmtcnt\":6,\"plcmttype\":4,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":75}},{\"id\":2,\"required\":1,\"img\":{\"wmin\":492,\"hmin\":328,\"type\":3,\"mimes\":[\"image/jpeg\",\"image/jpg\",\"image/png\"]}},{\"id\":4,\"required\":0,\"data\":{\"type\":6}},{\"id\":5,\"required\":0,\"data\":{\"type\":7}},{\"id\":6,\"required\":0,\"data\":{\"type\":1,\"len\":20}}]}", - "ver": "1.1" - }, - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 4, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "native" - } - } - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - } - ], - "expectedBidResponses": [ - { - "bids": [ - { - "bid": { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 4, - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "native" - } - } - }, - "type": "native" - } - ] - } - ] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/exemplary/simple-video.json b/adapters/pinklion/pinkliontest/exemplary/simple-video.json deleted file mode 100644 index 582c4bf0cb9..00000000000 --- a/adapters/pinklion/pinkliontest/exemplary/simple-video.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - }, - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "video": { - "mimes": [ - "video/mp4" - ], - "protocols": [ - 2, - 5 - ], - "w": 1024, - "h": 576 - }, - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ] - }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "device": { - "ip": "123.123.123.123", - "ua": "iPad" - }, - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "video": { - "mimes": [ - "video/mp4" - ], - "protocols": [ - 2, - 5 - ], - "w": 1024, - "h": 576 - }, - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ] - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "00:01:00", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 2, - "ext": { - "prebid": { - "type": "video" - } - } - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - } - ], - "expectedBidResponses": [ - { - "currency": "USD", - "bids": [ - { - "bid": { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "00:01:00", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 2, - "ext": { - "prebid": { - "type": "video" - } - } - }, - "type": "video" - } - ] - } - ] -} diff --git a/adapters/pinklion/pinkliontest/exemplary/simple-web-banner.json b/adapters/pinklion/pinkliontest/exemplary/simple-web-banner.json deleted file mode 100644 index 64b59033257..00000000000 --- a/adapters/pinklion/pinkliontest/exemplary/simple-web-banner.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ], - "site": { - "id": "1", - "domain": "test.com" - }, - "device": { - "ip": "123.123.123.123", - "ua": "Ubuntu" - } - }, - "httpCalls": [ - { - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "tagid": "test", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ], - "site": { - "id": "1", - "domain": "test.com" - }, - "device": { - "ip": "123.123.123.123", - "ua": "Ubuntu" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 468, - "h": 60, - "ext": { - "prebid": { - "type": "banner" - } - } - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - } - ], - "expectedBidResponses": [ - { - "bids": [ - { - "bid": { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "mtype": 1, - "w": 468, - "h": 60, - "ext": { - "prebid": { - "type": "banner" - } - } - }, - "type": "banner" - } - ] - } - ] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json b/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json deleted file mode 100644 index eb161c11bab..00000000000 --- a/adapters/pinklion/pinkliontest/supplemental/bad_media_type.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "httpCalls": [{ - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 200, - "body": { - "id": "test-request-id", - "seatbid": [ - { - "bid": [ - { - "id": "test_bid_id", - "impid": "test-imp-id", - "price": 0.27543, - "adm": "", - "cid": "test_cid", - "crid": "test_crid", - "dealid": "test_dealid", - "w": 300, - "h": 250, - "ext": {} - } - ], - "seat": "pinkLion" - } - ], - "cur": "USD" - } - } - }], - "expectedMakeBidsErrors": [ - { - "value": "could not define media type for bid: test-imp-id", - "comparison": "literal" - } - ] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/supplemental/bad_response.json b/adapters/pinklion/pinkliontest/supplemental/bad_response.json deleted file mode 100644 index 6d9d7c3452b..00000000000 --- a/adapters/pinklion/pinkliontest/supplemental/bad_response.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "httpCalls": [{ - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 200, - "body": "" - } - }], - "expectedMakeBidsErrors": [ - { - "value": "expect { or n, but found \"", - "comparison": "literal" - } - ] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/supplemental/status-204.json b/adapters/pinklion/pinkliontest/supplemental/status-204.json deleted file mode 100644 index 9fde09a13b9..00000000000 --- a/adapters/pinklion/pinkliontest/supplemental/status-204.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "httpCalls": [{ - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 204, - "body": {} - } - }], - "expectedBidResponses": [] -} \ No newline at end of file diff --git a/adapters/pinklion/pinkliontest/supplemental/status-not-200.json b/adapters/pinklion/pinkliontest/supplemental/status-not-200.json deleted file mode 100644 index 5e7a1d0b05c..00000000000 --- a/adapters/pinklion/pinkliontest/supplemental/status-not-200.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "mockBidRequest": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "httpCalls": [{ - "expectedRequest": { - "uri": "https://fake.test.io/pserver", - "body": { - "id": "test-request-id", - "imp": [ - { - "id": "test-imp-id", - "banner": { - "format": [ - { - "w": 300, - "h": 250 - }, - { - "w": 300, - "h": 600 - } - ] - }, - "ext": { - "bidder": { - "placementId": "test", - "type": "publisher" - } - } - } - ], - "app": { - "id": "1", - "bundle": "com.wls.testwlsapplication" - }, - "device": { - "ip": "123.123.123.123", - "ifa": "sdjfksdf-dfsds-dsdg-dsgg" - } - }, - "impIDs":["test-imp-id"] - }, - "mockResponse": { - "status": 404, - "body": {} - } - }], - "expectedMakeBidsErrors": [ - { - "value": "Unexpected status code: 404. Run with request.debug = 1 for more info", - "comparison": "literal" - } - ] -} \ No newline at end of file diff --git a/exchange/adapter_builders.go b/exchange/adapter_builders.go index 44af640a57d..87821fd0c75 100755 --- a/exchange/adapter_builders.go +++ b/exchange/adapter_builders.go @@ -171,7 +171,6 @@ import ( "github.com/prebid/prebid-server/v3/adapters/ownadx" "github.com/prebid/prebid-server/v3/adapters/pangle" "github.com/prebid/prebid-server/v3/adapters/pgamssp" - "github.com/prebid/prebid-server/v3/adapters/pinklion" "github.com/prebid/prebid-server/v3/adapters/playdigo" "github.com/prebid/prebid-server/v3/adapters/pubmatic" "github.com/prebid/prebid-server/v3/adapters/pubnative" @@ -424,7 +423,6 @@ func newAdapterBuilders() map[openrtb_ext.BidderName]adapters.Builder { openrtb_ext.BidderOwnAdx: ownadx.Builder, openrtb_ext.BidderPangle: pangle.Builder, openrtb_ext.BidderPGAMSsp: pgamssp.Builder, - openrtb_ext.BidderPinkLion: pinklion.Builder, openrtb_ext.BidderPlaydigo: playdigo.Builder, openrtb_ext.BidderPubmatic: pubmatic.Builder, openrtb_ext.BidderPubnative: pubnative.Builder, diff --git a/openrtb_ext/bidders.go b/openrtb_ext/bidders.go index 75b99802ac7..67cf8e7c15e 100644 --- a/openrtb_ext/bidders.go +++ b/openrtb_ext/bidders.go @@ -189,7 +189,6 @@ var coreBidderNames []BidderName = []BidderName{ BidderOwnAdx, BidderPangle, BidderPGAMSsp, - BidderPinkLion, BidderPlaydigo, BidderPubmatic, BidderPubrise, @@ -546,7 +545,6 @@ const ( BidderOwnAdx BidderName = "ownadx" BidderPangle BidderName = "pangle" BidderPGAMSsp BidderName = "pgamssp" - BidderPinkLion BidderName = "pinkLion" BidderPlaydigo BidderName = "playdigo" BidderPubmatic BidderName = "pubmatic" BidderPubrise BidderName = "pubrise" diff --git a/openrtb_ext/imp_pinklion.go b/openrtb_ext/imp_pinklion.go deleted file mode 100644 index dc3c82456b9..00000000000 --- a/openrtb_ext/imp_pinklion.go +++ /dev/null @@ -1,6 +0,0 @@ -package openrtb_ext - -type ImpExtPinkLion struct { - PlacementID string `json:"placementId"` - EndpointID string `json:"endpointId"` -} diff --git a/static/bidder-info/pinkLion.yaml b/static/bidder-info/pinkLion.yaml index 5c402c224e3..b03fa36041c 100644 --- a/static/bidder-info/pinkLion.yaml +++ b/static/bidder-info/pinkLion.yaml @@ -1,3 +1,4 @@ +aliasOf: "teqblaze" endpoint: "https://us-east-ep.pinklion.io/pserver" maintainer: email: "prebid@pinklion.io" diff --git a/static/bidder-params/pinkLion.json b/static/bidder-params/pinkLion.json deleted file mode 100644 index d9eef4bbb6c..00000000000 --- a/static/bidder-params/pinkLion.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "PinkLion Adapter Params", - "description": "A schema which validates params accepted by the PinkLion adapter", - "type": "object", - "properties": { - "placementId": { - "type": "string", - "minLength": 1, - "description": "Placement ID" - }, - "endpointId": { - "type": "string", - "minLength": 1, - "description": "Endpoint ID" - } - }, - "oneOf": [ - { "required": ["placementId"] }, - { "required": ["endpointId"] } - ] -} \ No newline at end of file From 1471d6e16ce38bbb0c089fa674fcf46389a7fc28 Mon Sep 17 00:00:00 2001 From: pinklion Date: Fri, 29 Aug 2025 11:39:58 +0300 Subject: [PATCH 9/9] removed declarations --- static/bidder-info/pinkLion.yaml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/static/bidder-info/pinkLion.yaml b/static/bidder-info/pinkLion.yaml index b03fa36041c..52e9e0f1bab 100644 --- a/static/bidder-info/pinkLion.yaml +++ b/static/bidder-info/pinkLion.yaml @@ -1,15 +1,4 @@ aliasOf: "teqblaze" endpoint: "https://us-east-ep.pinklion.io/pserver" maintainer: - email: "prebid@pinklion.io" -capabilities: - site: - mediaTypes: - - banner - - video - - native - app: - mediaTypes: - - banner - - video - - native \ No newline at end of file + email: "prebid@pinklion.io" \ No newline at end of file