Understanding the JW Player RTD Module in Prebid: A Practical Guide for Publishers
Maximizing video ad yield is a challenge for publishers, especially as buyers demand richer contextual data to inform their bids. Out-of-the-box header bidding often lacks the detailed, dynamic information that can make each video impression more valuable.
The JW Player RTD (Real-Time Data) module for Prebid lets publishers leverage contextual and performance signals from their JW Player video content, bringing those rich video attributes directly into the auction. This article breaks down how the module works and how to make it a practical part of your video ad stack, ensuring more competitive bids and higher revenue.
What Is the JW Player RTD Module and Why Does It Matter?
The JW Player RTD module bridges the gap between your video player and the ad auction, providing buyers with deeper context about each impression. It supplies key data points—like content title, URL, description, and custom segments—at bid time, enabling more precise targeting and higher demand for your video inventory.
Example: How Contextual Signals Impact Header Bidding
Imagine two videos: one is a trending news interview, the other a niche how-to guide. Without contextual data, DSPs may price both equally, missing relevance cues. With JW Player RTD, each bid request exposes unique details about the actual content, helping buyers value impressions more intelligently and often pushing CPMs higher.
Step-by-Step: Implementing JW Player RTD in Prebid.js
Adding JW Player’s real-time data to your Prebid setup requires a few explicit steps, but brings actionable improvements to auction quality. Here’s how to get started:
1. Enable the JW Player RTD Module in Your Prebid Build
Use your build tool to include the JW Player RTD provider—this is essential as the module isn’t included by default. The typical Gulp command is:
gulp build –modules=jwplayerRtdProvider
This ensures the module’s code is part of your Prebid.js bundle.
2. Register JW Player as a Real-Time Data Provider
Within your Prebid configuration, add JW Player as a data provider using setConfig. Here’s what this means for your code:
pbjs.setConfig({
realTimeData: {
auctionDelay: 100,
dataProviders: [{
name: ‘jwplayer’,
waitForIt: true,
params: {
mediaIDs: [‘abc’, ‘def’],
overrideContentId: ‘always’,
overrideContentUrl: ‘always’,
overrideContentTitle: ‘always’,
overrideContentDescription: ‘always’
}
}]
}
});
Key options include:
– auctionDelay: Sets how long the auction should wait (in ms) for JW Player to fetch context.
– waitForIt: Ensures the auction won’t proceed until JW Player RTD returns relevant data or the timeout hits.
– mediaIDs: Prefetch targeting details for specific content—critical for publishers who want to control which video assets get enhanced targeting.
Setting ‘overrideContent…’ options to ‘always’ means JW Player’s data will override other values—important if you want the freshest information in each auction.
3. Attach Media IDs to Ad Units for Granular Targeting
When defining ad units, pass unique context per ad placement. In each adUnit, you can set ‘ortb2Imp.ext.data.jwTargeting’ fields, such as:
jwTargeting: {
playerDivId: ‘player1’,
mediaID: ‘mediaXYZ’
}
This links the video creative and player instance directly to the impression, letting JW Player RTD assign exact content information to each bid request.
Understanding the Data and How Buyers Use It
Every bid request enriched by JW Player RTD follows the OpenRTB standard, making this data easily ingestible by DSPs and SSPs. It typically includes the video’s unique ID, title, URL, description, and JW Player’s proprietary audience or content segments.
What a Bid Request Looks Like in Practice
A Prebid bid adapter will see oRTB parameters such as:
– ortb2.site.content.id: JW Player’s unique content identifier
– ortb2.site.content.title: Video title
– ortb2.site.content.url: Direct video URL
– ortb2.site.content.ext.description: Short content description
– ortb2.site.content.data: Array of segment objects categorized under JW Player’s taxonomy
Example:
ortb2: {
site: {
content: {
id: ‘jw_abc123’,
title: ‘How to Make Sourdough’,
url: ‘https://cdn.yoursite.com/video.mp4’,
ext: { description: ‘Step-by-step bread making’ },
data: [{
name: ‘jwplayer.com’,
ext: { segtax: 502, cids: [‘abc123’] },
segment: [{ id: ‘101’ }, { id: ‘999’ }]
}]
}
}
}
This format ensures demand partners can filter, target, and bid based on real-time, video-level context—which drives up fill rates and effective CPMs.
Common Implementation Pitfalls and Best Practices
Operationalizing JW Player RTD is powerful but comes with a few potential missteps that publishers should watch for.
Pitfall: Not Setting waitForIt or auctionDelay Properly
If you omit ‘waitForIt’ or don’t specify an appropriate ‘auctionDelay’, the auction may proceed before targeting data is ready. This leaves money on the table, as bidders will work with incomplete information. Always configure these options to balance latency and data completeness.
Pitfall: Using Outdated or Incorrect Media IDs
Media IDs passed in configs should match actual content IDs in JW Player. Incorrect mapping will break enrichment, sending generic or no data to the auction. Keep these lists clean and synchronized with your video library.
Best Practice: Use adUnit-Level Targeting for Precision
Whenever possible, set jwTargeting at the adUnit level. This approach tailors data for each placement, which is especially valuable for sites featuring diverse or frequently updated content.
What this means for publishers
Integrating JW Player RTD into your Prebid stack gives publishers more direct influence over how their video inventory is valued. By surfacing detailed contextual signals and content-specific identifiers, you ensure buyers have everything needed to make informed, higher-value bids. This means improved fill rates, increased eCPM, and greater transparency into how and why auctions perform as they do.
Practical takeaway
For publisher ad ops and tech teams, the JW Player RTD module is a strategic upgrade for any video monetization playbook. Plan your rollout by identifying priority media IDs to target, coordinating with your JW Player and Prebid.js configurations, and ensuring your site’s Prebid implementation properly delays auctions for real-time data enrichment.
Invest in establishing workflows to update media IDs as you add or rotate video assets. Test the setup with your demand partners—some may need to activate or optimize their use of JW Player data on their side.
Above all, monitor performance before and after activation: look for improvements in CPM and fill across targeted video placements, and fine-tune your auction delay and targeting logic for optimal balance between latency and yield.