January 24, 2019
The sister Prebid Server projects are both busy and moving forward at different paces on different features. Sometimes a feature may exist in one implementation and not the other for an interim period. This page tracks known differences that may persist for longer than a couple of weeks.
- PBS-Java supports Currency conversion. PBS-Go has it implemented, but disabled by default(still under dev) issue 280, issue 760. PBS-Java PR 22
- PBS-Java supports IP-address lookup in certain scenarios around GDPR. See https://github.com/rubicon-project/prebid-server-java/blob/master/docs/developers/PrebidServerJava_GDPR_Requirements.pdf
- PBS-Java supports InfluxDB, Graphite and Prometheus, PBS-Go supports InfluxDB and Prometheus as metrics backend.
- PBS-Java has Circuit Breaker mechanism for database, http and geolocation requests. This can protect the server in scenarios where an external service becomes unavailable.
- PBS-Java supports
ext.prebid.cache.{bids,vastxml}.returnCreativefield to control creative presence in response (trueby default). - PBS-Java supports checking the latest currency rates details, for example update time. This information is exposed via /currency-rates endpoint on admin port.
- PBS-Java has a specific
host-cookieanduidscookie processing for all endpoints, that setsuids.HOST-BIDDERfromhost-cookieif first is absent or not equal to second. - PBS-Java has a specific
/cookie-syncbehaviour, that sets/setuidas usersync-url for host-bidder ifhost-cookiespecified butuids.HOST-BIDDERundefined or differs.
- PBS-Java removes null objects or empty strings (e.g. in Go
/auctionresponse bid object will have fieldhb_cache: ""whereas in Java it will be absent; alsodigitrust: nullin PBS Go is not there in PBS Java). PBS-Go Issue 476 - All adapters have been ported to use OpenRTB directly in PBS-Java. PBS-Go Facebook AudienceNetwork adapter Issue 211
- Java and Go adapter internal interface returns currency in different ways:
- in PBS-Go, the adapter sets BidResponse.currency, which is outside of each TypedBid.
- in PBS-Java, the adapter set BidderBid[N].currency.
- PBS-Go use "60 seconds buffer + {bid,imp,mediaType}TTL" approach to determine caching TTL period.
- PBS-Java has different names for system metrics. For example instead of
active_connectionsit usesvertx.http.servers.[IP]:[PORT].open-netsockets.count. See Metrics for details.
- PBS-Java supports geo location service interface to determine the country for incoming client request and provides a default implementation using MaxMind GeoLite2 Country database.
- Different checking of purpose IDs (1 -
Storage and access of information, 3 -Ad selection, delivery, reporting):- for
/auctionendpoint: in PBS-Java - doesn't support GDPR processing. - for
/openrtb2/{auction,amp}endpoint: in PBS-Java - 1 and 3 (for each bidder from request); in PBS-Go - doesn't support GDPR processing. - for
/cookie_syncendpoint: in PBS-Java - doesn't support GDPR processing; in PBS-Go - only 1 checked.
- for
- PBS-Java allows bidder to enforce GDPR processing. This information available in bidder meta info.