Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning
titleFor Prebid Server

This page is for the integration of Prebid.JS connections only. For Prebid Server please consult the Prebid Server Integration Guideguide.


Specification Support

SpecificationVersionLast Update DateNotes
Prebid.jsjs v9v10.5110.0+

 

v9Starting with v10.5110.0 is the minimum , Prebid.JS js supports the latest version of the fwssp adapter was added

IAB Content Category Taxonomyv1

 

IAB Content Categories are mapped to FreeWheel Global Industries

Guide Change Log

Current Guide Version

...

  

...

Initial Release

Prebid.js Adapter.

When the adapter is updated, these updates have to be merged into the next Prebid.js release to be able to be used by a client. We will update here what the minimum required Prebid.js release version is, to support the latest version of the fwssp Prebid.js adapter. 

See here to download the latest version of Prebid.js, make sure to select fwssp from the list of adapters: https://docs.prebid.org/download.html 

IAB Content Category Taxonomyv1

 

IAB Content Categories are mapped to FreeWheel Global Industries.

Guide Change Log

Current Guide Version

Guide VersionDateAuthorDescription
v2

  

Admin
  • Notes added to the Prebid.js line item in the specification support
  • Parameters section updated, removed unsupported items and clarified others
  • Moved 3. Endpoint section up
  • New Prebid.js diagram in 1.1 Integration diagram
  • Section 7. Passing Contextual Information via Standard Attributes added

Historic

UI Expand
titleHistoric Prebid.JS Integration Guide Change Log
VersionDateAuthorDescription
v1

  

Admin

Initial Release


...


Section


Column
width50%


Panel
borderColor#c8c8c8
borderWidth1

Historic

UI Expand
titleHistoric Prebid.JS Integration Guide Change Log
VersionDateAuthorDescription
Section
Column
width50%
Panel
borderColor#c8c8c8
borderWidth1
borderStylesolid

Table of Contents

Table of Contents
maxLevel2
indent20px
stylenone



Column
width50%



...

  • Header Bidding Integration: Allows publishers to conduct pre-auction bidding before making ad server calls
  • Adapter System: Uses specialized adapters (like FreeWheel's fwssp adapter) to connect with different demand sources
  • Format Support: Supports various ad formats including in-banner video and instream video ads
  • Customization: Offers extensive configuration options for publishers to control bidding behaviorbehaviour


Note

With the sunsetting of SFX, any customers using an existing SFX-based Prebid.JS js integration 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.   

1.1 Integration Diagram

Image RemovedImage Added

Pre-requisites 

...

  • A working Prebid.js integration
  • Expected QPS volumes (daily max and average)
  • Estimated traffic per geo
  • Ensure ads.txt and app ads.txt are up to date
  • Must used use adapter released in version 910.5110.0 or above
  • New endpoint url - see section below
  • Freewheel account team to provide:
    • Profile ID
    • Network ID
    • Custom site section ID
    • Dedicated server url URL for the clients network


...

2. Technical Implementation

...

  1. Include the Prebid.js library along with the fwssp Bidder Adapter in their web pages
    1. First timers setting up Prebid.js can download the Prebid.js package along with the fwssp Bidder Adapter here. Assure to select FWSSP from the list of bidder adapters
      1. For more instructions on setting up Prebid.js on your endpoints see this
      2. For more information on how header bidding works see this
    2. For those with existing Prebid.js setups, you can find the fwssp Bidder Adapter code here to add to yours Predbidyour existing Prebid.js wrapper setup
  2. Configure bid parameters including network ID, profile, site section ID, and other FreeWheel-specific parameters
  3. Set up proper correlation between Prebid.js ad units and their ad server slots


...

3.

...

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.

...

Endpoint

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
  • Format
    • https://prefixID.v.fwmrm.net/ad/g/1
  • Example with custom prefix ID included
    • https://83b96.v.fwmrm.net/ad/g/1

...

4. fwssp Bidder Adapter Code

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, under Prebid.js/modules/fwsspBidAdapter.js

Anchor
fwssp Bidder Adaptor code
fwssp Bidder Adaptor code


...

5. How to add the new FW Prebid.js Bidder Adapter to Ad Units

You can use the fwssp bidder adapter by adding an Ad Unit with bidder code "fwssp". The following is the example

...

4. How to add the new FW Prebid.js Bidder Adapter to Ad Units

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 be found on Github.

Code Block
languagejs
themeMidnight
linenumberstrue
var adUnits = [
  {
    code: 'divadunit-target-namecode',
      mediaTypes: {
     // target div where media will be render
  mediaTypesvideo: {
                      playerSize:  // mediatypes on the top level
[640, 480],
         video: {
      context: 'instream',
      playerSizeminduration: [64030, 480]
    }
  },
  bids: [{
    bidder: 'fwssp',        maxduration: 60
         
    params: {}
      serverUrl: 'https://example.com/ad/g/1'},
      networkIdbids: '42015',[
      profile: '42015:sample_profile',
      siteSectionId: 'sample_site_section_tag', {
      videoAssetId: '0',
      flags: '+play-uapl',              bidder: 'fwssp',    // or missing commause alias 'freewheel-mrm'
      mode: 'live',
      minD: 30,
      maxD: 60,
      adRequestKeyValuesparams: {
        _fw_player_width: '1920',
        _fw_player_height: '1080'
      },
           serverUrl: 'https://example.com/ad/g/1',
                               format    networkId: 'inbanner42015',
    }
  }]
}];

You can find more indepth information Prebid Github Repository

Info
titleSFX Note

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.

5. Parameters to Include

The following are parameters that either are mandatory or optionally included the Prebid headers within ad requests.

Warning

Failure to include any required parameters may mean that ad requests do not work. 

                               profile: '42015:js_allinone_profile',
                                   siteSectionId: 'js_allinone_demo_site_section',
                                   videoAssetId: '0',
                                   flags: '+play-uapl'    // optional: users may include capability if needed
                                   mode: 'live',
                                   adRequestKeyValues: {    // optional: users may include adRequestKeyValues if needed
                                           _fw_player_width: '1920',
                                           _fw_player_height: '1080'
                                   },
                                   format: 'inbanner'
                           }
              }
      ]
}
];

