Skip to content

Commit

Permalink
Added Video(VAST) Support (Rebased from master) (#1976)
Browse files Browse the repository at this point in the history
  • Loading branch information
vrtcal-dev committed Aug 26, 2021
1 parent 498d2cf commit 9387866
Show file tree
Hide file tree
Showing 4 changed files with 219 additions and 6 deletions.
39 changes: 34 additions & 5 deletions adapters/vrtcal/vrtcal.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,21 @@ func (a *VrtcalAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externalR

bidResponse := adapters.NewBidderResponseWithBidsCapacity(1)

var errs []error
for _, sb := range bidResp.SeatBid {
for i := range sb.Bid {
bidResponse.Bids = append(bidResponse.Bids, &adapters.TypedBid{
Bid: &sb.Bid[i],
BidType: "banner",
})
bidType, err := getReturnTypeForImp(sb.Bid[i].ImpID, internalRequest.Imp)
if err == nil {
bidResponse.Bids = append(bidResponse.Bids, &adapters.TypedBid{
Bid: &sb.Bid[i],
BidType: bidType,
})
} else {
errs = append(errs, err)
}
}
}
return bidResponse, nil
return bidResponse, errs

}

Expand All @@ -87,3 +93,26 @@ func Builder(bidderName openrtb_ext.BidderName, config config.Adapter) (adapters
}
return bidder, nil
}

func getReturnTypeForImp(impID string, imps []openrtb2.Imp) (openrtb_ext.BidType, error) {
for _, imp := range imps {
if imp.ID == impID {
if imp.Banner != nil {
return openrtb_ext.BidTypeBanner, nil
}

if imp.Video != nil {
return openrtb_ext.BidTypeVideo, nil
}

return "", &errortypes.BadServerResponse{
Message: fmt.Sprintf("Unsupported return type for ID: \"%s\"", impID),
}
}
}

//Failsafe default in case impression ID is not found
return "", &errortypes.BadServerResponse{
Message: fmt.Sprintf("Failed to find impression for ID: \"%s\"", impID),
}
}
96 changes: 96 additions & 0 deletions adapters/vrtcal/vrtcaltest/exemplary/simple-video.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{
"mockBidRequest": {
"id": "test-request-id",
"imp": [
{
"id": "test-imp-id",
"video": {
"mimes": ["video/mp4"],
"protocols": [2, 5],
"w": 300,
"h": 250
},
"ext": {
"bidder": {
"Just_an_unused_vrtcal_param": "unused_data_for_this"
}
}
}
],
"app": {
"id": "fake-app-id"
}
},
"httpCalls": [
{
"expectedRequest": {
"uri": "http://rtb.vrtcal.com/bidder_prebid.vap?ssp=1804",
"body": {
"id": "test-request-id",
"imp": [
{
"id": "test-imp-id",
"video": {
"mimes": ["video/mp4"],
"protocols": [2, 5],
"w": 300,
"h": 250
},

"ext": {
"bidder": {
"Just_an_unused_vrtcal_param": "unused_data_for_this"
}
}
}
],
"app": {
"id": "fake-app-id"
}
}
},
"mockResponse": {
"status": 200,
"body": {
"id": "test-request-id",
"seatbid": [
{
"seat": "vrtcal",
"bid": [
{
"id": "8ee514f1-b2b8-4abb-89fd-084437d1e800",
"impid": "test-imp-id",
"price": 0.500000,
"adm": "some-test-video-ad",
"crid": "crid_10",
"h": 250,
"w": 300
}
]
}
],
"cur": "USD"
}
}
}
],
"expectedBidResponses": [
{
"currency": "USD",
"bids": [
{
"bid": {
"id": "8ee514f1-b2b8-4abb-89fd-084437d1e800",
"impid": "test-imp-id",
"price": 0.5,
"adm": "some-test-video-ad",
"crid": "crid_10",
"w": 300,
"h": 250
},
"type": "video"
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"mockBidRequest": {
"id": "test-request-id",
"imp": [
{
"id": "test-imp-id",
"banner": {
"format": [
{
"w": 300,
"h": 250
}
]
},
"ext": {
"bidder": {
"Just_an_unused_vrtcal_param": "unused_data_for_this"
}
}
}
],
"app": {
"id": "fake-app-id"
}
},
"httpCalls": [
{
"expectedRequest": {
"uri": "http://rtb.vrtcal.com/bidder_prebid.vap?ssp=1804",
"body": {
"id": "test-request-id",
"imp": [
{
"id": "test-imp-id",
"banner": {
"format": [
{
"w": 300,
"h": 250
}
]
},

"ext": {
"bidder": {
"Just_an_unused_vrtcal_param": "unused_data_for_this"
}
}
}
],
"app": {
"id": "fake-app-id"
}
}
},
"mockResponse": {
"status": 200,
"body": {
"id": "test-request-id",
"seatbid": [
{
"seat": "vrtcal",
"bid": [
{
"id": "8ee514f1-b2b8-4abb-89fd-084437d1e800",
"impid": "WRONG-IMPRESSION_ID",
"price": 0.500000,
"adm": "some-test-ad",
"crid": "crid_10",
"h": 250,
"w": 300
}
]
}
],
"cur": "USD"
}
}
}
],
"expectedMakeBidsErrors": [
{
"value": "Failed to find impression for ID: \"WRONG-IMPRESSION_ID\"",
"comparison": "literal"
}
]
}
3 changes: 2 additions & 1 deletion static/bidder-info/vrtcal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ capabilities:
app:
mediaTypes:
- banner
- video
userSync:
# vrtcal supports user syncing, but requires configuration by the host. contact this
# bidder directly at the email address in this file to ask about enabling user sync.
supports:
- redirect
- redirect

0 comments on commit 9387866

Please sign in to comment.