<img src="https://img.shields.io/badge/%20-ENTERPRISE-%23B10031" style="float:left"/><br />

Player Bidding (PB) connects your digital video inventory directly to advertising demand sources, increasing competition for your inventory to boost your ad yield. By configuring the `advertising` object of the player, you can access the benefits of player bidding. You can use either a cloud-hosted or self-hosted player.


  • Due to the potential impact on performance and user experience, while the player is waiting for the bidding process to complete, the `playAd()` method is not supported when using Player Bidding.

  • If you have configured advertising settings for your player in your JWP dashboard, changes made to the player's `advertising` object **override any dashboard advertising settings**. To maintain any dashboard advertising settings, be sure to include all existing dashboard advertising configurations within the advertising object.

<br /> <hr />

## Implementation

Use the following steps and code example to enable Player Bidding.


If you prefer, you can also [set up Player Bidding](πŸ”—ο»Ώ) through your JWP dashboard.

<br />

  1. Be sure that you have satisfied all the [requirements](πŸ”—ο»Ώ) for PB.

  2. Within `setup()` of an embedded [cloud-hosted or self-hosted JWP web player](πŸ”—ο»Ώ), add an `advertising` object that defines IMA ads will be served. Be sure to replace `{id}` with a randomly-generated, eight-character, alpha-numeric value. This enables you to run reports for this advertising setup.


<br />

  1. Add the `schedule` object. At the minimum, you must assign an ad tag to the `tag` property and assign `pre` to the `offset` property.

    The ad tag is the tag to which PB appends parameters. These parameters are added to the GAM master video ad tag requested by IMA. PB supports configuring `offset` for mid-roll and post-roll breaks. Since the auction happens before video playback begins and bids may not be valid when a mid-roll or post-roll ad break occurs, we recommend configuring `offset` for pre-roll ad breaks.


<br />

  1. Add the [bids object](πŸ”—ο»Ώ).

  2. Within the `bids` object, configure the [bidders object](πŸ”—ο»Ώ) for an ad partner. You can combine multiple ad partners into a single array of objects.

  3. Within the `bids` object, configure the [settings object](πŸ”—ο»Ώ). Be sure to define the <<glossary:floor price>> (`floorPriceCents`) and <<glossary:price bucket>> (`buckets`).

    When defining price buckets, define the minimum (`min`) and maximum (`max`) price bucket values. Use `increment` to define the size of each price bucket in cents. <br />


    Determining the best floor price depends upon various factors. If you need assistance determining the best floor price, please consult with your JWP representative or SSP partner. <br />


<br />

  1. **(Strongly recommended)** Within the `settings` object, add configure the [consentManagement object](πŸ”—ο»Ώ) to manage EU General Data Protection Regulation (GDPR) and California Consumer Privacy Act (CCPA) settings. <br />


    With the GDPR improvements introduced in <a href="https://prebid.org/blog/prebid-js-release-4-0/" target="_blank">Prebid.js 4</a>, JWP has updated its Player Bidding product to give you greater control over your GDPR settings. All publishers are expected to have a consent management platform (CMP) and understand how it works. Prebid.js offers some <a href="https://docs.prebid.org/dev-docs/cmp-best-practices.html" target="_blank">CMP guidance</a>. <br />


<br /> <hr />

## Full code sample


<br /> <hr />

## Additional settings

After implementing the basic PB setup, you can customize your implementation with any of these additional properties.

<br />

### advertising

For explanations of each property listed below, see: [advertising](πŸ”—ο»Ώ).

  • **autoplayadsmuted**

  • **companiondiv** _See: [advertising.companiondiv](πŸ”—ο»Ώ)_

  • **forceNonLineatFullSlot**

  • **loadVideoTimeout**

  • **locale**

  • **maxRedirects** _NOTE: A maximum redirect of 4-8 is recommended for maximum PB yield._

  • **placement**

  • **preloadAds**

  • **requestTimeout**

  • **rules** _See: [advertising.rules](πŸ”—ο»Ώ)_

  • **schedule** _See: [advertising.schedule](πŸ”—ο»Ώ)_

  • **vastLoadTimeout**

  • **vpaidcontrols**

  • **vpaidmode**

  • **withCredentials**

<br />

### advertising.bids

For an explanation of the property listed below, see: [advertising.bids](πŸ”—ο»Ώ).

  • **bidOnBreaks**

<br />

### advertising.bids.settings

For explanations of each property listed below, see: [advertising.bids.settings](πŸ”—ο»Ώ).

  • **bidTimeout**

  • **floorPriceCurrency**

<br />

### advertising.companiondiv

For explanations of each property listed below, see: [advertising.companiondiv](πŸ”—ο»Ώ).

  • **height**

  • **id**

  • **width**

<br />

### advertising.rules

For explanations of each property listed below, see: [advertising.rules](πŸ”—ο»Ώ).

  • **frequency**

  • **startOn**

  • **startOnSeek**

  • **timeBetweenAds**

<br />

### advertising.schedule

For explanations of each property listed below, see: [advertising.schedule](πŸ”—ο»Ώ).

  • **customParams**

  • **type**

<br />

### autoPause

For explanations of each property listed below, see: [autoPause](πŸ”—ο»Ώ).

  • **pauseAds**

  • **viewability**

<br />

### intl.{lang}.advertising

For explanations of each property listed below, see: [intl.{lang}.advertising](πŸ”—ο»Ώ).

  • **admessage**

  • **cuetext**

  • **loadingAd**

<br />

<!-- Removes the automatic page-to-page navigation at the bottom of the page -->

<style> .rm-Pagination { display: none; } </style>