Skip to content

Commit 9f40747

Browse files
authored
Epsilon: pass prebid server version (#4392)
1 parent 0867e46 commit 9f40747

6 files changed

Lines changed: 79 additions & 16 deletions

File tree

src/main/java/org/prebid/server/bidder/epsilon/EpsilonBidder.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.prebid.server.proto.openrtb.ext.response.BidType;
2828
import org.prebid.server.util.BidderUtil;
2929
import org.prebid.server.util.HttpUtil;
30+
import org.prebid.server.util.VersionInfo;
3031

3132
import java.math.BigDecimal;
3233
import java.util.ArrayList;
@@ -57,21 +58,23 @@ public class EpsilonBidder implements Bidder<BidRequest> {
5758
// Position of the ad as a relative measure of visibility or prominence
5859
private static final Set<Integer> AD_POSITIONS = IntStream.range(0, 8).boxed().collect(Collectors.toSet());
5960

60-
private static final String DISPLAY_MANAGER = "prebid-s2s";
61-
private static final String DISPLAY_MANAGER_VER = "2.0.0";
61+
private static final String DISPLAY_MANAGER = "prebid-s2s-java";
6262

6363
private final String endpointUrl;
6464
private final boolean generateBidId;
6565
private final JacksonMapper mapper;
66+
private final String displayManagerVersion;
6667

6768
public EpsilonBidder(String endpointUrl,
6869
boolean generateBidId,
70+
String pbsVersion,
6971
JacksonMapper mapper,
7072
CurrencyConversionService currencyConversionService) {
7173
this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl));
7274
this.generateBidId = generateBidId;
7375
this.mapper = Objects.requireNonNull(mapper);
7476
this.currencyConversionService = Objects.requireNonNull(currencyConversionService);
77+
this.displayManagerVersion = VersionInfo.UNDEFINED.equals(pbsVersion) ? null : pbsVersion;
7578
}
7679

7780
@Override
@@ -96,7 +99,7 @@ private BidRequest createOutgoingRequest(BidRequest bidRequest) {
9699
final BigDecimal bidFloor = resolveBidFloor(bidRequest,
97100
imp.getBidfloorcur(),
98101
getBidFloor(imp.getBidfloor(), impExt.getBidfloor()));
99-
modifiedImps.add(modifyImp(imp, impExt, bidFloor));
102+
modifiedImps.add(modifyImp(imp, impExt, bidFloor, displayManagerVersion));
100103
}
101104

102105
final Imp firstImp = requestImps.getFirst();
@@ -143,13 +146,13 @@ private static App updateApp(App app, String siteId) {
143146
return app == null ? null : app.toBuilder().id(siteId).build();
144147
}
145148