You can find more indepth information Prebid Github Repository

Info
titleSFX Note

This new Prebid.js adapter will work in parallel to the existing SFX adapters whilst the migration of clients is in progress. 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.


...

6. Parameters

The following are parameters that either are mandatory or optionally included the Prebid headers within ad requests.

Warning

Failure to include any Mandatory parameters may mean that ad requests will not work as expected.


The network ID is the ID of the customer account or instance, known as a 'network' a numerical stringNetworks concept to SFX Private Exchanges (PX).

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.

ParameterTypeDescriptionExampleScope

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

networkIdstring

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.

Note
titleSFX Note

Networks are similar concept to SFX Private Exchanges (PX).

"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"

siteSectionIdstring

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

ParameterTypeDescriptionExampleScope
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

networkIdstring

. 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.


Note
titleSFX Note

Site Sections are a similar

"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"

to the concept of SFX Zones, however unlike zones, the ad unit is separated from the site section and the site section agnostic of what type of ad unit is being used.

"siteSectionId": "ss_12345"

or

"siteSectionId": "12345"

videoAssetIdstring Custom content Video Asset ID

"videoAssetId": "pause_ad_video"

bidfloorcur

string

Bid floor currency.

There are two cases in how this is used

  1. Price Floors Module is enabled for a Prebid.js instance
    1. The fwssp Prebid.js adapter follows the priority defined by the Prebid Price Floors Module:
      1. dynamic
      2. setConfig
      3. adUnit
  2. Price Floors Module is not enabled/used for a Prebid.js instance
    1. The fwssp prebid.js adapter will pull currency from bids.params.bidfloorcur
    2. Or currency can be directly called out by using the key-value pair
      1. "bidfloorcur": "EUR"

Default: USD

For the latest list of FW supported currencies please see in our hub: Currencies

"bidfloorcur": "EUR"

Optional/ Mandatory if not using USD and if not using the Price Floors Module in Prebid.js integration
bidfloorfloat

Bid floor price.

"bidfloor": 13.2118siteSectionIdstring
Note
titleSFX Note

Site Sections are a similar to the concept of SFX Zones, however unlike zones, the ad unit is separated from the site section and the site section agnostic of what type of ad unit is being used.

"siteSectionId": "ss_12345"

or

"siteSectionId": "12345"

videoAssetIdstring Custom content Video Asset ID"videoAssetId": "pause_ad_video"Optional


formatstring

The format to use for displaying the ad. Can be one of the following:

  • instream
  • inbanner

Default value: “instream”

Warning

The screen-roll, intext-roll, sliderad, expand-banner and floorad formats are all outstream formats which are not supported.

