From f9ce0d2c63799b9e29fd5c7ad4356987dc98fe27 Mon Sep 17 00:00:00 2001 From: pkaczmarek Date: Sat, 17 Jan 2026 09:49:59 +0100 Subject: [PATCH] AdOcean: Remove adapter --- .../server/bidder/adocean/AdoceanBidder.java | 358 ----------- .../adocean/model/AdoceanResponseAdUnit.java | 32 - .../ext/request/adocean/ExtImpAdocean.java | 20 - .../config/bidder/AdoceanConfiguration.java | 41 -- src/main/resources/bidder-config/adocean.yaml | 11 - .../static/bidder-params/adocean.json | 44 -- .../bidder/adocean/AdoceanBidderTest.java | 572 ------------------ .../bidder/smarthub/SmarthubBidderTest.java | 3 +- .../org/prebid/server/it/AdoceanTest.java | 30 - .../adocean/test-adocean-bid-response-1.json | 14 - .../adocean/test-auction-adocean-request.json | 29 - .../test-auction-adocean-response.json | 41 -- .../server/it/test-application.properties | 2 - 13 files changed, 1 insertion(+), 1196 deletions(-) delete mode 100644 src/main/java/org/prebid/server/bidder/adocean/AdoceanBidder.java delete mode 100644 src/main/java/org/prebid/server/bidder/adocean/model/AdoceanResponseAdUnit.java delete mode 100644 src/main/java/org/prebid/server/proto/openrtb/ext/request/adocean/ExtImpAdocean.java delete mode 100644 src/main/java/org/prebid/server/spring/config/bidder/AdoceanConfiguration.java delete mode 100644 src/main/resources/bidder-config/adocean.yaml delete mode 100644 src/main/resources/static/bidder-params/adocean.json delete mode 100644 src/test/java/org/prebid/server/bidder/adocean/AdoceanBidderTest.java delete mode 100644 src/test/java/org/prebid/server/it/AdoceanTest.java delete mode 100644 src/test/resources/org/prebid/server/it/openrtb2/adocean/test-adocean-bid-response-1.json delete mode 100644 src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-request.json delete mode 100644 src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-response.json diff --git a/src/main/java/org/prebid/server/bidder/adocean/AdoceanBidder.java b/src/main/java/org/prebid/server/bidder/adocean/AdoceanBidder.java deleted file mode 100644 index 63ad320ca4e..00000000000 --- a/src/main/java/org/prebid/server/bidder/adocean/AdoceanBidder.java +++ /dev/null @@ -1,358 +0,0 @@ -package org.prebid.server.bidder.adocean; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.iab.openrtb.request.App; -import com.iab.openrtb.request.Banner; -import com.iab.openrtb.request.BidRequest; -import com.iab.openrtb.request.Device; -import com.iab.openrtb.request.Format; -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.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.math.NumberUtils; -import org.apache.http.NameValuePair; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.client.utils.URLEncodedUtils; -import org.apache.http.message.BasicNameValuePair; -import org.prebid.server.bidder.Bidder; -import org.prebid.server.bidder.adocean.model.AdoceanResponseAdUnit; -import org.prebid.server.bidder.model.BidderBid; -import org.prebid.server.bidder.model.BidderCall; -import org.prebid.server.bidder.model.BidderError; -import org.prebid.server.bidder.model.HttpRequest; -import org.prebid.server.bidder.model.Result; -import org.prebid.server.exception.PreBidException; -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.adocean.ExtImpAdocean; -import org.prebid.server.proto.openrtb.ext.response.BidType; -import org.prebid.server.util.HttpUtil; - -import java.io.IOException; -import java.math.BigDecimal; -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -public class AdoceanBidder implements Bidder { - - private static final TypeReference> ADOCEAN_EXT_TYPE_REFERENCE = - new TypeReference<>() { - }; - private static final String VERSION = "1.3.0"; - private static final int MAX_URI_LENGTH = 8000; - private static final String MEASUREMENT_CODE_TEMPLATE = """ - """; - - private final String endpointUrl; - private final JacksonMapper mapper; - - public AdoceanBidder(String endpointUrl, JacksonMapper mapper) { - this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl)); - this.mapper = Objects.requireNonNull(mapper); - } - - @Override - public Result>> makeHttpRequests(BidRequest request) { - final List errors = new ArrayList<>(); - final User user = request.getUser(); - final ExtUser extUser = user != null ? user.getExt() : null; - final String consentString = extUser != null ? extUser.getConsent() : ""; - - final List> httpRequests = new ArrayList<>(); - for (Imp imp : request.getImp()) { - try { - final ExtImpAdocean extImpAdocean = parseImpExt(imp); - validateImpExt(extImpAdocean); - - final Map slaveSizes = new HashMap<>(); - slaveSizes.put(extImpAdocean.getSlaveId(), getImpSizes(imp)); - if (addRequestAndCheckIfDuplicates(httpRequests, extImpAdocean, imp.getId(), slaveSizes, - request.getTest())) { - continue; - } - httpRequests.add(createSingleRequest(request, imp, extImpAdocean, consentString, slaveSizes)); - } catch (PreBidException e) { - errors.add(BidderError.badInput(e.getMessage())); - } - } - - return Result.of(httpRequests, errors); - } - - private ExtImpAdocean parseImpExt(Imp imp) { - try { - return mapper.mapper().convertValue(imp.getExt(), ADOCEAN_EXT_TYPE_REFERENCE).getBidder(); - } catch (IllegalArgumentException e) { - throw new PreBidException( - "Error parsing adOceanExt parameters, in imp with id : " + imp.getId()); - } - } - - private static void validateImpExt(ExtImpAdocean impExt) { - if (StringUtils.isEmpty(impExt.getEmitterPrefix())) { - throw new PreBidException("No emitterPrefix param"); - } - } - - private boolean addRequestAndCheckIfDuplicates(List> httpRequests, ExtImpAdocean extImpAdocean, - String impid, Map slaveSizes, Integer test) { - for (HttpRequest request : httpRequests) { - try { - final URIBuilder uriBuilder = new URIBuilder(request.getUri()); - final List queryParams = uriBuilder.getQueryParams(); - - final String masterId = queryParams.stream() - .filter(param -> "id".equals(param.getName())) - .findFirst() - .map(NameValuePair::getValue) - .orElse(null); - - if (masterId != null && masterId.equals(extImpAdocean.getMasterId())) { - final boolean isExistingSlaveId = queryParams.stream() - .filter(param -> "aid".equals(param.getName())) - .map(param -> param.getValue().split(":")[0]) - .anyMatch(slaveId -> slaveId.equals(extImpAdocean.getSlaveId())); - if (isExistingSlaveId) { - continue; - } - - queryParams.add(new BasicNameValuePair("aid", extImpAdocean.getSlaveId() + ":" + impid)); - final List sizeValues = setSlaveSizesParam(slaveSizes, Objects.equals(test, 1)); - if (CollectionUtils.isNotEmpty(sizeValues)) { - queryParams.add(new BasicNameValuePair("aosspsizes", String.join("-", sizeValues))); - } - uriBuilder.setParameters(queryParams); - - final String url = uriBuilder.toString(); - if (url.length() < MAX_URI_LENGTH) { - final HttpRequest updatedRequest = HttpRequest.builder() - .method(HttpMethod.GET) - .uri(url) - .headers(request.getHeaders()) - .build(); - httpRequests.remove(request); - httpRequests.add(updatedRequest); - return true; - } - } - } catch (URISyntaxException e) { - throw new PreBidException(e.getMessage()); - } - } - return false; - } - - private String getImpSizes(Imp imp) { - final Banner banner = imp.getBanner(); - if (banner == null) { - return ""; - } - - final List format = banner.getFormat(); - if (CollectionUtils.isNotEmpty(format)) { - final List sizes = new ArrayList<>(); - format.forEach(singleFormat -> sizes.add( - "%sx%s".formatted(getIntOrElseZero(singleFormat.getW()), getIntOrElseZero(singleFormat.getH())))); - return String.join("_", sizes); - } - - final Integer w = banner.getW(); - final Integer h = banner.getH(); - if (w != null && h != null) { - return "%sx%s".formatted(w, h); - } - - return StringUtils.EMPTY; - } - - private int getIntOrElseZero(Integer number) { - return number != null ? number : 0; - } - - private HttpRequest createSingleRequest(BidRequest request, Imp imp, ExtImpAdocean extImpAdocean, - String consentString, Map slaveSizes) { - - return HttpRequest.builder() - .method(HttpMethod.GET) - .uri(buildUrl(imp.getId(), extImpAdocean, consentString, request, slaveSizes)) - .headers(getHeaders(request)) - .build(); - } - - private String buildUrl(String impId, ExtImpAdocean extImpAdocean, String consentString, BidRequest bidRequest, - Map slaveSizes) { - - final Integer test = bidRequest.getTest(); - final String resolvedUrl = resolveEndpointUrl(extImpAdocean, test); - - final URIBuilder uriBuilder; - try { - uriBuilder = new URIBuilder(resolvedUrl); - } catch (URISyntaxException e) { - throw new PreBidException("Invalid url: %s, error: %s".formatted(resolvedUrl, e.getMessage())); - } - - uriBuilder - .addParameter("pbsrv_v", VERSION) - .addParameter("id", extImpAdocean.getMasterId()) - .addParameter("nc", "1") - .addParameter("nosecure", "1") - .addParameter("aid", extImpAdocean.getSlaveId() + ":" + impId); - - if (StringUtils.isNotEmpty(consentString)) { - uriBuilder.addParameter("gdpr_consent", consentString); - uriBuilder.addParameter("gdpr", "1"); - } - - final User user = bidRequest.getUser(); - if (user != null && StringUtils.isNotEmpty(user.getBuyeruid())) { - uriBuilder.addParameter("hcuserid", user.getBuyeruid()); - } - - final App app = bidRequest.getApp(); - if (app != null) { - uriBuilder.addParameter("app", "1"); - uriBuilder.addParameter("appname", app.getName()); - uriBuilder.addParameter("appbundle", app.getBundle()); - uriBuilder.addParameter("appdomain", app.getDomain()); - } - - final Device device = bidRequest.getDevice(); - if (device != null) { - if (StringUtils.isNotEmpty(device.getIfa())) { - uriBuilder.addParameter("ifa", device.getIfa()); - } else { - uriBuilder.addParameter("dpidmd5", device.getDpidmd5()); - } - - uriBuilder.addParameter("devos", device.getOs()); - uriBuilder.addParameter("devosv", device.getOsv()); - uriBuilder.addParameter("devmodel", device.getModel()); - uriBuilder.addParameter("devmake", device.getMake()); - } - - final List sizeValues = setSlaveSizesParam(slaveSizes, Objects.equals(test, 1)); - - if (CollectionUtils.isNotEmpty(sizeValues)) { - uriBuilder.addParameter("aosspsizes", String.join("-", sizeValues)); - } - - return uriBuilder.toString(); - } - - private String resolveEndpointUrl(ExtImpAdocean extImpAdocean, Integer test) { - final String url = endpointUrl.replace("{{Host}}", extImpAdocean.getEmitterPrefix()); - final int randomizedPart = Objects.equals(test, 1) ? 10000000 : 10000000 + (int) (Math.random() * 89999999); - return "%s/_%s/ad.json".formatted(url, randomizedPart); - } - - private List setSlaveSizesParam(Map slaveSizes, boolean orderByKey) { - final Set slaveIDs = orderByKey ? new TreeSet<>(slaveSizes.keySet()) : slaveSizes.keySet(); - - return slaveIDs.stream() - .filter(slaveId -> StringUtils.isNotEmpty(slaveSizes.get(slaveId))) - .map(rawSlaveID -> "%s~%s".formatted( - rawSlaveID.replaceFirst("adocean", ""), - slaveSizes.get(rawSlaveID))) - .toList(); - } - - private static MultiMap getHeaders(BidRequest request) { - final MultiMap headers = HttpUtil.headers(); - - final Device device = request.getDevice(); - if (device != null) { - HttpUtil.addHeaderIfValueIsNotEmpty(headers, HttpUtil.USER_AGENT_HEADER, device.getUa()); - HttpUtil.addHeaderIfValueIsNotEmpty(headers, HttpUtil.X_FORWARDED_FOR_HEADER, device.getIpv6()); - HttpUtil.addHeaderIfValueIsNotEmpty(headers, HttpUtil.X_FORWARDED_FOR_HEADER, device.getIp()); - } - - final Site site = request.getSite(); - if (site != null) { - HttpUtil.addHeaderIfValueIsNotEmpty(headers, HttpUtil.REFERER_HEADER, site.getPage()); - } - - return headers; - } - - @Override - public Result> makeBids(BidderCall httpCall, BidRequest bidRequest) { - final List params; - try { - params = URLEncodedUtils.parse(new URI(httpCall.getRequest().getUri()), StandardCharsets.UTF_8); - } catch (URISyntaxException e) { - return Result.withError(BidderError.badInput(e.getMessage())); - } - - final Map auctionIds = params != null ? params.stream() - .filter(param -> "aid".equals(param.getName())) - .map(param -> param.getValue().split(":")) - .collect(Collectors.toMap(name -> name[0], value -> value[1])) : null; - - final List adoceanResponses; - try { - adoceanResponses = getAdoceanResponseAdUnitList(httpCall.getResponse().getBody()); - } catch (PreBidException e) { - return Result.withError(BidderError - .badServerResponse("Failed to decode: No content to map due to end-of-input")); - } - - final List bidderBids = adoceanResponses.stream() - .filter(adoceanResponse -> !"true".equals(adoceanResponse.getError())) - .filter(adoceanResponse -> - StringUtils.isNotBlank(MapUtils.getString(auctionIds, adoceanResponse.getId()))) - .map(adoceanResponse -> BidderBid.of(createBid(auctionIds, adoceanResponse), BidType.banner, - adoceanResponse.getCurrency())) - .toList(); - - return Result.withValues(bidderBids); - } - - private static Bid createBid(Map auctionIds, AdoceanResponseAdUnit adoceanResponse) { - final String adm = MEASUREMENT_CODE_TEMPLATE - .formatted(adoceanResponse.getWinUrl(), adoceanResponse.getStatsUrl()) - + HttpUtil.decodeUrl(adoceanResponse.getCode()); - final String bidPrice = adoceanResponse.getPrice(); - - return Bid.builder() - .id(adoceanResponse.getId()) - .impid(auctionIds.get(adoceanResponse.getId())) - .adm(adm) - .price(NumberUtils.isParsable(bidPrice) ? new BigDecimal(bidPrice) : BigDecimal.ZERO) - .w(NumberUtils.toInt(adoceanResponse.getWidth(), 0)) - .h(NumberUtils.toInt(adoceanResponse.getHeight(), 0)) - .crid(adoceanResponse.getCrid()) - .build(); - } - - private List getAdoceanResponseAdUnitList(String responseBody) { - try { - return mapper.mapper().readValue( - responseBody, - mapper.mapper().getTypeFactory().constructCollectionType(List.class, AdoceanResponseAdUnit.class)); - } catch (IOException e) { - throw new PreBidException(e.getMessage()); - } - } -} diff --git a/src/main/java/org/prebid/server/bidder/adocean/model/AdoceanResponseAdUnit.java b/src/main/java/org/prebid/server/bidder/adocean/model/AdoceanResponseAdUnit.java deleted file mode 100644 index b2bd0142cee..00000000000 --- a/src/main/java/org/prebid/server/bidder/adocean/model/AdoceanResponseAdUnit.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.prebid.server.bidder.adocean.model; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Builder; -import lombok.Value; - -@Builder -@Value -public class AdoceanResponseAdUnit { - - String id; - - String crid; - - String currency; - - String price; - - String width; - - String height; - - String code; - - @JsonProperty("winurl") - String winUrl; - - @JsonProperty("statsUrl") - String statsUrl; - - String error; -} diff --git a/src/main/java/org/prebid/server/proto/openrtb/ext/request/adocean/ExtImpAdocean.java b/src/main/java/org/prebid/server/proto/openrtb/ext/request/adocean/ExtImpAdocean.java deleted file mode 100644 index aa364d222ae..00000000000 --- a/src/main/java/org/prebid/server/proto/openrtb/ext/request/adocean/ExtImpAdocean.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.prebid.server.proto.openrtb.ext.request.adocean; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Value; - -/** - * Defines the contract for bidrequest.imp[i].ext.adocean - */ -@Value(staticConstructor = "of") -public class ExtImpAdocean { - - @JsonProperty("emitterPrefix") - String emitterPrefix; - - @JsonProperty("masterId") - String masterId; - - @JsonProperty("slaveId") - String slaveId; -} diff --git a/src/main/java/org/prebid/server/spring/config/bidder/AdoceanConfiguration.java b/src/main/java/org/prebid/server/spring/config/bidder/AdoceanConfiguration.java deleted file mode 100644 index d16984e3c5e..00000000000 --- a/src/main/java/org/prebid/server/spring/config/bidder/AdoceanConfiguration.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.prebid.server.spring.config.bidder; - -import org.prebid.server.bidder.BidderDeps; -import org.prebid.server.bidder.adocean.AdoceanBidder; -import org.prebid.server.json.JacksonMapper; -import org.prebid.server.spring.config.bidder.model.BidderConfigurationProperties; -import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler; -import org.prebid.server.spring.config.bidder.util.UsersyncerCreator; -import org.prebid.server.spring.env.YamlPropertySourceFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; - -import jakarta.validation.constraints.NotBlank; - -@Configuration -@PropertySource(value = "classpath:/bidder-config/adocean.yaml", factory = YamlPropertySourceFactory.class) -public class AdoceanConfiguration { - - private static final String BIDDER_NAME = "adocean"; - - @Bean("adoceanConfigurationProperties") - @ConfigurationProperties("adapters.adocean") - BidderConfigurationProperties configurationProperties() { - return new BidderConfigurationProperties(); - } - - @Bean - BidderDeps adoceanBidderDeps(BidderConfigurationProperties adoceanConfigurationProperties, - @NotBlank @Value("${external-url}") String externalUrl, - JacksonMapper mapper) { - - return BidderDepsAssembler.forBidder(BIDDER_NAME) - .withConfig(adoceanConfigurationProperties) - .usersyncerCreator(UsersyncerCreator.create(externalUrl)) - .bidderCreator(config -> new AdoceanBidder(config.getEndpoint(), mapper)) - .assemble(); - } -} diff --git a/src/main/resources/bidder-config/adocean.yaml b/src/main/resources/bidder-config/adocean.yaml deleted file mode 100644 index f659947c985..00000000000 --- a/src/main/resources/bidder-config/adocean.yaml +++ /dev/null @@ -1,11 +0,0 @@ -adapters: - adocean: - endpoint: https://{{Host}}.adocean.pl - meta-info: - maintainer-email: aoteam@gemius.com - app-media-types: - - banner - site-media-types: - - banner - supported-vendors: - vendor-id: 328 diff --git a/src/main/resources/static/bidder-params/adocean.json b/src/main/resources/static/bidder-params/adocean.json deleted file mode 100644 index 5c62c410fb1..00000000000 --- a/src/main/resources/static/bidder-params/adocean.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "AdOcean Adapter Params", - "description": "A schema which validates params accepted by the AdOcean adapter", - "type": "object", - "properties": { - "emiter": { - "type": "string", - "description": "Deprecated, use emitterPrefix instead. AdOcean emiter", - "pattern": ".+" - }, - "emitterPrefix": { - "type": "string", - "description": "AdOcean emitter prefix", - "pattern": "^[\\w\\-]+$" - }, - "masterId": { - "type": "string", - "description": "Master's id", - "pattern": "^[\\w.]+$" - }, - "slaveId": { - "type": "string", - "description": "Slave's id", - "pattern": "^adocean[\\w.]+$" - } - }, - "oneOf": [ - { - "required": [ - "emiter", - "masterId", - "slaveId" - ] - }, - { - "required": [ - "emitterPrefix", - "masterId", - "slaveId" - ] - } - ] -} diff --git a/src/test/java/org/prebid/server/bidder/adocean/AdoceanBidderTest.java b/src/test/java/org/prebid/server/bidder/adocean/AdoceanBidderTest.java deleted file mode 100644 index 9657dd88767..00000000000 --- a/src/test/java/org/prebid/server/bidder/adocean/AdoceanBidderTest.java +++ /dev/null @@ -1,572 +0,0 @@ -package org.prebid.server.bidder.adocean; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.iab.openrtb.request.App; -import com.iab.openrtb.request.Banner; -import com.iab.openrtb.request.BidRequest; -import com.iab.openrtb.request.Device; -import com.iab.openrtb.request.Format; -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.netty.handler.codec.http.HttpHeaderValues; -import org.junit.jupiter.api.Test; -import org.prebid.server.VertxTest; -import org.prebid.server.bidder.adocean.model.AdoceanResponseAdUnit; -import org.prebid.server.bidder.model.BidderBid; -import org.prebid.server.bidder.model.BidderCall; -import org.prebid.server.bidder.model.BidderError; -import org.prebid.server.bidder.model.HttpRequest; -import org.prebid.server.bidder.model.HttpResponse; -import org.prebid.server.bidder.model.Result; -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.adocean.ExtImpAdocean; -import org.prebid.server.proto.openrtb.ext.response.BidType; -import org.prebid.server.util.HttpUtil; - -import java.math.BigDecimal; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.function.Function; - -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static java.util.function.Function.identity; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; -import static org.assertj.core.api.Assertions.tuple; -import static org.prebid.server.bidder.model.BidderError.Type.bad_server_response; - -public class AdoceanBidderTest extends VertxTest { - - private static final String ENDPOINT_URL = "https://{{Host}}"; - - private final AdoceanBidder target = new AdoceanBidder(ENDPOINT_URL, jacksonMapper); - - @Test - public void creationShouldFailOnInvalidEndpointUrl() { - assertThatIllegalArgumentException().isThrownBy(() -> new AdoceanBidder("invalid_url", jacksonMapper)); - } - - @Test - public void makeHttpRequestsShouldReturnErrorIfImpExtCouldNotBeParsed() { - // given - final BidRequest bidRequest = givenBidRequest( - impBuilder -> impBuilder - .id("123") - .ext(mapper.valueToTree(ExtPrebid.of(null, mapper.createArrayNode())))); - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getErrors()) - .containsExactly(BidderError.badInput("Error parsing adOceanExt parameters, in imp with id : 123")); - } - - @Test - public void makeHttpRequestsShouldReturnErrorIfEndpointUrlComposingFails() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("invalid domain", "masterId", - "adoceanmyaozpniqismex")))).build())) - .test(1) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getErrors()).hasSize(1) - .allSatisfy(error -> { - assertThat(error.getMessage()).startsWith("Invalid url: https://invalid domain/"); - assertThat(error.getType()).isEqualTo(BidderError.Type.bad_input); - }); - } - - @Test - public void makeHttpRequestsShouldReturnErrorIfExtImpEmitterPrefixIsEmpty() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("", "masterId", "adoceanmyaozpniqismex")))).build())) - .test(1) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue()).isEmpty(); - assertThat(result.getErrors()).containsExactly(BidderError.badInput("No emitterPrefix param")); - } - - @Test - public void makeHttpRequestsShouldReturnErrorIfExtImpEmitterPrefixIsNotSupplied() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of(null, "masterId", "adoceanmyaozpniqismex")))).build())) - .test(1) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue()).isEmpty(); - assertThat(result.getErrors()).containsExactly(BidderError.badInput("No emitterPrefix param")); - } - - @Test - public void makeHttpRequestsShouldCreateRequestForEveryValidImp() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .buyeruid("testBuyerUid") - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(asList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().format(asList(Format.builder().h(250).w(300).build(), - Format.builder().h(320).w(600).build())).build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "masterId", - "adoceanmyaozpniqismex")))).build(), - Imp.builder() - .id("notValidImp") - .ext(mapper.valueToTree(ExtPrebid.of(null, mapper.createArrayNode()))).build(), - Imp.builder() - .id("i2-test") - .banner(Banner.builder().w(577).h(333).build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("em.dom", "masterId2", - "slaveId")))).build())) - .test(1) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getErrors()) - .containsExactly(BidderError.badInput("Error parsing adOceanExt parameters, " - + "in imp with id : notValidImp")); - assertThat(result.getValue()).hasSize(2) - .extracting(HttpRequest::getUri) - .containsExactly("https://myao.adocean.pl/_10000000/ad.json?pbsrv_v=1.3.0&id=masterId&nc=1" - + "&nosecure=1&aid=adoceanmyaozpniqismex%3Aao-test&gdpr_consent=consent&gdpr=1" - + "&hcuserid=testBuyerUid&aosspsizes=myaozpniqismex" - + "%7E300x250_600x320", "https://em.dom/_10000000/ad.json?pbsrv_v=1.3.0&id=" - + "masterId2&nc=1&nosecure=1&aid=slaveId%3Ai2-test&gdpr_consent=consent&gdpr=1" - + "&hcuserid=testBuyerUid&aosspsizes=slaveId%7E577x333"); - } - - @Test - public void makeHttpRequestsShouldCreateUniqueRequestIfMasterIdEqualsAndSlaveIdExists() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .buyeruid("testBuyerUid") - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(asList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().format(asList(Format.builder().h(250).w(300).build(), - Format.builder().h(320).w(600).build())).build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "masterId", - "slaveId")))).build(), - Imp.builder() - .id("i2-test") - .banner(Banner.builder().w(577).h(333).build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("em.dom", "masterId", - "slaveId")))).build())) - .test(1) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue()).hasSize(2); - } - - @Test - public void makeHttpRequestsShouldCreateRequestWithoutSizeIfBannerSizesNotPresent() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "masterId", - "adoceanmyaozpniqismex")))).build())) - .test(1) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getErrors()).isEmpty(); - assertThat(result.getValue()) - .extracting(HttpRequest::getUri) - .containsExactly("https://myao.adocean.pl/_10000000/ad.json?pbsrv_v=1.3.0&id=masterId&nc=1&nosecure=1" - + "&aid=adoceanmyaozpniqismex%3Aao-test&gdpr_consent=consent&gdpr=1"); - } - - @Test - public void makeHttpRequestsShouldUpdateRequestsForSimilarSlaveIds() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .buyeruid("testBuyerUid") - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(asList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().format(asList(Format.builder().h(250).w(300).build(), - Format.builder().h(320).w(600).build())).build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "masterId", - "slaveId")))).build(), - Imp.builder() - .id("i2-test") - .banner(Banner.builder().w(577).h(333).build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("em.dom", "masterId", - "slaveId2")))).build())) - .test(1) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue()).hasSize(1) - .extracting(HttpRequest::getUri) - .containsExactlyInAnyOrder("https://myao.adocean.pl/_10000000/ad.json?pbsrv_v=1.3.0&id=masterId&nc=1" - + "&nosecure=1&aid=slaveId%3Aao-test&gdpr_consent=consent&gdpr=1&hcuserid=testBuyerUid" - + "&aosspsizes=slaveId%7E300x250_600x320&aid=slaveId2%3Ai2-test&aosspsizes=slaveId2%7E577x333"); - } - - @Test - public void makeHttpRequestsShouldSetExpectedHeadersIfDeviceIpIsPresent() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .banner(Banner.builder().format(singletonList(Format.builder().w(300).h(250).build())) - .id("banner_id").build()) - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", - "tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7", - "adoceanmyaozpniqismex")))) - .build())) - .test(1) - .device(Device.builder().ip("192.168.1.1").build()) - .site(Site.builder().page("http://www.example.com").build()) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue().getFirst().getHeaders()).isNotNull() - .extracting(Map.Entry::getKey, Map.Entry::getValue) - .containsExactly(tuple(HttpUtil.CONTENT_TYPE_HEADER.toString(), HttpUtil.APPLICATION_JSON_CONTENT_TYPE), - tuple(HttpUtil.ACCEPT_HEADER.toString(), HttpHeaderValues.APPLICATION_JSON.toString()), - tuple(HttpUtil.X_FORWARDED_FOR_HEADER.toString(), "192.168.1.1"), - tuple(HttpUtil.REFERER_HEADER.toString(), "http://www.example.com")); - } - - @Test - public void makeHttpRequestsShouldSetExpectedHeadersIfDeviceIpv6IsPresent() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7", - "adoceanmyaozpniqismex")))) - .build())) - .test(1) - .device(Device.builder().ipv6("2001:0db8:85a3:0000:0000:8a2e:0370:7334").build()) - .site(Site.builder().page("http://www.example.com").build()) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue().getFirst().getHeaders()).isNotNull() - .extracting(Map.Entry::getKey, Map.Entry::getValue) - .containsExactly(tuple(HttpUtil.CONTENT_TYPE_HEADER.toString(), HttpUtil.APPLICATION_JSON_CONTENT_TYPE), - tuple(HttpUtil.ACCEPT_HEADER.toString(), HttpHeaderValues.APPLICATION_JSON.toString()), - tuple(HttpUtil.X_FORWARDED_FOR_HEADER.toString(), "2001:0db8:85a3:0000:0000:8a2e:0370:7334"), - tuple(HttpUtil.REFERER_HEADER.toString(), "http://www.example.com")); - } - - @Test - public void makeBidsShouldReturnErrorIfResponseBodyCouldNotBeParsed() throws JsonProcessingException { - // given - final BidderCall httpCall = givenHttpCall(null, ""); - - // when - final Result> result = target.makeBids(httpCall, null); - - // then - assertThat(result.getErrors()).hasSize(1) - .allSatisfy(error -> { - assertThat(error.getType()).isEqualTo(bad_server_response); - assertThat(error.getMessage()) - .startsWith("Failed to decode: No content to map due to end-of-input"); - }); - assertThat(result.getValue()).isEmpty(); - } - - @Test - public void makeBidsShouldReturnCorrectBidderBid() throws JsonProcessingException { - // given - final BidRequest bidRequest = BidRequest.builder() - .imp(singletonList(Imp.builder() - .id("impId") - .build())) - .build(); - final List adoceanResponseAdUnit = asList(adoceanResponseCreator(identity()), - adoceanResponseCreator(response -> response.id("adoceanmyaozpniqis"))); - - final BidderCall httpCall = givenHttpCall(null, mapper.writeValueAsString(adoceanResponseAdUnit)); - - // when - final Result> result = target.makeBids(httpCall, bidRequest); - - // then - final String adm = """ - \s""".formatted("https://win-url.com", "https://stats-url.com"); - - final BidderBid expected = BidderBid.of( - Bid.builder() - .id("ad") - .impid("ao-test") - .adm(adm) - .price(BigDecimal.valueOf(1)) - .crid("0af345b42983cc4bc0") - .w(300) - .h(250) - .build(), - BidType.banner, "EUR"); - assertThat(result.getValue().getFirst().getBid().getAdm()).isEqualTo(adm); - assertThat(result.getErrors()).isEmpty(); - assertThat(result.getValue()).doesNotContainNull().hasSize(1).element(0).isEqualTo(expected); - } - - @Test - public void makeBidsShouldReturnEmptyListOfBids() throws JsonProcessingException { - // given - final BidRequest bidRequest = BidRequest.builder() - .imp(singletonList(Imp.builder() - .id("impId") - .build())) - .build(); - final List adoceanResponseAdUnit = asList( - adoceanResponseCreator(response -> response.error("true")), - adoceanResponseCreator(response -> response.id("adoceanmyaozpniqis"))); - - final BidderCall httpCall = givenHttpCall(null, mapper.writeValueAsString(adoceanResponseAdUnit)); - - // when - final Result> result = target.makeBids(httpCall, bidRequest); - - // then - assertThat(result.getErrors()).isEmpty(); - assertThat(result.getValue()).isEqualTo(Collections.emptyList()); - } - - @Test - public void makeHttpRequestsShouldBuildUrlIfAppIsPresent() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7", - "adoceanmyaozpniqismex")))) - .build())) - .test(1) - .app(App.builder().name("name").bundle("bundle").domain("domain").build()) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue()).hasSize(1) - .extracting(HttpRequest::getUri) - .containsExactlyInAnyOrder("https://myao.adocean.pl/_10000000/ad.json?pbsrv_v=1.3.0" - + "&id=tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7&nc=1&nosecure=1" - + "&aid=adoceanmyaozpniqismex%3Aao-test&gdpr_consent=consent" - + "&gdpr=1&app=1&appname=name&appbundle=bundle&appdomain=domain"); - } - - @Test - public void makeHttpRequestsShouldBuildUrlIfDeviceWithIfaIsPresent() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7", - "adoceanmyaozpniqismex")))) - .build())) - .test(1) - .device(Device.builder().ifa("ifa").os("os").osv("osv").model("model").make("make").build()) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue()).hasSize(1) - .extracting(HttpRequest::getUri) - .containsExactlyInAnyOrder("https://myao.adocean.pl/_10000000/ad.json?pbsrv_v=1.3.0" - + "&id=tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7" - + "&nc=1&nosecure=1&aid=adoceanmyaozpniqismex%3Aao-test" - + "&gdpr_consent=consent&gdpr=1&ifa=ifa&devos=os&devosv=osv&devmodel=model&devmake=make"); - } - - @Test - public void makeHttpRequestsShouldBuildUrlIfDeviceWithIfaIsNotPresent() { - // given - final BidRequest bidRequest = BidRequest.builder() - .user(User.builder() - .ext(ExtUser.builder() - .consent("consent").build()) - .build()) - .imp(singletonList(Imp.builder() - .id("ao-test") - .ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7", - "adoceanmyaozpniqismex")))) - .build())) - .test(1) - .device(Device.builder().dpidmd5("dpidmd5").os("os").osv("osv").model("model").make("make").build()) - .build(); - - // when - final Result>> result = target.makeHttpRequests(bidRequest); - - // then - assertThat(result.getValue()).hasSize(1) - .extracting(HttpRequest::getUri) - .containsExactlyInAnyOrder("https://myao.adocean.pl/_10000000/ad.json?pbsrv_v=1.3.0" - + "&id=tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7" - + "&nc=1&nosecure=1&aid=adoceanmyaozpniqismex%3Aao-test" - + "&gdpr_consent=consent&gdpr=1&dpidmd5=dpidmd5&devos=os&devosv=osv" - + "&devmodel=model&devmake=make"); - } - - private static AdoceanResponseAdUnit adoceanResponseCreator( - Function adoceanCustomizer) { - return adoceanCustomizer.apply(AdoceanResponseAdUnit.builder() - .id("ad") - .price("1") - .winUrl("https://win-url.com") - .statsUrl("https://stats-url.com") - .code(" ") - .currency("EUR") - .width("300") - .height("250") - .crid("0af345b42983cc4bc0") - .error("false")) - .build(); - } - - private static BidRequest givenBidRequest( - Function bidRequestCustomizer, - Function impCustomizer) { - - return bidRequestCustomizer.apply(BidRequest.builder() - .imp(singletonList(givenImp(impCustomizer)))) - .build(); - } - - private static BidRequest givenBidRequest(Function impCustomizer) { - return givenBidRequest(identity(), impCustomizer); - } - - private static Imp givenImp(Function impCustomizer) { - return impCustomizer.apply(Imp.builder() - .id("123") - .banner(Banner.builder().id("banner_id").build()).ext(mapper.valueToTree(ExtPrebid.of(null, - ExtImpAdocean.of("myao.adocean.pl", "tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7", - "adoceanmyaozpniqismex"))))) - .build(); - } - - private static BidderCall givenHttpCall(String requestBody, String responseBody) - throws JsonProcessingException { - return BidderCall.succeededHttp( - HttpRequest.builder() - .body(mapper.writeValueAsBytes(requestBody)) - .uri("https://myao.adocean.pl/_10000000/ad.json?aid=ad%3Aao-test&gdpr=1&gdpr_consent=consent" - + "&nc=1&nosecure=1&pbsrv_v=1.0.0") - .build(), - HttpResponse.of(200, null, responseBody), null); - } -} diff --git a/src/test/java/org/prebid/server/bidder/smarthub/SmarthubBidderTest.java b/src/test/java/org/prebid/server/bidder/smarthub/SmarthubBidderTest.java index 3f5630718e2..c9defbbd2e8 100644 --- a/src/test/java/org/prebid/server/bidder/smarthub/SmarthubBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/smarthub/SmarthubBidderTest.java @@ -17,7 +17,6 @@ import org.prebid.server.bidder.model.HttpResponse; import org.prebid.server.bidder.model.Result; import org.prebid.server.proto.openrtb.ext.ExtPrebid; -import org.prebid.server.proto.openrtb.ext.request.adocean.ExtImpAdocean; import org.prebid.server.proto.openrtb.ext.request.smarthub.ExtImpSmarthub; import org.prebid.server.proto.openrtb.ext.response.BidType; import org.prebid.server.proto.openrtb.ext.response.ExtBidResponse; @@ -178,7 +177,7 @@ public void makeBidsShouldReturnErrorIfExtIncorrect() throws JsonProcessingExcep // given final BidderCall httpCall = givenHttpCall(givenBidRequest(identity()), mapper.writeValueAsString(givenBidResponse(builder -> builder.ext(mapper.valueToTree( - ExtPrebid.of(null, ExtImpAdocean.of("someEmitterDomain", "someMasterId", "someSlaveID"))))))); + ExtPrebid.of(null, ExtImpSmarthub.of("someEmitterDomain", "someMasterId", "someSlaveID"))))))); // when final Result> result = target.makeBids(httpCall, null); diff --git a/src/test/java/org/prebid/server/it/AdoceanTest.java b/src/test/java/org/prebid/server/it/AdoceanTest.java deleted file mode 100644 index d1b0da1f1fc..00000000000 --- a/src/test/java/org/prebid/server/it/AdoceanTest.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.prebid.server.it; - -import com.github.tomakehurst.wiremock.client.WireMock; -import io.restassured.response.Response; -import org.json.JSONException; -import org.junit.jupiter.api.Test; -import org.prebid.server.model.Endpoint; - -import java.io.IOException; - -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static java.util.Collections.singletonList; - -public class AdoceanTest extends IntegrationTest { - - @Test - public void openrtb2AuctionShouldRespondWithBidsFromAdocean() throws IOException, JSONException { - - WIRE_MOCK_RULE.stubFor(get(WireMock.urlPathMatching("/adocean-exchange/_[0-9]*/ad.json")) - .willReturn(aResponse().withBody(jsonFrom("openrtb2/adocean/test-adocean-bid-response-1.json")))); - - // when - final Response response = responseFor("openrtb2/adocean/test-auction-adocean-request.json", - Endpoint.openrtb2_auction); - - // then - assertJsonEquals("openrtb2/adocean/test-auction-adocean-response.json", response, singletonList("adocean")); - } -} diff --git a/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-adocean-bid-response-1.json b/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-adocean-bid-response-1.json deleted file mode 100644 index 24304dd8da4..00000000000 --- a/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-adocean-bid-response-1.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "id": "adoceanmyaozpniqismex", - "price": "10", - "winurl": "https://win-url.com", - "statsUrl": "https://stats-url.com", - "code": " ", - "currency": "USD", - "width": "300", - "height": "250", - "crid": "0af345b42983cc4bc0", - "error": "false" - } -] \ No newline at end of file diff --git a/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-request.json b/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-request.json deleted file mode 100644 index eccdf164b32..00000000000 --- a/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-request.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "request_id", - "imp": [ - { - "id": "imp_id", - "banner": { - "w": 300, - "h": 250 - }, - "ext": { - "prebid": { - "bidder": { - "adocean": { - "emitterPrefix": "myao", - "masterId": "tmYF.DMl7ZBq.Nqt2Bq4FutQTJfTpxCOmtNPZoQUDcL.G7", - "slaveId": "adoceanmyaozpniqismex" - } - } - } - } - } - ], - "tmax": 5000, - "regs": { - "ext": { - "gdpr": 0 - } - } -} diff --git a/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-response.json b/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-response.json deleted file mode 100644 index ea7c23c5bb4..00000000000 --- a/src/test/resources/org/prebid/server/it/openrtb2/adocean/test-auction-adocean-response.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id": "request_id", - "seatbid": [ - { - "bid": [ - { - "id": "adoceanmyaozpniqismex", - "impid": "imp_id", - "exp": 300, - "price": 10, - "adm": " ", - "crid": "0af345b42983cc4bc0", - "w": 300, - "h": 250, - "ext": { - "prebid": { - "type": "banner", - "meta": { - "adaptercode": "adocean" - } - }, - "origbidcpm": 10, - "origbidcur": "USD" - } - } - ], - "seat": "adocean", - "group": 0 - } - ], - "cur": "USD", - "ext": { - "responsetimemillis": { - "adocean": "{{ adocean.response_time_ms }}" - }, - "tmaxrequest": 5000, - "prebid": { - "auctiontimestamp": 0 - } - } -} diff --git a/src/test/resources/org/prebid/server/it/test-application.properties b/src/test/resources/org/prebid/server/it/test-application.properties index 2a3ffe37083..f456fd69e27 100644 --- a/src/test/resources/org/prebid/server/it/test-application.properties +++ b/src/test/resources/org/prebid/server/it/test-application.properties @@ -62,8 +62,6 @@ adapters.admixer.endpoint=http://localhost:8090/admixer-exchange adapters.adnuntius.enabled=true adapters.adnuntius.endpoint=http://localhost:8090/adnuntius-exchange adapters.adnuntius.eu-endpoint=http://localhost:8090/adnuntius-exchange-eu -adapters.adocean.enabled=true -adapters.adocean.endpoint=http://localhost:8090/adocean-exchange adapters.elementaltv.enabled=true adapters.elementaltv.endpoint=http://localhost:8090/elementaltv-exchange adapters.adpone.enabled=true