Set up PB for JW Player mediation

Configure your Player Bidding implementation with JW Player mediation.

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.

👍

IMPORTANT

• 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 JW Player 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.



Implementation

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

📘

TIP

If you prefer, you can also set up Player Bidding through your JW Player dashboard.


  1. Be sure that you have satisfied all the requirements for PB.
  2. Within setup() of an embedded cloud-hosted or self-hosted JW Player web player, add an advertising object that defines whether IMA or VAST 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.
"advertising": {
    "client": "googima",
    "adscheduleid": "{id}",
}
"advertising": {
    "client": "vast",
    "adscheduleid": "{id}",
}

  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 used as a fallback tag. 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.
"schedule": [{
    "offset": "pre",
    "tag": "{fallback_ad_tag_url}"
}]

  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 floor pricefloor price - The value (in cents) that a bid must exceed to qualify to win an auction (floorPriceCents).

📘

TIP

Determining the best floor price depends upon various factors. If you need assistance determining the best floor price, please consult with your JW Player representative or SSP partner.

"settings": {
    "mediationLayerAdServer": "jwp",
    "floorPriceCents": {floor_price}
}

  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.

👍

IMPORTANT

With the GDPR improvements introduced in Prebid.js 4, JW Player 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 CMP guidance.

"settings": {
    ...
    "consentManagement": {
        "gdpr": {
            "cmpApi": "iab",
            "rules": {
                "purpose": "basicAds",
                "enforcePurpose": true,
                "enforceVendor": true
            },
            "defaultGdprScope": true,
            "timeout": 0 // GDPR timeout 0ms
        },
        "usp": {
            "cmpApi": "iab",
            "timeout": 0 // US Privacy timeout 0ms
        }
    }
}


Full code sample

// Instantiate the player
jwplayer("myElement").setup({
    // Define the playlist or video.
    "playlist": "{playlist_url or video_url}",
    "advertising": {
        // Define the ad client: googima or vast
        "client": "googima",
        "adscheduleid": "{id}",
        /* Set the ad to play as a preroll.
           Define a fallback ad tag.
        */
        "schedule": [{
            "offset": "pre",
            "tag": "{fallback_ad_tag_url}"
        }],
        "bids": {
            // Configure the ad partners
            "bidders": [{
                "id": "{section_id}",
                "name": "MediaGrid",
                "pubid": "{publisher_id}"
            }, {
                "id": "{section_id}",
                "name": "EMX",
                "pubid": "{publisher_id}"
            }],
            /* Set the mediation layer.
               Define the floor price.
            */
            "settings": {
                "mediationLayerAdServer": "jwp",
                "floorPriceCents": {floor_price},
                "consentManagement": {
                    "gdpr": {
                        "cmpApi": "iab",
                        "rules": {
                            "purpose": "basicAds",
                            "enforcePurpose": true,
                            "enforceVendor": true
                        },
                        "defaultGdprScope": true,
                        "timeout": 0 // GDPR timeout 0ms
                    },
                    "usp": {
                        "cmpApi": "iab",
                        "timeout": 0 // US Privacy timeout 0ms
                    }
                }
            }
        }
    }
});


Additional settings

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

advertising

For explanations of each property listed below, see: advertising.

PropertyVASTIMA
autoplayadsmuted
bids
See: advertising.bids
companiondiv
See: advertising.companiondiv
conditionaladoptout
creativeTimeout
forceNonLinearFullSlot
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

advertising.bids

For an explanation of the property listed below, see: advertising.bids.

PropertyVASTIMA
bidOnBreaks                                           
settings
See: advertising.bids.settings

advertising.bids.settings

For explanations of each property listed below, see: advertising.bids.settings.

PropertyVASTIMA
bidTimeout                                              
floorPriceCurrency

advertising.companiondiv

For explanations of each property listed below, see: advertising.companiondiv.

PropertyVASTIMA
height                                                      
id
width

advertising.rules

For explanations of each property listed below, see: advertising.rules.

PropertyVASTIMA
deferAds                                                 
startOn
startOnSeek
timeBetweenAds

advertising.schedule

For explanations of each property listed below, see: advertising.schedule.

PropertyVASTIMA
customParams                                       
type

autoPause

For explanations of each property listed below, see: autoPause.

PropertyVASTIMA
pauseAds                                                
viewability

intl.{lang}.advertising

For explanations of each property listed below, see: intl.{lang}.advertising.

PropertyVASTIMA
admessage                                             
cuetext
loadingAd
skipmessage
skiptext 


Did this page help you?