"format": "inbanner"Optional
bidfloorfloatBid floor price."bidfloor": 13.2118

and floorad formats are all outstream formats which are not supported.


"format": "inbannerbidfloorcurstringBid floor currency."bidfloorcur": "USD"

flags

string

 Optional flags to include in the ad request.

"flags": "+play-uapl"modestring

Request mode. Valid values are:

  • "on-demand"
  • "live"
"mode": live"adRequestKeyValuesobject

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_providersstringList of Consented Providers. A comma separated list of ids."gdpr": "216, 229, 80, 359, 479"tposnumberSlot time position in seconds. Default: 0"tpos": 10slidstring

Slot custom ID. Any string with valid letters/digits/symbols.

Default: "Preroll_1""slid": "CustomPreroll"slaustring

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"minDnumberThe minimum duration of a slot, in seconds."minD": 30

. Default: "preroll".

"slau": "pre1\|pre2"maxDnumberThe maximum duration of a slot, in seconds."maxD": 30listenersobjectAn object of AdManager even listeners."listeners": {onSlotStarted: this.onSlotStarted, adEvent: this.onAdEvent, onSlotEnded: this.onSlotEnded }isMutedboolean

Controls if ad play back should start with volume muted.

Default: true"isMuted": falseshowMuteButtonboolean

Controls if a mute button should be shown during ad playback.

Default: true"showMuteButton": falsesoundButtonbooleanIf 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
}isMutedboolean

Controls if ad play back should start with volume muted.

Default: true"isMuted": falseshowMuteButtonboolean

Controls if a mute button should be shown during ad playback

defaultMutebooleanIf “soundButton=true” is set, controls if the video will start with the sound muted

.

Default: true"defaultMuteshowMuteButton": false

playerParams

objectAn object of AdManger player parameter values.
"playerParams": {"renderer.video.startDetectTimeout": 5000}
formatstring

The format to use for displaying the ad. 

Warning

Outstream is not supported.

"format": "inbanner"

env

string

The AdManager build to use for ad playback. Valid values: "prd", "stg".

Default: "prd"."env": "stg"

...

titleAdditional Details of Passing of Standard Attributes

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.


...

7. Passing Contextual Information via Standard Attributes

...

In order to successfully monetize your supply and align all relevant demand, we'll require clients to correctly pass contextual information around the supply also known as Standard Attributes. The page

https://hub.freewheel.tv/display/MUG/Inventory+Standardization+with+FreeWheel+Custom+Key+Values

...

6. Endpoint

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:

...

  • Format
    • https://prefixID.v.fwmrm.net/ad/g/1
  • Example with custom prefix ID included
    • https://83b96.v.fwmrm.net/ad/g/1

...

 details the fields required to pass the needed information within your ad requests. This document includes details of the passing of Standard Attributes such as Brand, Channel, IAB Category, Genre, Content title, etc.

Mandatory Standard Attributes are typically Brand and Genre, however, this may change depending on your inventory. Please work with your account manager for what is required for you.


...

8. User Syncing/Cookie Syncing 

*This section is only necessary for web inventory

User Syncing, also known as Cookie Syncing, is the process of sharing and matching HTTP cookies between various partners. The concept of Cookie Tracking is restrictive in the amount of information that can be collected and actioned upon for advertisers. This is because cookies are limited to domain and have varying expiration dates. In order for Freewheel to be able to identify, target and frequency cap across various digital properties in accordance with campaign KPI's, Freewheel needs to know how to distinguish one user from another that are sent to us in the publisher's bid request.

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. 

...

9. Schain/Sellers JSON/Ads.txt/app ads.txt 

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 - please refer here to the  ORTB-S Integration Guide section 5.10 for further information on this.

If you are a Freewheel client and need more information on:

  • ads.txt setup please refer to this
  • Sellers.json please refer to this

...


...

10. Troubleshooting Tips

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 

...

10.1 Sample Ad Requests

...

10.1.1 Inbanner Ad request Config Example

Code Block
languagejs
titleInbanner ad request config example
collapsetrue
{
        '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'
          }
        }
      }

...

10.1.2 Instream Ad Request Config Example

Code Block
languagejs
titleInstream ad request config example
collapsetrue
{
        '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'
        }
      }

...

Note
titleExample with Parameters

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

...


10.2 Troubleshooting Ad Rendering

...

You are evaluating Refined.