Get Started with Prebid Server

This page has instructions for adding Prebid Server to Prebid.js.

For many publishers, client-side header bidding is a balancing act between the inclusion of demand partners and impact to the page.

Using Prebid Server, you can move demand partners server-side, eliminating most of the latency impact that comes with adding more partners.

This should help you make more money without sacrificing user experience.

Prebid Server is open source!
Prebid Server is an open source project. The source code is hosted under the Prebid organization on Github.

Step 1. Choose Your Server Host

  • If you plan to host Prebid Server on your own server, please skip to Step 2 below. If you do not have your own server, please choose from one of the Prebid.org members below to get started.

  • AppNexus
    • Go to the Prebid Server sign-up page and click the button to sign up.
    • Fill out the form details, including your email address.
    • When approved, you will receive an email with your assigned accountId. You will need this for configuring Prebid.js to use Prebid Server.
  • Rubicon Project
    • Please send an email to prebidserver@rubiconproject.com and proceed to Step 2 below. You do not have to wait for a verification email to get started.

Step 2. Download Prebid.js with Prebid Server enabled

  • Go to the Prebid.org download page, select all the demand adapters you want to work with, and include “Prebid Server”.

  • For example, if you want to use AppNexus, Index Exchange, and Rubicon with Prebid Server, select:
    • AppNexus
    • Index Exchange
    • Rubicon
    • Prebid Server
  • Then, click Get Custom Prebid.js and follow the instructions.

Step 3. Update your site with the new build of Prebid.js

Update your site’s hosted copy of Prebid.js to use the new build you just generated. (For example, you may host your copy on your site’s servers or using a CDN such as Fastly or Akamai.)

Step 4. Configure S2S bidder adapters

The Prebid Server settings (defined by the pbjs.setConfig method) go in the same anonymous function where you define your ad units. This method must be called before pbjs.requestBids.

The code in your Prebid configuration block should look something like the following. See the table below the code sample for definitions of the keys in the setS2SConfig object.

var pbjs = pbjs || {};

pbjs.que.push(function() {

    pbjs.setConfig({
        s2sConfig: {
            accountId: '1',
            enabled: true,
            bidders: ['appnexus', 'pubmatic'],
            timeout: 1000,
            adapter: 'prebidServer',
            endpoint: 'https://prebid.adnxs.com/pbs/v1/auction'
        }
    });

    var adUnits = [{
        code: '/19968336/header-bid-tag-1',
        sizes: sizes,
        bids: [{
            /* Etc. */
        }]
    }];
});

Fields in the setS2SConfig object:

Field Type Required? Description
accountId String X Prebid Server account ID
enabled Boolean X Enables S2S; default: false
bidders Array[String] X List of bidder codes; must have been enabled during Prebid.js build
timeout Number   Bidder timeout, in milliseconds; default: 1000
adapter String   Adapter code; default: "prebidServer"
endpoint String   Will override the default endpoint
cookieSet Boolean   Set to false to opt out of cookieset/link rewriting; default: true
secure Integer   Override Prebid Server’s determination of whether the request needs secure assets. Set to 1 to force secure assets on the response, or 0 for non-secure assets.

Additional cookieSet details
We recommend that users leave cookieSet enabled since it’s essential for server-to-server header bidding that we have a persistent cookie for improved cookie match rates. If set to false:
• Prebid.js will not overwrite all links on page to redirect through an AppNexus persistent cookie URL
• Prebid.js will not display a footer message on Safari indicating that AppNexus will be placing cookies on browsers that block 3rd party cookies