146-
private static Imp modifyImp(Imp imp, ExtImpEpsilon impExt, BigDecimal bidfloor) {
149+
private static Imp modifyImp(Imp imp, ExtImpEpsilon impExt, BigDecimal bidfloor, String displayManagerVersion) {
147150
final Banner banner = imp.getBanner();
148151
final Video video = imp.getVideo();
149152

150153
return imp.toBuilder()
151154
.displaymanager(DISPLAY_MANAGER)
152-
.displaymanagerver(DISPLAY_MANAGER_VER)
155+
.displaymanagerver(displayManagerVersion)
153156
.bidfloor(bidfloor)
154157
.bidfloorcur(BIDDER_CURRENCY)
155158
.tagid(getTagId(imp.getTagid(), impExt.getTagId()))

src/main/java/org/prebid/server/spring/config/bidder/EpsilonConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler;
1212
import org.prebid.server.spring.config.bidder.util.UsersyncerCreator;
1313
import org.prebid.server.spring.env.YamlPropertySourceFactory;
14+
import org.prebid.server.util.VersionInfo;
1415
import org.springframework.beans.factory.annotation.Value;
1516
import org.springframework.boot.context.properties.ConfigurationProperties;
1617
import org.springframework.context.annotation.Bean;
@@ -36,6 +37,7 @@ EpsilonConfigurationProperties configurationProperties() {
3637
@Bean
3738
BidderDeps epsilonBidderDeps(EpsilonConfigurationProperties epsilonConfigurationProperties,
3839
@NotBlank @Value("${external-url}") String externalUrl,
40+
VersionInfo versionInfo,
3941
JacksonMapper mapper,
4042
CurrencyConversionService currencyConversionService) {
4143

@@ -46,6 +48,7 @@ BidderDeps epsilonBidderDeps(EpsilonConfigurationProperties epsilonConfiguration
4648
new EpsilonBidder(
4749
config.getEndpoint(),
4850
epsilonConfigurationProperties.getGenerateBidId(),
51+
versionInfo.getVersion(),
4952
mapper,
5053
currencyConversionService))
5154
.assemble();

src/main/java/org/prebid/server/util/VersionInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class VersionInfo {
1515

1616
private static final Logger logger = LoggerFactory.getLogger(VersionInfo.class);
17-
private static final String UNDEFINED = "undefined";
17+
public static final String UNDEFINED = "undefined";
1818

1919
String version;
2020
String commitHash;

src/test/java/org/prebid/server/bidder/epsilon/EpsilonBidderTest.java

Lines changed: 63 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.prebid.server.proto.openrtb.ext.request.epsilon.ExtImpEpsilon;
3232
import org.prebid.server.proto.openrtb.ext.response.BidType;
3333
import org.prebid.server.proto.openrtb.ext.response.ExtBidResponse;
34+
import org.prebid.server.util.VersionInfo;
3435

3536
import java.math.BigDecimal;
3637
import java.util.Collections;
@@ -64,13 +65,14 @@ public class EpsilonBidderTest extends VertxTest {
6465

6566
@BeforeEach
6667
public void setUp() {
67-
target = new EpsilonBidder(ENDPOINT_URL, false, jacksonMapper, currencyConversionService);
68+
target = new EpsilonBidder(ENDPOINT_URL, false, null, jacksonMapper, currencyConversionService);
6869
}
6970

7071
@Test
7172
public void creationShouldFailOnInvalidEndpointUrl() {
7273
assertThatIllegalArgumentException()
73-
.isThrownBy(() -> new EpsilonBidder("invalid_url", false, jacksonMapper, currencyConversionService));
74+
.isThrownBy(() -> new EpsilonBidder(
75+
"invalid_url", false, null, jacksonMapper, currencyConversionService));
7476
}
7577

7678
@Test
@@ -186,7 +188,7 @@ public void makeHttpRequestsShouldSetSiteIdFromExtSiteIdIfSiteIdIsNullOrEmpty()
186188
}
187189

188190
@Test
189-
public void makeHttpRequestsShouldSetImpDisplayManagerAndDisplayManagerVer() {
191+
public void makeHttpRequestsShouldSetImpDisplayManager() {
190192
// given
191193
final BidRequest bidRequest = givenBidRequest(identity());
192194

@@ -198,8 +200,63 @@ public void makeHttpRequestsShouldSetImpDisplayManagerAndDisplayManagerVer() {
198200
assertThat(result.getValue()).hasSize(1)
199201
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
200202
.flatExtracting(BidRequest::getImp)
201-
.extracting(Imp::getDisplaymanager, Imp::getDisplaymanagerver)
202-
.containsExactly(tuple("prebid-s2s", "2.0.0"));
203+
.extracting(Imp::getDisplaymanager)
204+
.containsExactly("prebid-s2s-java");
205+
}
206+
207+
@Test
208+
public void makeHttpRequestsShouldNotSetDisplayManagerVerWhenVersionIsNull() {
209+
// given
210+
target = new EpsilonBidder(ENDPOINT_URL, false, null, jacksonMapper, currencyConversionService);
211+
final BidRequest bidRequest = givenBidRequest(identity());
212+
213+
// when
214+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);
215+
216+
// then
217+
assertThat(result.getErrors()).isEmpty();
218+
assertThat(result.getValue()).hasSize(1)
219+
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
220+
.flatExtracting(BidRequest::getImp)
221+
.extracting(Imp::getDisplaymanagerver)
222+
.containsOnlyNulls();
223+
}
224+
225+
@Test
226+
public void makeHttpRequestsShouldNotSetDisplayManagerVerWhenVersionIsUndefined() {
227+
// given
228+
target = new EpsilonBidder(
229+
ENDPOINT_URL, false, VersionInfo.UNDEFINED, jacksonMapper, currencyConversionService);
230+
final BidRequest bidRequest = givenBidRequest(identity());
231+
232+
// when
233+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);
234+
235+
// then
236+
assertThat(result.getErrors()).isEmpty();
237+
assertThat(result.getValue()).hasSize(1)
238+
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
239+
.flatExtracting(BidRequest::getImp)
240+
.extracting(Imp::getDisplaymanagerver)
241+
.containsOnlyNulls();
242+
}
243+
244+
@Test
245+
public void makeHttpRequestsShouldSetDisplayManagerVerWhenVersionIsProvided() {
246+
// given
247+
target = new EpsilonBidder(ENDPOINT_URL, false, "1.2.3", jacksonMapper, currencyConversionService);
248+
final BidRequest bidRequest = givenBidRequest(identity());
249+
250+
// when
251+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);
252+
253+
// then
254+
assertThat(result.getErrors()).isEmpty();
255+
assertThat(result.getValue()).hasSize(1)
256+
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
257+
.flatExtracting(BidRequest::getImp)
258+
.extracting(Imp::getDisplaymanagerver)
259+
.containsExactly("1.2.3");
203260
}
204261

205262
@Test
@@ -697,7 +754,7 @@ public void makeBidsShouldReturnAudioBidIfRequestImpHasAudio() throws JsonProces
697754
@Test
698755
public void makeBidsShouldUpdateBidWithUUIDIfGenerateBidIdIsTrue() throws JsonProcessingException {
699756
// given
700-
target = new EpsilonBidder(ENDPOINT_URL, true, jacksonMapper, currencyConversionService);
757+
target = new EpsilonBidder(ENDPOINT_URL, true, null, jacksonMapper, currencyConversionService);
701758
final BidderCall<BidRequest> httpCall = givenHttpCall(
702759
givenBidRequest(builder -> builder.id("123")
703760
.banner(Banner.builder().build())),

src/test/resources/org/prebid/server/it/openrtb2/epsilon/alias/test-epsilon-bid-request.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
"h": 600
1010
},
1111
"bidfloorcur": "USD",
12-
"displaymanager": "prebid-s2s",
13-
"displaymanagerver": "2.0.0",
12+
"displaymanager": "prebid-s2s-java",
13+
"displaymanagerver": "${json-unit.ignore}",
1414
"ext": {
1515
"tid": "${json-unit.any-string}",
1616
"bidder": {

src/test/resources/org/prebid/server/it/openrtb2/epsilon/test-epsilon-bid-request.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
"h": 600
1010
},
1111
"bidfloorcur": "USD",
12-
"displaymanager": "prebid-s2s",
13-
"displaymanagerver": "2.0.0",
12+
"displaymanager": "prebid-s2s-java",
13+
"displaymanagerver": "${json-unit.ignore}",
1414
"ext": {
1515
"tid": "${json-unit.any-string}",
1616
"bidder": {

0 commit comments

Comments
 (0)