This page is for the integration of Prebid.JS connections only. For Prebid Server please consult the Prebid Server Integration Guide. |
Specification Support
Specification | Version | Last Update Date | Notes |
---|---|---|---|
Prebid.js | v9.51.0+ |
| v9.51.0 is the minimum Prebid.JS version the fwssp adapter was added |
IAB Content Category Taxonomy | v1 |
| IAB Content Categories are mapped to FreeWheel Global Industries |
Guide Version | Date | Author | Description |
---|---|---|---|
v1 |
| Admin | Initial Release |
|
|
Prebid.js is an open-source header bidding solution that enables publishers to implement header bidding on their websites and applications. It serves as a crucial technology in the programmatic advertising ecosystem, particularly for video advertising.
Prebid.js functions as a client-side JavaScript library that:
fwssp
adapter) to connect with different demand sourcesWith the sunsetting of SFX, any customers using an existing Prebid.JS will need to complete a new adapter integration in order to migrate to their new FW SSP network. This page outlines the integration steps for publishers to complete these steps. |
Before starting this integration, please ensure you have the following to start:
Publishers implementing FreeWheel's Prebid.js adapter need to:
If you need access to the adapter code to add the fwssp Bidder Adapter to your Prebid.js setup or for something else, you can view it on the following Github repository.
You can use the fwssp bidder adapter by adding an Ad Unit with bidder code "fwssp". The following is the example of an in-banner ad request in its most minimal form, which can call found on Github.
var adUnits = [{ code: 'div-target-name', // target div where media will be render mediaTypes: { // mediatypes on the top level video: { context: 'instream', playerSize: [640, 480] } }, bids: [{ bidder: 'fwssp', params: { serverUrl: 'https://example.com/ad/g/1', networkId: '42015', profile: '42015:sample_profile', siteSectionId: 'sample_site_section_tag', videoAssetId: '0', flags: '+play-uapl', // missing comma mode: 'live', minD: 30, maxD: 60, adRequestKeyValues: { _fw_player_width: '1920', _fw_player_height: '1080' }, format: 'inbanner' } }] }]; |
You can find more indepth information Prebid Github Repository.
This new Prebid.js adapter will work in parallel to the existing SFX adapters whilst the migration of clients is complete. Then the fwssp bidder is going to replace the SFX instances of freewheel-ssp and freewheelssp bidders in the future once SFX is deprecated. Note that the SFX adapters will be deprecated later in 2025 once all clients have migrated to their new networks. After this date, clients will no longer be able to use the SFX Prebid.js adapters. |
The following are parameters that either are mandatory or optionally included the Prebid headers within ad requests.
Failure to include any required parameters may mean that ad requests do not work. |
Parameter | Type | Description | Example | Scope | |
---|---|---|---|---|---|
serverurl | string | Clients will be provided with a unique endpoint for which to send requests. Endpoints will have a variable prefix ID which is the Network ID in hexadecimal format. The Endpoint Prefix ID will need to be added as a prefix within the URL
| "serverurl": "https://83b96.v.fwmrm.net/ad/g/1" | Mandatory | |
networkId | string | The network ID is the ID of the customer account or instance, known as a 'network'. The value to implement will be provided by your Freewheel account team. The expected format is a numerical string.
| "networkID": "12345" | ||
profile | string | A profile is used to determine and control what type/formats of ads can serve into a particular inventory type e.g creative specs. This is set up on the backend and the value to implement will be provided by your Freewheel account team The expected format is the name of the profile as a string and not a numerical ID | "profile": "12345:profile__name" | ||
siteSectionId | string | The site section (id) determines the exact piece of inventory where the ad request is coming from as designed in your network design. You may have one or many different site sections breaking out inventory depending on what network design was agreed upon with your Freewheel account team. The value to implement will be provided by your Freewheel account team. The expected format is either the tag or the numerical ID of the site section.
| "siteSectionId": "ss_12345" or "siteSectionId": "12345" | ||
videoAssetId | string | Custom content Video Asset ID | "videoAssetId": "pause_ad_video" | ||
format | string | The format to use for displaying the ad. Can be one of the following:
Default value: “instream”
| "format": "inbanner" | Optional | |
bidfloor | float | Bid floor price. | "bidfloor": 13.2118 | ||
bidfloorcur | string | Bid floor currency. | "bidfloorcur": "USD" | ||
flags | string | Optional flags to include in the ad request. | "flags": "+play-uapl" | ||
mode | string | Request mode. Valid values are:
| "mode": live" | ||
adRequestKeyValues | object | An object of ad request key-pair values. See AdCom v1 List: Creative Subtypes - Audio/Video for the industry standard protocol list. | "adRequestKeyValues": {fw_player_width: '1920', fw_player_height: '1080'} | ||
gdpr_consented_providers | string | List of Consented Providers. A comma separated list of ids. | "gdpr": "216, 229, 80, 359, 479" | ||
tpos | number | Slot time position in seconds. Default: 0 | "tpos": 10 | ||
slid | string | Slot custom ID. Any string with valid letters/digits/symbols. Default: "Preroll_1" | "slid": "CustomPreroll" | ||
slau | string | Specify custom ad unit names for this slot. Multiple ad unit names can be put into this parameter, separated by "\|". Ad unit group names are also supported but you can only specify one ad unit group; multiple ad unit groups or mixed ad unit group and ad unit names are not supported. Default: "preroll". | "slau": "pre1\|pre2" | ||
minD | number | The minimum duration of a slot, in seconds. | "minD": 30 | ||
maxD | number | The maximum duration of a slot, in seconds. | "maxD": 30 | ||
listeners | object | An object of AdManager even listeners. | "listeners": {onSlotStarted: this.onSlotStarted, adEvent: this.onAdEvent, onSlotEnded: this.onSlotEnded } | ||
isMuted | boolean | Controls if ad play back should start with volume muted. Default: true | "isMuted": false | ||
showMuteButton | boolean | Controls if a mute button should be shown during ad playback. Default: true | "showMuteButton": false | ||
soundButton | boolean | If enabled, the sound will be off by default and the user will be able to turn it on/off by clicking on a button. (disabled on iOS devices) Default: false | "soundButton": true | ||
defaultMute | boolean | If “soundButton=true” is set, controls if the video will start with the sound muted. Default: true | "defaultMute": false | ||
playerParams | object | An object of AdManger player parameter values. | "playerParams": {"renderer.video.startDetectTimeout": 5000} | ||
format | string | The format to use for displaying the ad.
| "format": "inbanner" | ||
env | string | The AdManager build to use for ad playback. Valid values: "prd", "stg". Default: "prd". | "env": "stg" |
We have dedicated documents (for VAST and ORTB-S) that includes details of the passing of Standard Attributes (such as Brand, Channel, IAB Category, Genre, Content title, as well as Schain, GDPR) within ad requests.
|
Clients will be provided with a unique endpoint for which to send requests. Endpoints will have a variable prefix ID which is the Network ID in hexadecimal format. The Endpoint Prefix ID will need to be added as a prefix within the URL:
https://(prefixID)v.fwmrm.net/ad/g/1 |
User/cookie syncing with Freewheel is available for Prebid.JS clients with the expectation that the client's cookies, if passed, will be included in the http headers of the ad request. When this is present, it will then be used downstream to check if we have a cookie match with the DSPs as we send outgoing bid requests.
Your Freewheel account representative will provide you with the required codes to enter in your ads.txt and ensure that your new publisher IDs are added into our sellers.JSON as an onboarding step. This schain object will be passed in the ext.schain object of the ORTB ad request - refer here to the ORTB-S Integration Guide section 5.10.
If you are a Freewheel client and need more information on:
Since integrations often break due to typos, errors in config, we highly recommend checking the format of your requests based on the samples below or the documentation housed on Github. Please also ensure that you use the correct adapter for JS - fwssp and not another adapter.
The below code blocks are examples of the expected parameters as a guide and to sanity check the code
{ 'bidder': 'fwssp', 'adUnitCode': 'adunit-code', 'mediaTypes': { 'banner': { 'sizes': [ [300, 250], [300, 600] ] } }, 'sizes': [[300, 250], [300, 600]], 'bidId': '30b31c1838de1e', 'bidderRequestId': '22edbae2733bf6', 'auctionId': '1d1a030790a475', 'schain': { 'ver': '1.0', 'complete': 1, 'nodes': [{ 'asi': 'example.com', 'sid': '0', 'hp': 1, 'rid': 'bidrequestid', 'domain': 'example.com' }] }, 'params': { 'bidfloor': 2.00, 'serverUrl': 'https://example.com/ad/g/1', 'networkId': '42015', 'profile': '42015:js_allinone_profile', 'siteSectionId': 'js_allinone_demo_site_section', 'flags': '+play', 'videoAssetId': '0', 'timePosition': 120, 'adRequestKeyValues': { '_fw_player_width': '1920', '_fw_player_height': '1080' } } } |
{ 'bidder': 'fwssp', 'adUnitCode': 'adunit-code', 'mediaTypes': { 'video': { 'playerSize': [300, 600], } }, 'sizes': [[300, 250], [300, 600]], 'bidId': '30b31c1838de1e', 'bidderRequestId': '22edbae2733bf6', 'auctionId': '1d1a030790a475', 'schain': { 'ver': '1.0', 'complete': 1, 'nodes': [{ 'asi': 'example.com', 'sid': '0', 'hp': 1, 'rid': 'bidrequestid', 'domain': 'example.com' }] }, 'params': { 'bidfloor': 2.00, 'serverUrl': 'https://example.com/ad/g/1', 'networkId': '42015', 'profile': '42015:js_allinone_profile', 'siteSectionId': 'js_allinone_demo_site_section', 'flags': '+play', 'videoAssetId': '0', 'mode': 'live', 'timePosition': 120, 'tpos': 300, 'slid': 'Midroll', 'slau': 'midroll', 'minD': 30, 'maxD': 60, 'adRequestKeyValues': { '_fw_player_width': '1920', '_fw_player_height': '1080' }, 'gdpr_consented_providers': 'test_providers' } } |
This page contains additional information and examples with regards to the use of Parameters FreeWheel Prebid JS Adapter Tutorial Demo pages: https://hub.freewheel.tv/display/techdocs/AdManager+SDK+Integration+Downloads#tab-HTML5 |