NAV

RTB House

Introduction

Hello!
This document will lead you through the integration process with RTB House's Prebid Server endpoint.

RTB House provides a publicly available Prebid Server adapter and all related files (config files, test files etc.) as a part of Prebid.org's Prebid Server Open Source Project.

Requirements

What will you receive from RTB House:

We will need you to

Server-side integration

Important note

The below procedure is also valid for Prebid Server hosting companies working with multiple publishers or SSPs.

Java Version

Go Version

Client-side configuration

For detailed client-side Prebid.js configuration, please refer to https://inventoryguidelines.rtbhouse.com/prebid-integration/ This document contains only the additions specific to Prebid Server configuration.

prebid.js bundle file

Prebid config

Complete example

The following example runs a real Prebid Server communication (click Result tab to see the test page).
Please bear in mind that the example contains some hardcoded parameters that have to be changed to something realistic depending on your environment. Additionally, the server URL used is not intended for production usage.
There are hardcoded values for endpoint and syncEndpoint belonging to RTB House's Prebid Server endpoints, which you need to adjust.
You may also have to get rid of targetingControls config and probably you have to adjust to your adserver currency (the currency your line items are set at; see the currency object).
There's also a static GDPR config given (see the consentManagement object) which needs to be changed to 'iab' without the static GDPR parameters which were included here only for proper functioning in the testing sandbox.
See Prebid's documentation of how to use the GDPR Consent Management and GDPR Enforcement modules or refer to the Prebid.js integration page.

NOTICE: the userSync and consentManagement config objects are extremely important to RTB House's bidder and cookie sync endpoints. Cookies and GDPR must be properly configured in order to work correctly.

targetingControls is used here to only send hb_source KVP to the adserver. If you don't use it, you are free to get rid of it.

priceGranularity and currency configuration objects depend on the publisher's adserver Prebid line items setup.

Debugging

The below examples are real request payloads and their corresponding responses taken on a real web page which has the adserver currency set to EUR.
This is also an example of how currency conversion is taken in Prebid.js and Prebid Server. The setup follows the general rules as described on Prebid.js Currency Module documentation and Prebid Server Currency documentation.

Request/response without debug option

Example request

Notice the cur property set to ["EUR"].
Notice the site.publisher.id set to the value of s2sConfig.accountId which was given as one of the params to pbjs.setConfig which is also equal to the value given in app settings YAML file for Prebid Server (accounts.id).

Example response

Notice the cur property set to "EUR" The price seen in seatbid[].bid[].price is in the currency depicted in cur.
The RTB House bidder only accepts USD as currency so currency converter went into effect. This may be seen in seatbid[].bid[].ext.origbidcpm = 3.3875384654992757 and seatbid[].bid[].ext.origbidcur = "USD".
Another thing worth mentioning is that the targeting keys returned by the Prebid Server are ready to use by the client - they are already reconverted to EUR (compare "price": 3.197 and ext.prebid.targeting.hb_pb = "3.10" - rounding the price in EUR, not the price of USD 3.3875)

Request/response with debug option

Example request

Notice the ext.prebid.debug set to true.

Example response

Notice the ext.debug object containing the whole request in ext.debug.resolvedrequest (most of the data are copied from the original request) and the detailed S2S communication (request & response) between Prebid Server and the Bidder in ext.debug.httpcalls.rtbhouse[] object.
Details contain:

Details of S2S communication

Example request

The below example contains exactly what the above mentioned ext.debug.httpcalls.rtbhouse[].requestbody contains - it is only JSON-parsed.
Notice the user.buyeruid set to the exact same value as the cookie u set by the bidder's domain (creativecdn.com). This is the only place where you can see the cookie value as a plain text.
The cookie sent to the Prebid Server endpoint does not contain the Bidder's cookie - it may be totally in a different domain. It contains a obfuscated set of cookie values along with some other information (see detailed description here).
Notice that the currency here is already as USD as this is the direct request to the Bidder.

Example response

Similar as requestbody above, here comes the parsed ext.debug.httpcalls.rtbhouse[].responsebody
Notice the cur: "USD" as the Bidder responds only in USD

Professor Prebid

Professor Prebid is a powerful tool for debugging prebid & prebid server setup. You may get it as a Chrome extension: https://chrome.google.com/webstore/search/professor%20prebid

A brief manual: https://docs.prebid.org/tools/professor-prebid.html

A few screenshots taken on a real web page gazetkowo.pl with the Prebid Server setup according to the above rules and with Professor Prebid extension: