Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

import com.fasterxml.jackson.annotation.JsonProperty;
import com.iab.openrtb.request.BidRequest;
import com.iab.openrtb.request.Eid;
import lombok.Builder;
import lombok.Value;

import java.math.BigDecimal;
import java.util.List;

@Value
@Builder(toBuilder = true)
Expand All @@ -16,6 +18,11 @@ public class MissenaAdRequest {

String currency;

Boolean debug;

@JsonProperty("userEids")
List<Eid> userEids;

BigDecimal floor;

String floorCurrency;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ public class MissenaAdResponse {

String currency;

Integer width;

Integer height;

@JsonProperty("requestId")
String requestId;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.iab.openrtb.request.BidRequest;
import com.iab.openrtb.request.Device;
import com.iab.openrtb.request.Eid;
import com.iab.openrtb.request.Imp;
import com.iab.openrtb.request.Site;
import com.iab.openrtb.request.User;
import com.iab.openrtb.response.Bid;
import io.vertx.core.MultiMap;
import io.vertx.core.http.HttpMethod;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.prebid.server.bidder.Bidder;
import org.prebid.server.bidder.model.BidderBid;
Expand All @@ -21,6 +24,7 @@
import org.prebid.server.json.DecodeException;
import org.prebid.server.json.JacksonMapper;
import org.prebid.server.proto.openrtb.ext.ExtPrebid;
import org.prebid.server.proto.openrtb.ext.request.ExtUser;
import org.prebid.server.proto.openrtb.ext.request.missena.ExtImpMissena;
import org.prebid.server.proto.openrtb.ext.response.BidType;
import org.prebid.server.util.BidderUtil;
Expand Down Expand Up @@ -91,15 +95,18 @@ private HttpRequest<MissenaAdRequest> makeHttpRequest(BidRequest request, Imp im
final Price floorInfo = resolveBidFloor(imp, request, requestCurrency);

final MissenaUserParams userParams = MissenaUserParams.builder()
.apiKey(extImp.getApiKey())
.formats(extImp.getFormats())
.placement(extImp.getPlacement())
.testMode(extImp.getTestMode())
.sample(extImp.getSample())
.settings(extImp.getSettings())
.build();

final MissenaAdRequest missenaAdRequest = MissenaAdRequest.builder()
.adUnit(imp.getId())
.currency(requestCurrency)
.debug(Objects.equals(request.getTest(), 1) ? Boolean.TRUE : null)
.userEids(resolveUserEids(request.getUser()))
.floor(floorInfo.getValue())
.floorCurrency(floorInfo.getCurrency())
.idempotencyKey(request.getId())
Expand All @@ -120,6 +127,12 @@ private HttpRequest<MissenaAdRequest> makeHttpRequest(BidRequest request, Imp im
.build();
}

private static List<Eid> resolveUserEids(User user) {
final ExtUser extUser = user != null ? user.getExt() : null;
final List<Eid> eids = extUser != null ? extUser.getEids() : null;
return CollectionUtils.isNotEmpty(eids) ? eids : null;
}

private Price resolveBidFloor(Imp imp, BidRequest bidRequest, String targetCurrency) {
final Price initialBidFloorPrice = Price.of(imp.getBidfloorcur(), imp.getBidfloor());
return BidderUtil.isValidPrice(initialBidFloorPrice)
Expand Down Expand Up @@ -202,6 +215,8 @@ private BidderBid extractBid(BidRequest request, MissenaAdResponse response) {
.impid(request.getImp().getFirst().getId())
.adm(response.getAd())
.crid(response.getRequestId())
.w(response.getWidth())
.h(response.getHeight())
.build();

return BidderBid.of(bid, BidType.banner, response.getCurrency());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.prebid.server.bidder.missena;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.node.ObjectNode; // Changed import
import com.fasterxml.jackson.databind.node.ObjectNode;
import lombok.Builder;
import lombok.Value;

Expand All @@ -11,13 +11,14 @@
@Value
public class MissenaUserParams {

@JsonProperty("apiKey")
String apiKey;

List<String> formats;

String placement;

@JsonProperty("test")
String testMode;
String sample;

ObjectNode settings;
}

Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ public class ExtImpMissena {

String placement;

@JsonProperty("test")
String testMode;
String sample;

ObjectNode settings;
}
6 changes: 3 additions & 3 deletions src/main/resources/static/bidder-params/missena.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
"type": "string",
"description": "Placement Type (Sticky, Header, ...)"
},
"test": {
"type": "string",
"description": "Test Mode"
"sample": {
"type": ["string", "null"],
"description": "Sample"
},
"formats": {
"type": "array",
Expand Down
Loading