Skip to content

Commit

Permalink
Add Adman bidder (#879)
Browse files Browse the repository at this point in the history
  • Loading branch information
AndriyPavlyuk committed Oct 5, 2020
1 parent 66f574b commit ddaf5e9
Show file tree
Hide file tree
Showing 21 changed files with 919 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import java.util.stream.Collectors;

/**
* AdgenerationBidder {@link Bidder} implementation.
* Adgeneration {@link Bidder} implementation.
*/
public class AdgenerationBidder implements Bidder<Void> {

Expand Down
24 changes: 24 additions & 0 deletions src/main/java/org/prebid/server/bidder/adman/AdmanBidder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.prebid.server.bidder.adman;

import com.iab.openrtb.request.Imp;
import org.prebid.server.bidder.Bidder;
import org.prebid.server.bidder.OpenrtbBidder;
import org.prebid.server.json.JacksonMapper;
import org.prebid.server.proto.openrtb.ext.request.adman.ExtImpAdman;

/**
* Adman {@link Bidder} implementation.
*/
public class AdmanBidder extends OpenrtbBidder<ExtImpAdman> {

public AdmanBidder(String endpointUrl, JacksonMapper mapper) {
super(endpointUrl, RequestCreationStrategy.REQUEST_PER_IMP, ExtImpAdman.class, mapper);
}

@Override
protected Imp modifyImp(Imp imp, ExtImpAdman impExt) {
return imp.toBuilder()
.tagid(impExt.getTagId())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import java.util.stream.Collectors;

/**
* AdmixerBidder {@link Bidder} implementation.
* Admixer {@link Bidder} implementation.
*/
public class AdmixerBidder implements Bidder<BidRequest> {

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/prebid/server/bidder/dmx/DmxBidder.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
import java.util.Objects;

/**
* DmxBidder {@link Bidder} implementation.
* Dmx {@link Bidder} implementation.
*/
public class DmxBidder implements Bidder<BidRequest> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import java.util.stream.Collectors;

/**
* MobilefuseBidder {@link Bidder} implementation.
* Mobilefuse {@link Bidder} implementation.
*/
public class MobilefuseBidder implements Bidder<BidRequest> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import java.util.stream.Collectors;

/**
* ZeroclickfraudBidder {@link Bidder} implementation.
* Zeroclickfraud {@link Bidder} implementation.
*/
public class ZeroclickfraudBidder implements Bidder<BidRequest> {

Expand All @@ -44,6 +44,7 @@ public class ZeroclickfraudBidder implements Bidder<BidRequest> {

private static final String HOST = "{{Host}}";
private static final String SOURCE_ID = "{{SourceId}}";

private final String endpointTemplate;
private final JacksonMapper mapper;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.prebid.server.proto.openrtb.ext.request.adman;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Value;

/**
* Defines the contract for bidrequest.imp[i].ext.adman
*/
@AllArgsConstructor(staticName = "of")
@Value
public class ExtImpAdman {

@JsonProperty("TagID")
String tagId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package org.prebid.server.spring.config.bidder;

import org.prebid.server.bidder.BidderDeps;
import org.prebid.server.bidder.adman.AdmanBidder;
import org.prebid.server.json.JacksonMapper;
import org.prebid.server.spring.config.bidder.model.BidderConfigurationProperties;
import org.prebid.server.spring.config.bidder.model.UsersyncConfigurationProperties;
import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler;
import org.prebid.server.spring.config.bidder.util.BidderInfoCreator;
import org.prebid.server.spring.config.bidder.util.UsersyncerCreator;
import org.prebid.server.spring.env.YamlPropertySourceFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
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 javax.validation.constraints.NotBlank;

@Configuration
@PropertySource(value = "classpath:/bidder-config/adman.yaml", factory = YamlPropertySourceFactory.class)
public class AdmanConfiguration {

private static final String BIDDER_NAME = "adman";

@Value("${external-url}")
@NotBlank
private String externalUrl;

@Autowired
private JacksonMapper mapper;

@Autowired
@Qualifier("admanConfigurationProperties")
private BidderConfigurationProperties configProperties;

@Bean("admanConfigurationProperties")
@ConfigurationProperties("adapters.adman")
BidderConfigurationProperties configurationProperties() {
return new BidderConfigurationProperties();
}

@Bean
BidderDeps admanBidderDeps() {
final UsersyncConfigurationProperties usersync = configProperties.getUsersync();

return BidderDepsAssembler.forBidder(BIDDER_NAME)
.withConfig(configProperties)
.bidderInfo(BidderInfoCreator.create(configProperties))
.usersyncerCreator(UsersyncerCreator.create(usersync, externalUrl))
.bidderCreator(() -> new AdmanBidder(configProperties.getEndpoint(), mapper))
.assemble();
}
}
25 changes: 25 additions & 0 deletions src/main/resources/bidder-config/adman.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
adapters:
adman:
enabled: false
endpoint: http://pub.admanmedia.com/?c=o&m=ortb
pbs-enforces-gdpr: true
pbs-enforces-ccpa: true
modifying-vast-xml-allowed: true
deprecated-names:
aliases:
meta-info:
maintainer-email: prebid@admanmedia.com
app-media-types:
- banner
- video
site-media-types:
- banner
- video
supported-vendors:
vendor-id: 149
usersync:
url: https://sync.admanmedia.com/pbs.gif?gdpr={{gdpr}}&gdpr_consent={{gdpr_consent}}&us_privacy={{us_privacy}}&redir=
redirect-url: /setuid?bidder=adman&gdpr={{gdpr}}&gdpr_consent={{gdpr_consent}}&us_privacy={{us_privacy}}&uid=[UID]
cookie-family-name: adman
type: redirect
support-cors: false
14 changes: 14 additions & 0 deletions src/main/resources/static/bidder-params/adman.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Adman Adapter Params",
"description": "A schema which validates params accepted by the Adman adapter",

"type": "object",
"properties": {
"TagID": {
"type": "string",
"description": "An ID which identifies the adman ad tag"
}
},
"required" : [ "TagID" ]
}
Loading

0 comments on commit ddaf5e9

Please sign in to comment.