Skip to content

Commit

Permalink
Select Netbid or GrossBid from the adserver depending on what you spe…
Browse files Browse the repository at this point in the history
…cify in your bidderExt
  • Loading branch information
mikael-lundin committed Sep 7, 2023
1 parent ea079a9 commit d0f130d
Show file tree
Hide file tree
Showing 4 changed files with 235 additions and 6 deletions.
34 changes: 28 additions & 6 deletions adapters/adnuntius/adnuntius.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,14 @@ type Ad struct {
Amount float64
Currency string
}
NetBid struct {
Amount float64
Currency string
}
GrossBid struct {
Amount float64
Currency string
}
DealID string `json:"dealId,omitempty"`
AdId string
CreativeWidth string
Expand Down Expand Up @@ -328,7 +336,7 @@ func getGDPR(request *openrtb2.BidRequest) (string, string, error) {
return gdpr, consent, nil
}

func generateAdResponse(ad Ad, impId string, html string, request *openrtb2.BidRequest) (*openrtb2.Bid, []error) {
func generateAdResponse(ad Ad, imp openrtb2.Imp, html string, request *openrtb2.BidRequest) (*openrtb2.Bid, []error) {

creativeWidth, widthErr := strconv.ParseInt(ad.CreativeWidth, 10, 64)
if widthErr != nil {
Expand All @@ -344,23 +352,37 @@ func generateAdResponse(ad Ad, impId string, html string, request *openrtb2.BidR
}}
}

price := ad.Bid.Amount
priceType, _, _, _ := jsonparser.Get(imp.Ext, "bidder", "priceType")

if string(priceType) != "" {
if strings.ToLower(string(priceType)) == "net" {
price = ad.NetBid.Amount
}
if strings.ToLower(string(priceType)) == "gross" {
price = ad.GrossBid.Amount
}
}

adDomain := []string{}
for _, url := range ad.DestinationUrls {
domainArray := strings.Split(url, "/")
domain := strings.Replace(domainArray[2], "www.", "", -1)
adDomain = append(adDomain, domain)
}

// strings.ToLower(str)

bid := openrtb2.Bid{
ID: ad.AdId,
ImpID: impId,
ImpID: imp.ID,
W: creativeWidth,
H: creativeHeight,
AdID: ad.AdId,
DealID: ad.DealID,
CID: ad.LineItemId,
CrID: ad.CreativeId,
Price: ad.Bid.Amount * 1000,
Price: price * 1000,
AdM: html,
ADomain: adDomain,
}
Expand All @@ -377,7 +399,7 @@ func generateBidResponse(adnResponse *AdnResponse, request *openrtb2.BidRequest)
adunitMap[adnRespAdunit.TargetId] = adnRespAdunit
}

