diff --git a/adapters/smaato/image.go b/adapters/smaato/image.go
index 582206ccb0c..a4dad157bd1 100644
--- a/adapters/smaato/image.go
+++ b/adapters/smaato/image.go
@@ -3,6 +3,7 @@ package smaato
import (
"encoding/json"
"fmt"
+ "github.com/prebid/prebid-server/errortypes"
"net/url"
"strings"
)
@@ -22,32 +23,27 @@ type img struct {
Ctaurl string `json:"ctaurl"`
}
-func extractAdmImage(adapterResponseAdm string) (string, error) {
- var imgMarkup string
- var err error
-
+func extractAdmImage(adMarkup string) (string, error) {
var imageAd imageAd
- err = json.Unmarshal([]byte(adapterResponseAdm), &imageAd)
- var image = imageAd.Image
-
- if err == nil {
- var clickEvent strings.Builder
- var impressionTracker strings.Builder
-
- for _, clicktracker := range image.Clicktrackers {
- clickEvent.WriteString("fetch(decodeURIComponent('" + url.QueryEscape(clicktracker) + "'.replace(/\\+/g, ' ')), " +
- "{cache: 'no-cache'});")
+ if err := json.Unmarshal([]byte(adMarkup), &imageAd); err != nil {
+ return "", &errortypes.BadServerResponse{
+ Message: fmt.Sprintf("Invalid ad markup %s.", adMarkup),
}
+ }
- for _, impression := range image.Impressiontrackers {
-
- impressionTracker.WriteString(fmt.Sprintf(``, impression))
- }
+ var clickEvent strings.Builder
+ for _, clicktracker := range imageAd.Image.Clicktrackers {
+ clickEvent.WriteString("fetch(decodeURIComponent('" + url.QueryEscape(clicktracker) + "'.replace(/\\+/g, ' ')), " +
+ "{cache: 'no-cache'});")
+ }
- imgMarkup = fmt.Sprintf(`
%s
`,
- &clickEvent, url.QueryEscape(image.Img.Ctaurl), image.
- Img.URL, image.Img.W, image.Img.
- H, &impressionTracker)
+ var impressionTracker strings.Builder
+ for _, impression := range imageAd.Image.Impressiontrackers {
+ impressionTracker.WriteString(fmt.Sprintf(``, impression))
}
- return imgMarkup, err
+
+ imageAdMarkup := fmt.Sprintf(`%s
`,
+ &clickEvent, url.QueryEscape(imageAd.Image.Img.Ctaurl), imageAd.Image.Img.URL, imageAd.Image.Img.W, imageAd.Image.Img.H, &impressionTracker)
+
+ return imageAdMarkup, nil
}
diff --git a/adapters/smaato/image_test.go b/adapters/smaato/image_test.go
index 5f39c857201..1ba99ddd7c5 100644
--- a/adapters/smaato/image_test.go
+++ b/adapters/smaato/image_test.go
@@ -1,44 +1,51 @@
package smaato
import (
+ "github.com/stretchr/testify/assert"
"testing"
)
-func TestRenderAdMarkup(t *testing.T) {
- type args struct {
- adType adMarkupType
- adapterResponseAdm string
- }
- expectedResult := ``
-
+func TestExtractAdmImage(t *testing.T) {
tests := []struct {
- testName string
- args args
- result string
+ testName string
+ adMarkup string
+ expectedAdMarkup string
+ expectedError string
}{
- {"imageTest", args{"Img",
- "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\"," +
+ {
+ testName: "extract image",
+ adMarkup: "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\"," +
"\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"}," +
"\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"]," +
- "\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}"},
- expectedResult,
+ "\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ expectedAdMarkup: ``,
+ expectedError: "",
+ },
+ {
+ testName: "invalid adMarkup",
+ adMarkup: "{",
+ expectedAdMarkup: "",
+ expectedError: "Invalid ad markup {.",
},
}
+
for _, tt := range tests {
t.Run(tt.testName, func(t *testing.T) {
- got, err := renderAdMarkup(tt.args.adType, tt.args.adapterResponseAdm)
- if err != nil {
- t.Errorf("error rendering ad markup: %v", err)
- }
- if got != tt.result {
- t.Errorf("renderAdMarkup() got = %v, result %v", got, tt.result)
+ adMarkup, err := extractAdmImage(tt.adMarkup)
+
+ if tt.expectedError != "" {
+ assert.EqualError(t, err, tt.expectedError)
+ } else {
+ assert.NoError(t, err)
}
+
+ assert.Equal(t, tt.expectedAdMarkup, adMarkup)
})
}
}
diff --git a/adapters/smaato/params_test.go b/adapters/smaato/params_test.go
index 6c71cbe75c6..2e29550a394 100644
--- a/adapters/smaato/params_test.go
+++ b/adapters/smaato/params_test.go
@@ -41,6 +41,8 @@ func TestInvalidParams(t *testing.T) {
var validParams = []string{
`{"publisherId":"test-id-1234-smaato","adspaceId": "1123581321"}`,
+ `{"publisherId":"test-id-1234-smaato","adbreakId": "4123581321"}`,
+ `{"publisherId":"test-id-1234-smaato","adspaceId": "1123581321","adbreakId": "4123581321"}`,
}
var invalidParams = []string{
diff --git a/adapters/smaato/richmedia.go b/adapters/smaato/richmedia.go
index 1c94a3555c1..a8865361d38 100644
--- a/adapters/smaato/richmedia.go
+++ b/adapters/smaato/richmedia.go
@@ -3,6 +3,7 @@ package smaato
import (
"encoding/json"
"fmt"
+ "github.com/prebid/prebid-server/errortypes"
"net/url"
"strings"
)
@@ -22,31 +23,27 @@ type richmedia struct {
Clicktrackers []string `json:"clicktrackers"`
}
-func extractAdmRichMedia(adapterResponseAdm string) (string, error) {
- var richMediaMarkup string
- var err error
-
+func extractAdmRichMedia(adMarkup string) (string, error) {
var richMediaAd richMediaAd
- err = json.Unmarshal([]byte(adapterResponseAdm), &richMediaAd)
- var richMedia = richMediaAd.RichMedia
-
- if err == nil {
- var clickEvent strings.Builder
- var impressionTracker strings.Builder
-
- for _, clicktracker := range richMedia.Clicktrackers {
- clickEvent.WriteString("fetch(decodeURIComponent('" + url.QueryEscape(clicktracker) + "'), " +
- "{cache: 'no-cache'});")
+ if err := json.Unmarshal([]byte(adMarkup), &richMediaAd); err != nil {
+ return "", &errortypes.BadServerResponse{
+ Message: fmt.Sprintf("Invalid ad markup %s.", adMarkup),
}
- for _, impression := range richMedia.Impressiontrackers {
+ }
- impressionTracker.WriteString(fmt.Sprintf(``, impression))
- }
+ var clickEvent strings.Builder
+ var impressionTracker strings.Builder
- richMediaMarkup = fmt.Sprintf(`%s%s
`,
- &clickEvent,
- richMedia.MediaData.Content,
- &impressionTracker)
+ for _, clicktracker := range richMediaAd.RichMedia.Clicktrackers {
+ clickEvent.WriteString("fetch(decodeURIComponent('" + url.QueryEscape(clicktracker) + "'), " +
+ "{cache: 'no-cache'});")
+ }
+ for _, impression := range richMediaAd.RichMedia.Impressiontrackers {
+ impressionTracker.WriteString(fmt.Sprintf(``, impression))
}
- return richMediaMarkup, err
+
+ richmediaAdMarkup := fmt.Sprintf(`%s%s
`,
+ &clickEvent, richMediaAd.RichMedia.MediaData.Content, &impressionTracker)
+
+ return richmediaAdMarkup, nil
}
diff --git a/adapters/smaato/richmedia_test.go b/adapters/smaato/richmedia_test.go
index 20fa1ba353c..eff559852be 100644
--- a/adapters/smaato/richmedia_test.go
+++ b/adapters/smaato/richmedia_test.go
@@ -1,39 +1,48 @@
package smaato
import (
+ "github.com/stretchr/testify/assert"
"testing"
)
func TestExtractAdmRichMedia(t *testing.T) {
- type args struct {
- adType adMarkupType
- adapterResponseAdm string
- }
- expectedResult := `hello
` +
- `
`
tests := []struct {
- testName string
- args args
- result string
+ testName string
+ adMarkup string
+ expectedAdMarkup string
+ expectedError string
}{
- {"richmediaTest", args{"Richmedia", "{\"richmedia\":{\"mediadata\":{\"content\":\"hello
\"," +
- "" + "\"w\":350," +
- "\"h\":50},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"]," +
- "\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}"},
- expectedResult,
+ {
+ testName: "extract richmedia",
+ adMarkup: "{\"richmedia\":{\"mediadata\":{\"content\":\"hello
\"," +
+ "" + "\"w\":350," +
+ "\"h\":50},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"]," +
+ "\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ expectedAdMarkup: `hello
` +
+ `
`,
+ expectedError: "",
+ },
+ {
+ testName: "invalid adMarkup",
+ adMarkup: "{",
+ expectedAdMarkup: "",
+ expectedError: "Invalid ad markup {.",
},
}
+
for _, tt := range tests {
t.Run(tt.testName, func(t *testing.T) {
- got, err := renderAdMarkup(tt.args.adType, tt.args.adapterResponseAdm)
- if err != nil {
- t.Errorf("error rendering ad markup: %v", err)
- }
- if got != tt.result {
- t.Errorf("renderAdMarkup() got = %v, result %v", got, tt.result)
+ adMarkup, err := extractAdmRichMedia(tt.adMarkup)
+
+ if tt.expectedError != "" {
+ assert.EqualError(t, err, tt.expectedError)
+ } else {
+ assert.NoError(t, err)
}
+
+ assert.Equal(t, tt.expectedAdMarkup, adMarkup)
})
}
}
diff --git a/adapters/smaato/smaato.go b/adapters/smaato/smaato.go
index 9aea2e1e614..c50efffc994 100644
--- a/adapters/smaato/smaato.go
+++ b/adapters/smaato/smaato.go
@@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"net/http"
+ "strconv"
"strings"
"github.com/buger/jsonparser"
@@ -11,10 +12,12 @@ import (
"github.com/prebid/prebid-server/adapters"
"github.com/prebid/prebid-server/config"
"github.com/prebid/prebid-server/errortypes"
+ "github.com/prebid/prebid-server/metrics"
"github.com/prebid/prebid-server/openrtb_ext"
+ "github.com/prebid/prebid-server/util/timeutil"
)
-const clientVersion = "prebid_server_0.2"
+const clientVersion = "prebid_server_0.3"
type adMarkupType string
@@ -24,23 +27,20 @@ const (
smtAdTypeVideo adMarkupType = "Video"
)
-// SmaatoAdapter describes a Smaato prebid server adapter.
-type SmaatoAdapter struct {
- URI string
-}
-
-//userExt defines User.Ext object for Smaato
-type userExt struct {
- Data userExtData `json:"data"`
+// adapter describes a Smaato prebid server adapter.
+type adapter struct {
+ clock timeutil.Time
+ endpoint string
}
+// userExtData defines User.Ext.Data object for Smaato
type userExtData struct {
Keywords string `json:"keywords"`
Gender string `json:"gender"`
Yob int64 `json:"yob"`
}
-//userExt defines Site.Ext object for Smaato
+// siteExt defines Site.Ext object for Smaato
type siteExt struct {
Data siteExtData `json:"data"`
}
@@ -49,189 +49,224 @@ type siteExtData struct {
Keywords string `json:"keywords"`
}
+// bidRequestExt defines BidRequest.Ext object for Smaato
+type bidRequestExt struct {
+ Client string `json:"client"`
+}
+
+// bidExt defines Bid.Ext object for Smaato
+type bidExt struct {
+ Duration int `json:"duration"`
+}
+
+// videoExt defines Video.Ext object for Smaato
+type videoExt struct {
+ Context string `json:"context,omitempty"`
+}
+
// Builder builds a new instance of the Smaato adapter for the given bidder with the given config.
func Builder(bidderName openrtb_ext.BidderName, config config.Adapter) (adapters.Bidder, error) {
- bidder := &SmaatoAdapter{
- URI: config.Endpoint,
+ bidder := &adapter{
+ clock: &timeutil.RealTime{},
+ endpoint: config.Endpoint,
}
return bidder, nil
}
// MakeRequests makes the HTTP requests which should be made to fetch bids.
-func (a *SmaatoAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) {
- errs := make([]error, 0, len(request.Imp))
+func (adapter *adapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) {
if len(request.Imp) == 0 {
- errs = append(errs, &errortypes.BadInput{Message: "no impressions in bid request"})
- return nil, errs
+ return nil, []error{&errortypes.BadInput{Message: "No impressions in bid request."}}
}
- // Use bidRequestExt of first imp to retrieve params which are valid for all imps, e.g. publisherId
- publisherID, err := jsonparser.GetString(request.Imp[0].Ext, "bidder", "publisherId")
- if err != nil {
- errs = append(errs, err)
- return nil, errs
+ // set data in request that is common for all requests
+ if err := prepareCommonRequest(request); err != nil {
+ return nil, []error{err}
}
- for i := 0; i < len(request.Imp); i++ {
- err := parseImpressionObject(&request.Imp[i])
- // If the parsing is failed, remove imp and add the error.
- if err != nil {
- errs = append(errs, err)
- request.Imp = append(request.Imp[:i], request.Imp[i+1:]...)
- i--
- }
+ isVideoEntryPoint := reqInfo.PbsEntryPoint == metrics.ReqTypeVideo
+
+ if isVideoEntryPoint {
+ return adapter.makePodRequests(request)
+ } else {
+ return adapter.makeIndividualRequests(request)
}
+}
- if request.Site != nil {
- siteCopy := *request.Site
- siteCopy.Publisher = &openrtb2.Publisher{ID: publisherID}
+// MakeBids unpacks the server's response into Bids.
+func (adapter *adapter) MakeBids(internalRequest *openrtb2.BidRequest, externalRequest *adapters.RequestData, response *adapters.ResponseData) (*adapters.BidderResponse, []error) {
+ if response.StatusCode == http.StatusNoContent {
+ return nil, nil
+ }
- if request.Site.Ext != nil {
- var siteExt siteExt
- err := json.Unmarshal([]byte(request.Site.Ext), &siteExt)
+ if response.StatusCode != http.StatusOK {
+ return nil, []error{&errortypes.BadServerResponse{
+ Message: fmt.Sprintf("Unexpected status code: %d. Run with request.debug = 1 for more info.", response.StatusCode),
+ }}
+ }
+
+ var bidResp openrtb2.BidResponse
+ if err := json.Unmarshal(response.Body, &bidResp); err != nil {
+ return nil, []error{err}
+ }
+
+ bidResponse := adapters.NewBidderResponseWithBidsCapacity(5)
+
+ var errors []error
+ for _, seatBid := range bidResp.SeatBid {
+ for i := 0; i < len(seatBid.Bid); i++ {
+ bid := seatBid.Bid[i]
+
+ adMarkupType, err := getAdMarkupType(response, bid.AdM)
if err != nil {
- errs = append(errs, err)
- return nil, errs
+ errors = append(errors, err)
+ continue
}
- siteCopy.Keywords = siteExt.Data.Keywords
- siteCopy.Ext = nil
+
+ bid.AdM, err = renderAdMarkup(adMarkupType, bid.AdM)
+ if err != nil {
+ errors = append(errors, err)
+ continue
+ }
+
+ bidType, err := convertAdMarkupTypeToMediaType(adMarkupType)
+ if err != nil {
+ errors = append(errors, err)
+ continue
+ }
+
+ bidVideo, err := buildBidVideo(&bid, bidType)
+ if err != nil {
+ errors = append(errors, err)
+ continue
+ }
+
+ bid.Exp = adapter.getTTLFromHeaderOrDefault(response)
+
+ bidResponse.Bids = append(bidResponse.Bids, &adapters.TypedBid{
+ Bid: &bid,
+ BidType: bidType,
+ BidVideo: bidVideo,
+ })
}
- request.Site = &siteCopy
}
+ return bidResponse, errors
+}
- if request.App != nil {
- appCopy := *request.App
- appCopy.Publisher = &openrtb2.Publisher{ID: publisherID}
+func (adapter *adapter) makeIndividualRequests(request *openrtb2.BidRequest) ([]*adapters.RequestData, []error) {
+ imps := request.Imp
- request.App = &appCopy
- }
+ requests := make([]*adapters.RequestData, 0, len(imps))
+ errors := make([]error, 0, len(imps))
- if request.User != nil && request.User.Ext != nil {
- var userExt userExt
- var userExtRaw map[string]json.RawMessage
+ for _, imp := range imps {
+ request.Imp = []openrtb2.Imp{imp}
+ if err := prepareIndividualRequest(request); err != nil {
+ errors = append(errors, err)
+ continue
+ }
- rawExtErr := json.Unmarshal(request.User.Ext, &userExtRaw)
- if rawExtErr != nil {
- errs = append(errs, rawExtErr)
- return nil, errs
+ requestData, err := adapter.makeRequest(request)
+ if err != nil {
+ errors = append(errors, err)
+ continue
}
- userExtErr := json.Unmarshal([]byte(request.User.Ext), &userExt)
- if userExtErr != nil {
- errs = append(errs, userExtErr)
- return nil, errs
+ requests = append(requests, requestData)
+ }
+
+ return requests, errors
+}
+
+func (adapter *adapter) makePodRequests(request *openrtb2.BidRequest) ([]*adapters.RequestData, []error) {
+ pods, orderedKeys, errors := groupImpressionsByPod(request.Imp)
+ requests := make([]*adapters.RequestData, 0, len(pods))
+
+ for _, key := range orderedKeys {
+ request.Imp = pods[key]
+
+ if err := preparePodRequest(request); err != nil {
+ errors = append(errors, err)
+ continue
}
- userCopy := *request.User
- extractUserExtAttributes(userExt, &userCopy)
- delete(userExtRaw, "data")
- userCopy.Ext, err = json.Marshal(userExtRaw)
+ requestData, err := adapter.makeRequest(request)
if err != nil {
- errs = append(errs, err)
- return nil, errs
+ errors = append(errors, err)
+ continue
}
- request.User = &userCopy
- }
- // Setting ext client info
- type bidRequestExt struct {
- Client string `json:"client"`
- }
- request.Ext, err = json.Marshal(bidRequestExt{Client: clientVersion})
- if err != nil {
- errs = append(errs, err)
- return nil, errs
+ requests = append(requests, requestData)
}
+
+ return requests, errors
+}
+
+func (adapter *adapter) makeRequest(request *openrtb2.BidRequest) (*adapters.RequestData, error) {
reqJSON, err := json.Marshal(request)
if err != nil {
- errs = append(errs, err)
- return nil, errs
+ return nil, err
}
- uri := a.URI
-
headers := http.Header{}
headers.Add("Content-Type", "application/json;charset=utf-8")
headers.Add("Accept", "application/json")
- return []*adapters.RequestData{{
+ return &adapters.RequestData{
Method: "POST",
- Uri: uri,
+ Uri: adapter.endpoint,
Body: reqJSON,
Headers: headers,
- }}, errs
+ }, nil
}
-// MakeBids unpacks the server's response into Bids.
-func (a *SmaatoAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externalRequest *adapters.RequestData, response *adapters.ResponseData) (*adapters.BidderResponse, []error) {
- if response.StatusCode == http.StatusNoContent {
- return nil, nil
- }
-
- if response.StatusCode == http.StatusBadRequest {
- return nil, []error{&errortypes.BadInput{
- Message: fmt.Sprintf("Unexpected status code: %d. Run with request.debug = 1 for more info", response.StatusCode),
- }}
- }
-
- if response.StatusCode != http.StatusOK {
- return nil, []error{fmt.Errorf("unexpected status code: %d. Run with request.debug = 1 for more info", response.StatusCode)}
- }
-
- var bidResp openrtb2.BidResponse
- if err := json.Unmarshal(response.Body, &bidResp); err != nil {
- return nil, []error{err}
+func getAdMarkupType(response *adapters.ResponseData, adMarkup string) (adMarkupType, error) {
+ if admType := adMarkupType(response.Headers.Get("X-Smt-Adtype")); admType != "" {
+ return admType, nil
+ } else if strings.HasPrefix(adMarkup, `{"image":`) {
+ return smtAdTypeImg, nil
+ } else if strings.HasPrefix(adMarkup, `{"richmedia":`) {
+ return smtAdTypeRichmedia, nil
+ } else if strings.HasPrefix(adMarkup, ` 0 {
+ primaryCategory = bid.Cat[0]
}
+
+ var bidExt bidExt
+ if err := json.Unmarshal(bid.Ext, &bidExt); err != nil {
+ return nil, &errortypes.BadServerResponse{Message: "Invalid bid.ext."}
+ }
+
+ return &openrtb_ext.ExtBidPrebidVideo{
+ Duration: bidExt.Duration,
+ PrimaryCategory: primaryCategory,
+ }, nil
}
diff --git a/adapters/smaato/smaato_test.go b/adapters/smaato/smaato_test.go
index c7c4a65017f..0012bd6158d 100644
--- a/adapters/smaato/smaato_test.go
+++ b/adapters/smaato/smaato_test.go
@@ -1,7 +1,12 @@
package smaato
import (
+ "encoding/json"
+ "github.com/mxmCherry/openrtb/v15/openrtb2"
+ "github.com/prebid/prebid-server/adapters"
+ "github.com/stretchr/testify/assert"
"testing"
+ "time"
"github.com/prebid/prebid-server/adapters/adapterstest"
"github.com/prebid/prebid-server/config"
@@ -16,5 +21,93 @@ func TestJsonSamples(t *testing.T) {
t.Fatalf("Builder returned unexpected error %v", buildErr)
}
+ adapter, _ := bidder.(*adapter)
+ assert.NotNil(t, adapter.clock)
+ adapter.clock = &mockTime{time: time.Date(2021, 6, 25, 10, 00, 0, 0, time.UTC)}
+
adapterstest.RunJSONBidderTest(t, "smaatotest", bidder)
}
+
+func TestVideoWithCategoryAndDuration(t *testing.T) {
+ bidder := &adapter{}
+
+ mockedReq := &openrtb2.BidRequest{
+ Imp: []openrtb2.Imp{{
+ ID: "1_1",
+ Video: &openrtb2.Video{
+ W: 640,
+ H: 360,
+ MIMEs: []string{"video/mp4"},
+ MaxDuration: 60,
+ Protocols: []openrtb2.Protocol{2, 3, 5, 6},
+ },
+ Ext: json.RawMessage(
+ `{
+ "bidder": {
+ "publisherId": "12345"
+ "adbreakId": "4123456"
+ }
+ }`,
+ )},
+ },
+ }
+ mockedExtReq := &adapters.RequestData{}
+ mockedBidResponse := &openrtb2.BidResponse{
+ ID: "some-id",
+ SeatBid: []openrtb2.SeatBid{{
+ Seat: "some-seat",
+ Bid: []openrtb2.Bid{{
+ ID: "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ ImpID: "1_1",
+ Price: 0.01,
+ AdM: "",
+ Cat: []string{"IAB1"},
+ Ext: json.RawMessage(
+ `{
+ "duration": 5
+ }`,
+ ),
+ }},
+ }},
+ }
+ body, _ := json.Marshal(mockedBidResponse)
+ mockedRes := &adapters.ResponseData{
+ StatusCode: 200,
+ Body: body,
+ }
+
+ expectedBidCount := 1
+ expectedBidType := openrtb_ext.BidTypeVideo
+ expectedBidDuration := 5
+ expectedBidCategory := "IAB1"
+ expectedErrorCount := 0
+
+ bidResponse, errors := bidder.MakeBids(mockedReq, mockedExtReq, mockedRes)
+
+ if len(bidResponse.Bids) != expectedBidCount {
+ t.Errorf("should have 1 bid, bids=%v", bidResponse.Bids)
+ }
+ if bidResponse.Bids[0].BidType != expectedBidType {
+ t.Errorf("bid type should be video, bidType=%s", bidResponse.Bids[0].BidType)
+ }
+ if bidResponse.Bids[0].BidVideo.Duration != expectedBidDuration {
+ t.Errorf("video duration should be set")
+ }
+ if bidResponse.Bids[0].BidVideo.PrimaryCategory != expectedBidCategory {
+ t.Errorf("bid category should be set")
+ }
+ if bidResponse.Bids[0].Bid.Cat[0] != expectedBidCategory {
+ t.Errorf("bid category should be set")
+ }
+ if len(errors) != expectedErrorCount {
+ t.Errorf("should not have any errors, errors=%v", errors)
+ }
+}
+
+type mockTime struct {
+ time time.Time
+}
+
+func (mt *mockTime) Now() time.Time {
+ return mt.time
+}
diff --git a/adapters/smaato/smaatotest/exemplary/multiple-impressions.json b/adapters/smaato/smaatotest/exemplary/multiple-impressions.json
new file mode 100644
index 00000000000..e86fea8eb04
--- /dev/null
+++ b/adapters/smaato/smaatotest/exemplary/multiple-impressions.json
@@ -0,0 +1,354 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
+ }
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ },
+ {
+ "id": "postbid_iframe",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/quicktime",
+ "video/3gpp",
+ "video/x-m4v"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "ext": {
+ "rewarded": 0
+ }
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042526",
+ "adspaceId": "130563104"
+ }
+ }
+ }
+ ],
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString",
+ "data": {
+ "keywords": "a,b",
+ "gender": "M",
+ "yob": 1984,
+ "geo": {
+ "country": "ca"
+ }
+ }
+ }
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "tagid": "130563103",
+ "banner": {
+ "h": 50,
+ "w": 320,
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\",\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ },
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "postbid_iframe",
+ "tagid": "130563104",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "ext": {
+ "rewarded": 0
+ },
+ "mimes": [
+ "video/mp4",
+ "video/quicktime",
+ "video/3gpp",
+ "video/x-m4v"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042526"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6524",
+ "crid": "CR69382",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "postbid_iframe",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50,
+ "exp": 300
+ },
+ "type": "banner"
+ }
+ ]
+ },
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6524",
+ "crid": "CR69382",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "postbid_iframe",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "exp": 300
+ },
+ "type": "video"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/exemplary/simple-banner-app.json b/adapters/smaato/smaatotest/exemplary/simple-banner-app.json
index 8194f568c28..2752fa6e6c7 100644
--- a/adapters/smaato/smaatotest/exemplary/simple-banner-app.json
+++ b/adapters/smaato/smaatotest/exemplary/simple-banner-app.json
@@ -160,7 +160,7 @@
"keywords": "keywords"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -215,7 +215,8 @@
"nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
"price": 0.01,
"w": 350,
- "h": 50
+ "h": 50,
+ "exp": 300
},
"type": "banner"
}
diff --git a/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia-app.json b/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia-app.json
index 46722c4ff71..bc3a3c28c87 100644
--- a/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia-app.json
+++ b/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia-app.json
@@ -164,7 +164,7 @@
"keywords": "keywords"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -219,7 +219,8 @@
"nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
"price": 0.01,
"w": 350,
- "h": 50
+ "h": 50,
+ "exp": 300
},
"type": "banner"
}
diff --git a/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia.json b/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia.json
index 1018dbc39ac..7f81d39cd81 100644
--- a/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia.json
+++ b/adapters/smaato/smaatotest/exemplary/simple-banner-richMedia.json
@@ -129,7 +129,7 @@
"keywords": "power tools"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -184,7 +184,8 @@
"nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
"price": 0.01,
"w": 350,
- "h": 50
+ "h": 50,
+ "exp": 300
},
"type": "banner"
}
diff --git a/adapters/smaato/smaatotest/exemplary/simple-banner.json b/adapters/smaato/smaatotest/exemplary/simple-banner.json
index 0ba4050a143..f83e347a684 100644
--- a/adapters/smaato/smaatotest/exemplary/simple-banner.json
+++ b/adapters/smaato/smaatotest/exemplary/simple-banner.json
@@ -125,7 +125,7 @@
"keywords": "power tools"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -180,7 +180,8 @@
"nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
"price": 0.01,
"w": 350,
- "h": 50
+ "h": 50,
+ "exp": 300
},
"type": "banner"
}
diff --git a/adapters/smaato/smaatotest/exemplary/video-app.json b/adapters/smaato/smaatotest/exemplary/video-app.json
index bf939eb078a..317003f52b3 100644
--- a/adapters/smaato/smaatotest/exemplary/video-app.json
+++ b/adapters/smaato/smaatotest/exemplary/video-app.json
@@ -165,7 +165,7 @@
"keywords": "keywords"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -220,7 +220,8 @@
"nurl": "https://nurl",
"price": 0.01,
"w": 1024,
- "h": 768
+ "h": 768,
+ "exp": 300
},
"type": "video"
}
diff --git a/adapters/smaato/smaatotest/exemplary/video.json b/adapters/smaato/smaatotest/exemplary/video.json
index bad3825bb62..85699129180 100644
--- a/adapters/smaato/smaatotest/exemplary/video.json
+++ b/adapters/smaato/smaatotest/exemplary/video.json
@@ -122,7 +122,7 @@
}
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -177,7 +177,8 @@
"nurl": "https://nurl",
"price": 0.01,
"w": 1024,
- "h": 768
+ "h": 768,
+ "exp": 300
},
"type": "video"
}
diff --git a/adapters/smaato/smaatotest/params/banner.json b/adapters/smaato/smaatotest/params/race/banner.json
similarity index 100%
rename from adapters/smaato/smaatotest/params/banner.json
rename to adapters/smaato/smaatotest/params/race/banner.json
diff --git a/adapters/smaato/smaatotest/params/race/video.json b/adapters/smaato/smaatotest/params/race/video.json
new file mode 100644
index 00000000000..a84c44d4d8e
--- /dev/null
+++ b/adapters/smaato/smaatotest/params/race/video.json
@@ -0,0 +1,4 @@
+{
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/adtype-header-response.json b/adapters/smaato/smaatotest/supplemental/adtype-header-response.json
new file mode 100644
index 00000000000..59302b6de59
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/adtype-header-response.json
@@ -0,0 +1,194 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
+ }
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ],
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString",
+ "data": {
+ "keywords": "a,b",
+ "gender": "M",
+ "yob": 1984,
+ "geo": {
+ "country": "ca"
+ }
+ }
+ }
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "tagid": "130563103",
+ "banner": {
+ "h": 50,
+ "w": 320,
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "headers": {
+ "X-Smt-Adtype": ["Img"]
+ },
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\",\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50,
+ "exp": 300
+ },
+ "type": "banner"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-adm-response.json b/adapters/smaato/smaatotest/supplemental/bad-adm-response.json
index db724565d52..885c077e624 100644
--- a/adapters/smaato/smaatotest/supplemental/bad-adm-response.json
+++ b/adapters/smaato/smaatotest/supplemental/bad-adm-response.json
@@ -125,7 +125,7 @@
"keywords": "power tools"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -162,10 +162,9 @@
}
}
],
- "expectedBidResponses": [],
"expectedMakeBidsErrors": [
{
- "value": "Invalid ad markup {\"badmedia\":{\"mediadata\":{\"content\":\"hello
\", \"w\":350,\"h\":50},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "value": "Invalid ad markup {\"badmedia\":{\"mediadata\":{\"content\":\"hello
\", \"w\":350,\"h\":50},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}.",
"comparison": "literal"
}
]
diff --git a/adapters/smaato/smaatotest/supplemental/bad-adtype-header-response.json b/adapters/smaato/smaatotest/supplemental/bad-adtype-header-response.json
new file mode 100644
index 00000000000..cfb23bbef85
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/bad-adtype-header-response.json
@@ -0,0 +1,174 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
+ }
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ],
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString",
+ "data": {
+ "keywords": "a,b",
+ "gender": "M",
+ "yob": 1984,
+ "geo": {
+ "country": "ca"
+ }
+ }
+ }
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "tagid": "130563103",
+ "banner": {
+ "h": 50,
+ "w": 320,
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "headers": {
+ "X-Smt-Adtype": ["something"]
+ },
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\",\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedMakeBidsErrors": [
+ {
+ "value": "Unknown markup type something.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-expires-header-response.json b/adapters/smaato/smaatotest/supplemental/bad-expires-header-response.json
new file mode 100644
index 00000000000..8e41524493d
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/bad-expires-header-response.json
@@ -0,0 +1,194 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
+ }
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ],
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString",
+ "data": {
+ "keywords": "a,b",
+ "gender": "M",
+ "yob": 1984,
+ "geo": {
+ "country": "ca"
+ }
+ }
+ }
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "tagid": "130563103",
+ "banner": {
+ "h": 50,
+ "w": 320,
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "headers": {
+ "X-Smt-Expires": ["something"]
+ },
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\",\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50,
+ "exp": 300
+ },
+ "type": "banner"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-ext-req.json b/adapters/smaato/smaatotest/supplemental/bad-ext-req.json
deleted file mode 100644
index 0c970fc5bad..00000000000
--- a/adapters/smaato/smaatotest/supplemental/bad-ext-req.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "mockBidRequest": {
- "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
- "site": {
- "page": "prebid.org",
- "publisher": {
- "id": "1"
- }
- },
- "imp": [
- {
- "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
- "banner": {
- "format": [
- {
- "w": 320,
- "h": 50
- },
- {
- "w": 320,
- "h": 250
- }
- ]
- },
- "ext": {
- }
- }
- ],
- "device": {
- "ua": "test-user-agent",
- "ip": "123.123.123.123",
- "language": "en",
- "dnt": 0
- },
- "user": {
- "ext": {
- "consent": "gdprConsentString"
- }
- },
- "regs": {
- "coppa": 1,
- "ext": {
- "gdpr": 1,
- "us_privacy": "uspConsentString"
- }
- }
- },
- "expectedMakeRequestsErrors": [
- {
- "value": "Key path not found",
- "comparison": "literal"
- }
- ]
-}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-imp-banner-format-req.json b/adapters/smaato/smaatotest/supplemental/bad-imp-banner-format-req.json
deleted file mode 100644
index 768b4ef9d2c..00000000000
--- a/adapters/smaato/smaatotest/supplemental/bad-imp-banner-format-req.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "mockBidRequest": {
- "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
- "imp": [
- {
- "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
- "banner": {
- "format": []
- },
- "ext": {
- "bidder": {
- "publisherId": "1100042525",
- "adspaceId": "130563103"
- }
- }
- }
- ],
- "site": {
- "page": "prebid.org",
- "publisher": {
- "id": "1"
- }
- }
- },
- "httpCalls": [
- {
- "expectedRequest": {
- "headers": {
- "Content-Type": ["application/json;charset=utf-8"],
- "Accept": ["application/json"]
- },
- "uri": "https://prebid/bidder",
- "body": {
- "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
- "imp": [],
- "site": {
- "page": "prebid.org",
- "publisher": {
- "id": "1100042525"
- }
- },
- "ext": {
- "client": "prebid_server_0.2"
- }
- }
- }
- }
- ],
- "expectedMakeRequestsErrors": [
- {
- "value": "No sizes provided for Banner []",
- "comparison": "literal"
- }
- ],
- "expectedMakeBidsErrors": [
- {
- "value": "unexpected status code: 0. Run with request.debug = 1 for more info",
- "comparison": "literal"
- }
- ]
-}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-imp-banner-format-request.json b/adapters/smaato/smaatotest/supplemental/bad-imp-banner-format-request.json
new file mode 100644
index 00000000000..0c3661bdf69
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/bad-imp-banner-format-request.json
@@ -0,0 +1,28 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder"
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": []
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ]
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "No sizes provided for Banner.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-media-type-request.json b/adapters/smaato/smaatotest/supplemental/bad-media-type-request.json
new file mode 100644
index 00000000000..2b59495c829
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/bad-media-type-request.json
@@ -0,0 +1,27 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "page": "prebid.org"
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "native": {
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ]
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Invalid MediaType. Smaato only supports Banner and Video.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-site-ext-request.json b/adapters/smaato/smaatotest/supplemental/bad-site-ext-request.json
new file mode 100644
index 00000000000..0df53e6c0bc
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/bad-site-ext-request.json
@@ -0,0 +1,34 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "page": "prebid.org",
+ "ext": ""
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ]
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Invalid site.ext.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/status-code-400.json b/adapters/smaato/smaatotest/supplemental/bad-status-code-response.json
similarity index 97%
rename from adapters/smaato/smaatotest/supplemental/status-code-400.json
rename to adapters/smaato/smaatotest/supplemental/bad-status-code-response.json
index fc84c93e269..a087594325e 100644
--- a/adapters/smaato/smaatotest/supplemental/status-code-400.json
+++ b/adapters/smaato/smaatotest/supplemental/bad-status-code-response.json
@@ -125,7 +125,7 @@
"keywords": "power tools"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -137,7 +137,7 @@
"expectedBidResponses": [],
"expectedMakeBidsErrors": [
{
- "value": "Unexpected status code: 400. Run with request.debug = 1 for more info",
+ "value": "Unexpected status code: 400. Run with request.debug = 1 for more info.",
"comparison": "literal"
}
]
diff --git a/adapters/smaato/smaatotest/supplemental/bad-user-ext-req.json b/adapters/smaato/smaatotest/supplemental/bad-user-ext-data-request.json
similarity index 81%
rename from adapters/smaato/smaatotest/supplemental/bad-user-ext-req.json
rename to adapters/smaato/smaatotest/supplemental/bad-user-ext-data-request.json
index 7f05b2dff14..10f5ad474c6 100644
--- a/adapters/smaato/smaatotest/supplemental/bad-user-ext-req.json
+++ b/adapters/smaato/smaatotest/supplemental/bad-user-ext-data-request.json
@@ -2,10 +2,7 @@
"mockBidRequest": {
"id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
"site": {
- "page": "prebid.org",
- "publisher": {
- "id": "1"
- }
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder"
},
"imp": [
{
@@ -37,8 +34,11 @@
"dnt": 0
},
"user": {
- "gender": "M",
- "ext": 99
+ "ext": {
+ "data": {
+ "yob": ""
+ }
+ }
},
"regs": {
"coppa": 1,
@@ -50,7 +50,7 @@
},
"expectedMakeRequestsErrors": [
{
- "value": "json: cannot unmarshal number into Go value of type map[string]json.RawMessage",
+ "value": "Invalid user.ext.data.",
"comparison": "literal"
}
]
diff --git a/adapters/smaato/smaatotest/supplemental/bad-user-ext-request.json b/adapters/smaato/smaatotest/supplemental/bad-user-ext-request.json
new file mode 100644
index 00000000000..26df372e14f
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/bad-user-ext-request.json
@@ -0,0 +1,36 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "page": "prebid.org"
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ],
+ "user": {
+ "ext": 99
+ }
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Invalid user.ext.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/banner-w-and-h.json b/adapters/smaato/smaatotest/supplemental/banner-w-and-h.json
new file mode 100644
index 00000000000..9e57c380d27
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/banner-w-and-h.json
@@ -0,0 +1,173 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
+ }
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "w": 320,
+ "h": 50
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ],
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString",
+ "data": {
+ "keywords": "a,b",
+ "gender": "M",
+ "yob": 1984,
+ "geo": {
+ "country": "ca"
+ }
+ }
+ }
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "tagid": "130563103",
+ "banner": {
+ "h": 50,
+ "w": 320
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\",\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 320,
+ "h": 50
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 320,
+ "h": 50,
+ "exp": 300
+ },
+ "type": "banner"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/expires-header-response.json b/adapters/smaato/smaatotest/supplemental/expires-header-response.json
new file mode 100644
index 00000000000..90a78e626cf
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/expires-header-response.json
@@ -0,0 +1,194 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
+ }
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ],
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString",
+ "data": {
+ "keywords": "a,b",
+ "gender": "M",
+ "yob": 1984,
+ "geo": {
+ "country": "ca"
+ }
+ }
+ }
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "tagid": "130563103",
+ "banner": {
+ "h": 50,
+ "w": 320,
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "headers": {
+ "X-Smt-Expires": ["1624618800000"]
+ },
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\",\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50,
+ "exp": 3600
+ },
+ "type": "banner"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/bad-user-ext-data-req.json b/adapters/smaato/smaatotest/supplemental/no-adspace-id-request.json
similarity index 65%
rename from adapters/smaato/smaatotest/supplemental/bad-user-ext-data-req.json
rename to adapters/smaato/smaatotest/supplemental/no-adspace-id-request.json
index 9e65fce1c3e..88b0a4080e6 100644
--- a/adapters/smaato/smaatotest/supplemental/bad-user-ext-data-req.json
+++ b/adapters/smaato/smaatotest/supplemental/no-adspace-id-request.json
@@ -2,9 +2,18 @@
"mockBidRequest": {
"id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
"site": {
- "page": "prebid.org",
"publisher": {
- "id": "1"
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
}
},
"imp": [
@@ -24,8 +33,7 @@
},
"ext": {
"bidder": {
- "publisherId": "1100042525",
- "adspaceId": "130563103"
+ "publisherId": "1100042525"
}
}
}
@@ -37,17 +45,16 @@
"dnt": 0
},
"user": {
- "gender": "M",
"ext": {
+ "consent": "gdprConsentString",
"data": {
- "keywords":"a,b",
+ "keywords": "a,b",
"gender": "M",
- "yob": "",
+ "yob": 1984,
"geo": {
"country": "ca"
}
- },
- "consent":"yes"
+ }
}
},
"regs": {
@@ -60,7 +67,7 @@
},
"expectedMakeRequestsErrors": [
{
- "value": "json: cannot unmarshal string into Go struct field userExtData.data.yob of type int64",
+ "value": "Missing adspaceId parameter.",
"comparison": "literal"
}
]
diff --git a/adapters/smaato/smaatotest/supplemental/no-app-site-request.json b/adapters/smaato/smaatotest/supplemental/no-app-site-request.json
new file mode 100644
index 00000000000..04a73b4f40d
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/no-app-site-request.json
@@ -0,0 +1,30 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ]
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Missing Site/App.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/status-code-204.json b/adapters/smaato/smaatotest/supplemental/no-bid-response.json
similarity index 96%
rename from adapters/smaato/smaatotest/supplemental/status-code-204.json
rename to adapters/smaato/smaatotest/supplemental/no-bid-response.json
index b409597f986..c8821d2d944 100644
--- a/adapters/smaato/smaatotest/supplemental/status-code-204.json
+++ b/adapters/smaato/smaatotest/supplemental/no-bid-response.json
@@ -125,7 +125,7 @@
"keywords": "power tools"
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -133,7 +133,5 @@
"status": 204
}
}
- ],
- "expectedBidResponses": [],
- "expectedMakeBidsErrors": []
+ ]
}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/no-consent-info.json b/adapters/smaato/smaatotest/supplemental/no-consent-info-request.json
similarity index 98%
rename from adapters/smaato/smaatotest/supplemental/no-consent-info.json
rename to adapters/smaato/smaatotest/supplemental/no-consent-info-request.json
index b9a4294b00b..72f8a2e3b9d 100644
--- a/adapters/smaato/smaatotest/supplemental/no-consent-info.json
+++ b/adapters/smaato/smaatotest/supplemental/no-consent-info-request.json
@@ -72,7 +72,7 @@
}
},
"ext": {
- "client": "prebid_server_0.2"
+ "client": "prebid_server_0.3"
}
}
},
@@ -127,7 +127,8 @@
"nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
"price": 0.01,
"w": 350,
- "h": 50
+ "h": 50,
+ "exp": 300
},
"type": "banner"
}
diff --git a/adapters/smaato/smaatotest/supplemental/no-imp-req.json b/adapters/smaato/smaatotest/supplemental/no-imp-request.json
similarity index 59%
rename from adapters/smaato/smaatotest/supplemental/no-imp-req.json
rename to adapters/smaato/smaatotest/supplemental/no-imp-request.json
index bfaf51e6ea8..eab4f2a0697 100644
--- a/adapters/smaato/smaatotest/supplemental/no-imp-req.json
+++ b/adapters/smaato/smaatotest/supplemental/no-imp-request.json
@@ -2,15 +2,12 @@
"mockBidRequest": {
"id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
"site": {
- "page": "prebid.org",
- "publisher": {
- "id": "1"
- }
+ "page": "prebid.org"
}
},
"expectedMakeRequestsErrors": [
{
- "value": "no impressions in bid request",
+ "value": "No impressions in bid request.",
"comparison": "literal"
}
]
diff --git a/adapters/smaato/smaatotest/supplemental/no-publisher-id-request.json b/adapters/smaato/smaatotest/supplemental/no-publisher-id-request.json
new file mode 100644
index 00000000000..60a0af594a8
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/no-publisher-id-request.json
@@ -0,0 +1,29 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder"
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ }
+ ]
+ },
+ "ext": {
+ }
+ }
+ ]
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Missing publisherId parameter.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/supplemental/outdated-expires-header-response.json b/adapters/smaato/smaatotest/supplemental/outdated-expires-header-response.json
new file mode 100644
index 00000000000..c65e0824338
--- /dev/null
+++ b/adapters/smaato/smaatotest/supplemental/outdated-expires-header-response.json
@@ -0,0 +1,193 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "ext": {
+ "data": {
+ "keywords": "power tools",
+ "search": "drill",
+ "content": {
+ "userrating": 4
+ }
+ }
+ }
+ },
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adspaceId": "130563103"
+ }
+ }
+ }
+ ],
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString",
+ "data": {
+ "keywords": "a,b",
+ "gender": "M",
+ "yob": 1984,
+ "geo": {
+ "country": "ca"
+ }
+ }
+ }
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": ["application/json;charset=utf-8"],
+ "Accept": ["application/json"]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "imp": [
+ {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "tagid": "130563103",
+ "banner": {
+ "h": 50,
+ "w": 320,
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ "consent": "gdprConsentString"
+ },
+ "gender": "M",
+ "keywords": "a,b",
+ "yob": 1984
+ },
+ "device": {
+ "ua": "test-user-agent",
+ "ip": "123.123.123.123",
+ "language": "en",
+ "dnt": 0
+ },
+ "regs": {
+ "coppa": 1,
+ "ext": {
+ "gdpr": 1,
+ "us_privacy": "uspConsentString"
+ }
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "page": "http://localhost:3000/server.html?pbjs_debug=true&endpoint=http://localhost:3000/bidder",
+ "keywords": "power tools"
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "headers": {
+ "X-Smt-Expires": ["1524618800000"]
+ },
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "{\"image\":{\"img\":{\"url\":\"//prebid-test.smaatolabs.net/img/320x50.jpg\",\"w\":350,\"h\":50,\"ctaurl\":\"//prebid-test.smaatolabs.net/track/ctaurl/1\"},\"impressiontrackers\":[\"//prebid-test.smaatolabs.net/track/imp/1\",\"//prebid-test.smaatolabs.net/track/imp/2\"],\"clicktrackers\":[\"//prebid-test.smaatolabs.net/track/click/1\",\"//prebid-test.smaatolabs.net/track/click/2\"]}}",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "iurl": "https://bidstalkcreatives.s3.amazonaws.com/1x1.png",
+ "nurl": "https://ets-eu-west-1.track.smaato.net/v1/view?sessionId=e4e17adb-9599-42b1-bb5f-a1f1b3bee572&adSourceId=6906aae8-7f74-4edd-9a4f-f49379a3cadd&originalRequestTime=1552310449698&expires=1552311350698&winurl=ama8JbpJVpFWxvEja5viE3cLXFu58qRI8dGUh23xtsOn3N2-5UU0IwkgNEmR82pI37fcMXejL5IWTNAoW6Cnsjf-Dxl_vx2dUqMrVEevX-Vdx2VVnf-D5f73gZhvi4t36iPL8Dsw4aACekoLvVOV7-eXDjz7GHy60QFqcwKf5g2AlKPOInyZ6vJg_fn4qA9argvCRgwVybXE9Ndm2W0v8La4uFYWpJBOUveDDUrSQfzal7RsYvLb_OyaMlPHdrd_bwA9qqZWuyJXd-L9lxr7RQ%3D%3D%7CMw3kt91KJR0Uy5L-oNztAg%3D%3D&dpid=4XVofb_lH-__hr2JNGhKfg%3D%3D%7Cr9ciCU1cx3zmHXihItKO0g%3D%3D",
+ "price": 0.01,
+ "w": 350,
+ "h": 50
+ },
+ "type": "banner"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/video/multiple-adpods.json b/adapters/smaato/smaatotest/video/multiple-adpods.json
new file mode 100644
index 00000000000..c909dc15f25
--- /dev/null
+++ b/adapters/smaato/smaatotest/video/multiple-adpods.json
@@ -0,0 +1,555 @@
+{
+ "mockBidRequest": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ },
+ {
+ "id": "2_1",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ },
+ {
+ "id": "2_2",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ }
+ ],
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "user": {
+ "ext": {
+ "data": {}
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": [
+ "application/json;charset=utf-8"
+ ],
+ "Accept": [
+ "application/json"
+ ]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 1,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 2,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ }
+ },
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": {
+ "duration": 30
+ }
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ },
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": [
+ "application/json;charset=utf-8"
+ ],
+ "Accept": [
+ "application/json"
+ ]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "2_1",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 1,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ },
+ {
+ "id": "2_2",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 2,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "2_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ }
+ },
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "2_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": {
+ "duration": 30
+ }
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ },
+ "exp": 300
+ },
+ "type": "video"
+
+ },
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": {
+ "duration": 30
+ },
+ "exp": 300
+ },
+ "type": "video"
+ }
+ ]
+ },
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "2_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ },
+ "exp": 300
+ },
+ "type": "video"
+ },
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "2_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": {
+ "duration": 30
+ },
+ "exp": 300
+ },
+ "type": "video"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/video/single-adpod.json b/adapters/smaato/smaatotest/video/single-adpod.json
new file mode 100644
index 00000000000..b5bc09d495c
--- /dev/null
+++ b/adapters/smaato/smaatotest/video/single-adpod.json
@@ -0,0 +1,293 @@
+{
+ "mockBidRequest": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ }
+ ],
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "user": {
+ "ext": {
+ "data": {}
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": [
+ "application/json;charset=utf-8"
+ ],
+ "Accept": [
+ "application/json"
+ ]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 1,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 2,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ }
+ },
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": {
+ "duration": 30
+ }
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ },
+ "exp": 300
+ },
+ "type": "video"
+ },
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": {
+ "duration": 30
+ },
+ "exp": 300
+ },
+ "type": "video"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/videosupplemental/bad-adbreak-id-request.json b/adapters/smaato/smaatotest/videosupplemental/bad-adbreak-id-request.json
new file mode 100644
index 00000000000..308648d3f64
--- /dev/null
+++ b/adapters/smaato/smaatotest/videosupplemental/bad-adbreak-id-request.json
@@ -0,0 +1,90 @@
+{
+ "mockBidRequest": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1234567"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1234567"
+ }
+ }
+ }
+ ],
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "user": {
+ "ext": {
+ "data": {}
+ }
+ }
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Missing adbreakId parameter.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/videosupplemental/bad-adm-response.json b/adapters/smaato/smaatotest/videosupplemental/bad-adm-response.json
new file mode 100644
index 00000000000..b13906ce066
--- /dev/null
+++ b/adapters/smaato/smaatotest/videosupplemental/bad-adm-response.json
@@ -0,0 +1,276 @@
+{
+ "mockBidRequest": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ }
+ ],
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "user": {
+ "ext": {
+ "data": {}
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": [
+ "application/json;charset=utf-8"
+ ],
+ "Accept": [
+ "application/json"
+ ]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 1,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 2,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ }
+ },
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": {
+ "duration": 30
+ }
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedMakeBidsErrors": [
+ {
+ "value": "Invalid ad markup .",
+ "comparison": "literal"
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ },
+ "exp": 300
+ },
+ "type": "video"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/videosupplemental/bad-bid-ext-response.json b/adapters/smaato/smaatotest/videosupplemental/bad-bid-ext-response.json
new file mode 100644
index 00000000000..2e0556ff15e
--- /dev/null
+++ b/adapters/smaato/smaatotest/videosupplemental/bad-bid-ext-response.json
@@ -0,0 +1,274 @@
+{
+ "mockBidRequest": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ }
+ ],
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "user": {
+ "ext": {
+ "data": {}
+ }
+ }
+ },
+ "httpCalls": [
+ {
+ "expectedRequest": {
+ "headers": {
+ "Content-Type": [
+ "application/json;charset=utf-8"
+ ],
+ "Accept": [
+ "application/json"
+ ]
+ },
+ "uri": "https://prebid/bidder",
+ "body": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 1,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "tagid": "400000001",
+ "video": {
+ "w": 1024,
+ "h": 768,
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "startdelay": 0,
+ "linearity": 1,
+ "maxduration": 30,
+ "skip": 1,
+ "protocols": [
+ 7
+ ],
+ "skipmin": 5,
+ "api": [
+ 7
+ ],
+ "sequence": 2,
+ "ext": {
+ "context": "adpod"
+ }
+ }
+ }
+ ],
+ "user": {
+ "ext": {
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "ext": {
+ "client": "prebid_server_0.3"
+ }
+ }
+ },
+ "mockResponse": {
+ "status": 200,
+ "body": {
+ "id": "5ebea288-f13a-4754-be6d-4ade66c68877",
+ "seatbid": [
+ {
+ "seat": "CM6523",
+ "bid": [
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ }
+ },
+ {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "bidderName": "smaato",
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_2",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB2"],
+ "ext": ""
+ }
+ ]
+ }
+ ],
+ "bidid": "04db8629-179d-4bcd-acce-e54722969006",
+ "cur": "USD"
+ }
+ }
+ }
+ ],
+ "expectedMakeBidsErrors": [
+ {
+ "value": "Invalid bid.ext.",
+ "comparison": "literal"
+ }
+ ],
+ "expectedBidResponses": [
+ {
+ "currency": "USD",
+ "bids": [
+ {
+ "bid": {
+ "adm": "",
+ "adomain": [
+ "smaato.com"
+ ],
+ "cid": "CM6523",
+ "crid": "CR69381",
+ "id": "6906aae8-7f74-4edd-9a4f-f49379a3cadd",
+ "impid": "1_1",
+ "iurl": "https://iurl",
+ "nurl": "https://nurl",
+ "price": 0.01,
+ "w": 1024,
+ "h": 768,
+ "cat": ["IAB1"],
+ "ext": {
+ "duration": 5
+ },
+ "exp": 300
+ },
+ "type": "video"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/videosupplemental/bad-media-type-request.json b/adapters/smaato/smaatotest/videosupplemental/bad-media-type-request.json
new file mode 100644
index 00000000000..1c345de029d
--- /dev/null
+++ b/adapters/smaato/smaatotest/videosupplemental/bad-media-type-request.json
@@ -0,0 +1,37 @@
+{
+ "mockBidRequest": {
+ "id": "1C86242D-9535-47D6-9576-7B1FE87F282C",
+ "site": {
+ "page": "prebid.org"
+ },
+ "imp": [
+ {
+ "id": "1_1",
+ "banner": {
+ "format": [
+ {
+ "w": 320,
+ "h": 50
+ },
+ {
+ "w": 320,
+ "h": 250
+ }
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "publisherId": "1100042525",
+ "adbreakId": "400000001"
+ }
+ }
+ }
+ ]
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Invalid MediaType. Smaato only supports Video for AdPod.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/adapters/smaato/smaatotest/videosupplemental/bad-publisher-id-request.json b/adapters/smaato/smaatotest/videosupplemental/bad-publisher-id-request.json
new file mode 100644
index 00000000000..1615b670e9b
--- /dev/null
+++ b/adapters/smaato/smaatotest/videosupplemental/bad-publisher-id-request.json
@@ -0,0 +1,90 @@
+{
+ "mockBidRequest": {
+ "id": "447a0a1d-389d-4730-a418-3777e95de7bd",
+ "imp": [
+ {
+ "id": "1_1",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "adbreakId": "400000001"
+ }
+ }
+ },
+ {
+ "id": "1_2",
+ "video": {
+ "mimes": [
+ "video/mp4",
+ "video/3gpp"
+ ],
+ "minduration": 5,
+ "maxduration": 30,
+ "protocols": [
+ 7
+ ],
+ "w": 1024,
+ "h": 768,
+ "startdelay": 0,
+ "linearity": 1,
+ "skip": 1,
+ "skipmin": 5,
+ "api": [
+ 7
+ ]
+ },
+ "ext": {
+ "bidder": {
+ "adbreakId": "400000001"
+ }
+ }
+ }
+ ],
+ "site": {
+ "publisher": {
+ "id": "1100042525"
+ },
+ "content": {
+ "title": "a-title",
+ "season": "a-season",
+ "series": "a-series",
+ "episode": 1,
+ "len": 900,
+ "livestream": 1
+ }
+ },
+ "device": {
+ "ua": "test-user-agent"
+ },
+ "user": {
+ "ext": {
+ "data": {}
+ }
+ }
+ },
+ "expectedMakeRequestsErrors": [
+ {
+ "value": "Missing publisherId parameter.",
+ "comparison": "literal"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/openrtb_ext/imp_smaato.go b/openrtb_ext/imp_smaato.go
index 10de97fb017..14dcb73bdf3 100644
--- a/openrtb_ext/imp_smaato.go
+++ b/openrtb_ext/imp_smaato.go
@@ -1,9 +1,12 @@
package openrtb_ext
// ExtImpSmaato defines the contract for bidrequest.imp[i].ext.smaato
-// PublisherId and AdSpaceId are mandatory parameters, others are optional parameters
+// PublisherId and AdSpaceId are mandatory parameters for non adpod (long-form video) requests, others are optional parameters
+// PublisherId and AdBreakId are mandatory parameters for adpod (long-form video) requests, others are optional parameters
// AdSpaceId is identifier for specific ad placement or ad tag
+// AdBreakId is identifier for specific ad placement or ad tag
type ExtImpSmaato struct {
PublisherID string `json:"publisherId"`
AdSpaceID string `json:"adspaceId"`
+ AdBreakID string `json:"adbreakId"`
}
diff --git a/static/bidder-params/smaato.json b/static/bidder-params/smaato.json
index aa91c4bacc5..e4584b86860 100644
--- a/static/bidder-params/smaato.json
+++ b/static/bidder-params/smaato.json
@@ -11,7 +11,25 @@
"adspaceId": {
"type": "string",
"description": "Identifier for specific ad placement is SOMA `adspaceId`"
+ },
+ "adbreakId": {
+ "type": "string",
+ "description": "Identifier for specific adpod placement is SOMA `adbreakId`"
}
},
- "required": ["publisherId","adspaceId"]
+ "required": [
+ "publisherId"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "adspaceId"
+ ]
+ },
+ {
+ "required": [
+ "adbreakId"
+ ]
+ }
+ ]
}
\ No newline at end of file