for i, imp := range request.Imp {
for _, imp := range request.Imp {

auId, _, _, err := jsonparser.Get(imp.Ext, "bidder", "auId")
if err != nil {
Expand All @@ -394,7 +416,7 @@ func generateBidResponse(adnResponse *AdnResponse, request *openrtb2.BidRequest)
ad := adunit.Ads[0]
currency = ad.Bid.Currency

adBid, err := generateAdResponse(ad, request.Imp[i].ID, adunit.Html, request)
adBid, err := generateAdResponse(ad, imp, adunit.Html, request)
if err != nil {
return nil, []error{&errortypes.BadInput{
Message: fmt.Sprintf("Error at ad generation"),
Expand All @@ -407,7 +429,7 @@ func generateBidResponse(adnResponse *AdnResponse, request *openrtb2.BidRequest)
})

for _, deal := range adunit.Deals {
dealBid, err := generateAdResponse(deal, request.Imp[i].ID, deal.Html, request)
dealBid, err := generateAdResponse(deal, imp, deal.Html, request)
if err != nil {
return nil, []error{&errortypes.BadInput{
Message: fmt.Sprintf("Error at ad generation"),
Expand Down
103 changes: 103 additions & 0 deletions adapters/adnuntius/adnuntiustest/supplemental/check-gross-bids.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
{
"mockBidRequest": {
"id": "test-request-id",
"user": {
"id": "1kjh3429kjh295jkl"
},
"imp": [
{
"id": "test-imp-id",
"banner": {
"format": [
{
"w": 300,
"h": 250
},
{
"w": 300,
"h": 600
}
]
},
"ext": {
"bidder": {
"auId": "123",
"priceType": "gross"
}
}
}
]
},
"httpCalls": [
{
"expectedRequest": {
"uri": "http://whatever.url?format=json&tzo=0",
"body": {
"adUnits": [
{
"auId": "123",
"targetId": "123-test-imp-id",
"dimensions": [[300,250],[300,600]]
}
],
"metaData": {
"usi": "1kjh3429kjh295jkl"
},
"context": "unknown"
}
},
"mockResponse": {
"status": 200,
"body": {
"adUnits": [
{
"auId": "0000000000000123",
"targetId": "123-test-imp-id",
"html": "<ADCODE>",
"responseId": "adn-rsp-900646517",
"ads": [
{
"destinationUrls": {
"url": "http://www.google.com"
},
"bid": { "amount": 20.0, "currency": "NOK" },
"grossBid": {"amount": 0.1, "currency": "NOK"},
"netBid": {"amount": 0.075, "currency": "NOK"},
"adId": "adn-id-1559784094",
"creativeWidth": "980",
"creativeHeight": "240",
"creativeId": "jn9hpzvlsf8cpdmm",
"lineItemId": "q7y9qm5b0xt9htrv"
}
]
}
]
}
}
}
],
"expectedBidResponses": [
{
"bids": [
{
"bid": {
"id": "adn-id-1559784094",
"impid": "test-imp-id",
"price": 100,
"adm": "<ADCODE>",
"adid": "adn-id-1559784094",
"adomain": [
"google.com"
],
"cid": "q7y9qm5b0xt9htrv",
"crid": "jn9hpzvlsf8cpdmm",
"w": 980,
"h": 240
},
"type": "banner"
}
],
"currency": "NOK"
}
]
}
103 changes: 103 additions & 0 deletions adapters/adnuntius/adnuntiustest/supplemental/check-net-bids.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
{
"mockBidRequest": {
"id": "test-request-id",
"user": {
"id": "1kjh3429kjh295jkl"
},
"imp": [
{
"id": "test-imp-id",
"banner": {
"format": [
{
"w": 300,
"h": 250
},
{
"w": 300,
"h": 600
}
]
},
"ext": {
"bidder": {
"auId": "123",
"priceType": "net"
}
}
}
]
},
"httpCalls": [
{
"expectedRequest": {
"uri": "http://whatever.url?format=json&tzo=0",
"body": {
"adUnits": [
{
"auId": "123",
"targetId": "123-test-imp-id",
"dimensions": [[300,250],[300,600]]
}
],
"metaData": {
"usi": "1kjh3429kjh295jkl"
},
"context": "unknown"
}
},
"mockResponse": {
"status": 200,
"body": {
"adUnits": [
{
"auId": "0000000000000123",
"targetId": "123-test-imp-id",
"html": "<ADCODE>",
"responseId": "adn-rsp-900646517",
"ads": [
{
"destinationUrls": {
"url": "http://www.google.com"
},
"bid": { "amount": 20.0, "currency": "NOK" },
"grossBid": {"amount": 0.1, "currency": "NOK"},
"netBid": {"amount": 0.075, "currency": "NOK"},
"adId": "adn-id-1559784094",
"creativeWidth": "980",
"creativeHeight": "240",
"creativeId": "jn9hpzvlsf8cpdmm",
"lineItemId": "q7y9qm5b0xt9htrv"
}
]
}
]
}
}
}
],
"expectedBidResponses": [
{
"bids": [
{
"bid": {
"id": "adn-id-1559784094",
"impid": "test-imp-id",
"price": 75,
"adm": "<ADCODE>",
"adid": "adn-id-1559784094",
"adomain": [
"google.com"
],
"cid": "q7y9qm5b0xt9htrv",
"crid": "jn9hpzvlsf8cpdmm",
"w": 980,
"h": 240
},
"type": "banner"
}
],
"currency": "NOK"
}
]
}
1 change: 1 addition & 0 deletions openrtb_ext/imp_adnuntius.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ type ImpExtAdnunitus struct {
Network string `json:"network"`
NoCookies bool `json:"noCookies"`
MaxDeals int `json:"maxDeals"`
PriceType string `json:"priceType,omitempty"`
}

0 comments on commit d0f130d

Please sign in to comment.