---
title: "FreeWheel SSP VAST Integration Guide"
canonical: "https://hub.freewheel.tv/space/RCS/115179810/FreeWheel%20SSP%20VAST%20Integration%20Guide"
format: markdown
---
# **Guide Change Log**

### Current Guide Version

| **Guide Version** | **Date** | **Author** | **Description** |
| --- | --- | --- | --- |
| v1 | 11/7/2025 | <span style="color: #000000">Admin</span> | Initial Release |

### Historic

> Macro (ui-expand)
> 
> | **Version** | **Date** | **Author** | **Description** |
> | --- | --- | --- | --- |
> | v1 | <span style="color: #000000"> </span>11/7/2025<span style="color: #000000"> </span> | <span style="color: #000000">Admin</span> | Initial Release |

> ℹ️ *This page is specifically written for FW SSP customers integrating via a VAST connection and should not be used for Streaming Hub customers. Streaming Hub customers looking for information around VAST ad requests can refer to this section: **[HTTP Get Ad Request](https://freewheel-knowledge-hub.atlassian.net/wiki/spaces/SHUGSTG/pages/111263220)*

---

# **1. Introduction **

This guide outlines the steps to onboard a FW SSP client using a VAST connection to an upstream ad server, including the requisites to onboard and the technical parameters required to make HTTP GET ad requests to the Freewheel system. To set up a VAST connection to Freewheel, there will be a number of prerequisites to fulfill, and your Freewheel account team will need to share several parameters. 


## **1.1 Integration Diagram**

**This diagram illustrates the end-to-end process of a VAST ad request leaving the ad server and Freewheel returning programmatic demand in the VAST ad response to the upstream ad server and end user**

![image](media://61dd205e-5ae4-4b28-9990-a1c154317987)

### Pre-requisites 

Before starting this integration, please ensure you have the following to start: 

- Expected QPS volumes (daily max and average)
- Estimated traffic per geo
- Ensure ads.txt, app ads.txt, and sellers.JSON are up to date
- Freewheel account team to provide:
  - Expected ad request tag, which will point to the dedicated client endpoint and include expected parameters (you can find an example in the section below)
  - Network IDs to be integrated for ads.txt and the expected format

---

# 2. Endpoint

Clients will be provided with a unique endpoint for which to send ad requests that is exclusive to their networks. Endpoints will have a variable prefix ID, which is the Network ID in hexadecimal format that will need to be included at the front of every VAST ad request. The Endpoint Prefix ID will need to be added as a prefix within the URL. As you'll see in the Parameters section below, this endpoint URL will be built out to include specific parameters to pass relevant information points on the ad request. 

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

---

# 3. Ad Request Parameters

The repository below lists out the different parameters for inclusion on HTTP GET ad requests - note that some are mandatory and are needed to make the ad request work or for successful monetization, whereas others might be recommended depending on the client setup and requirements. Depending on your region, your account team may provide tags with extra parameters, but these should be considered as the minimum to get a functional tag. Additionally, the expectation is that there will be 3rd party macros to include on the tag in order to pass datapoints for the end user that depend on the ad server used. Note that the ad requests parameters are broken out into 3 types, and it's very important that clients respect the taxonomy of the tags we provide you to ensure correct functionality. 

- Global parameters - necessary for the correct functioning of the ad request. You still specifically need to know the client **vhost**, **network ID, profile ID,** and **site section tag**. These will be provided by your Freewheel rep.
- Key value pairs - often recommended/required to pass extra required contextual information, such as Standard Attributes, so Freewheel can monetize your supply and best align demand.
- Slot parameters - required to pass information around the slot, such as the roll type, duration, etc.

<span style="color: #172b4d">**Please note that each parameter section is separated by a semicolon (;), and the tag may not work if this isn't included, nor if parameters aren't passed in the correct section of the tag! **</span>

<span style="color: #172b4d">If a client has both live and on-demand inventory, separate tags will need to be provided</span>

**Scroll to the right to see the full table **

| **Parameter Name** | **Required vs Recommended** | **Description and format** | **Freewheel Placeholder** | **SpringServe Macro**<br>**(not in hub)** | **Publica Macro**<br>**(not in hub)** | **Elemental Macros**<br>**(not in hub)** | **GAM Macros**<br>**(not in Hub)** |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| https://[CLIENT_VHOST].[v.fwmrm.net/ad/g/1](http://v.fwmrm.net/ad/g/1)? | Required | Client-specific Vhost. The alphanumeric ID is the client's network ID [Hexadecimal](https://string-functions.com/decimal-hex.aspx) encrypted.<br>For example:<br>- `https://83b96.v.fwmrm.net/ad/g/1` |  |  |  |  |  | **Global Parameters** |
| nw=[NETWORK_ID_PLACEHOLDER] | Required | Network ID - integer |  |  |  |  |  |
| resp=vast4 | Required | Response format - string |  |  |  |  |  |
| prof=[PROFILE_PLACEHOLDER] | Required | Player profile. Specifies which types and formats of ads can be returned in this player environment - string  
  
54321:fw_ssp_VAST_clientname |  |  |  |  |  |
| csid=[SITE_SECTION_PLACEHOLDER] | Required | Custom site section ID. Indicates "where" the video is played. This is an alpha-numeric value and is considered the tag for the site section - string |  |  |  |  |  |
| caid=0 | Required | Custom video asset ID. Hardcoded to '0' or '1'. - integer |  |  |  |  |  |
| pvrn= | Required | Page View Random. A random number generated per page view. Used for cache busting - integer | [CACHEBUSTER_PLACEHOLDER] | {{CACHEBUSTER}} | <span style="color: #172b4d">[CACHEBUSTER]</span> | ${CB} | %%CACHEBUSTER%% |
| vprn= | Required | Video Player Random. A random number generated per video instance (re-randomize on a new video play even on the same page). Used for cache busting - integer | [CACHEBUSTER_PLACEHOLDER] | {{CACHEBUSTER}} | <span style="color: #172b4d">[CACHEBUSTER]</span> | ${CB} | %%CACHEBUSTER%% |
| flag=+fwssp+amcb+nucr | Required | The flag section turns on or off specific capabilities that are needed to make the integration work. "+" means to turn on and "-" means to turn off. String |  |  |  |  |  |
| metr=1023 | Required | Signals the default metrics supported for all ads returned in the response. It's a bitmap representing whether this integration supports some pre-defined metrics like clickable, pausable, mutable, etc - Integer | 1023 |  |  |  |  |
| vip= | Required | End user IP address - string | [IP_ADDRESS_PLACEHOLDER] | {{IP}} | <span style="color: #172b4d">[IP]</span> | ${IP} | %%USER_IP%% |
| mode=live | Required | Stream type of the video asset, acceptable values are "on-demand" or "live" - string | live |  |  |  |  |
| ; | Global Parameter (Above)<br>Key Values (Below) -  please take note of the separator value | Global Parameter (Above)<br>Key Values (Below) |  |
| _fw_h_user_agent= | Required | End user user agent  - string | [USER_AGENT_PLACEHOLDER] | {{USER_AGENT}} | <span style="color: #172b4d">[%UA%]</span> | ${UA} | %%USER_AGENT%% | **Key Values** |
| _fw_h_referer= | Required for OLV | End user referrer URL. Not required for non-web environments - string | [REFERER_URL_PLACEHOLDER] | {{ENCODED_URL}} |  |  | %%REFERRER_URL_ESC%% |
| _fw_vcid2= | Required | Custom user ID, used for frequency capping and audience lookup - string | [DEVICE_ID_PLACEHOLDER] | {{DEVICE_ID}} | <span style="color: #172b4d">[DID]</span> | ${DEV_ID} | %%ADVERTISING_IDENTIFIER_PLAIN%% |
| _fw_did= | Required | End user device ID, used for frequency capping and audience lookup - string | [IFA_TYPE_PLACEHOLDER] | {{IFA_TYPE}} | <span style="color: #172b4d">[IFA_TYPE]</span> | ${IFA_TYPE} | %%ADVERTISING_IDENTIFIER_TYPE%% |
| _fw_deviceMake= | Recommended | Device make (e.g. Apple) - string | [DEVICE_MAKE_PLACEHOLDER] | {{DEVICE_MAKE}} | [%DEVICE_MAKE%] | ${DEV_MAKE} | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br>%%PATTERN:dev_make%% |
| _fw_player_width= | Recommended | Player width - integer | [WIDTH_PLACEHOLDER] | {{WIDTH}} | <span style="color: #172b4d">[WIDTH]</span> | <span style="color: #292a2e">${WIDTH}</span> | %%WIDTH%% |
| _fw_player_height= | Recommended | Player height - integer | [HEIGHT_PLACEHOLDER] | {{HEIGHT}} | <span style="color: #172b4d">[HEIGHT]</span> | ${HEIGHT} | %%HEIGHT%% |
| _fw_playback_method=1 | Recommended | Integer with the following possible values:<br>1 Initiates on Page Load with Sound On  
2 Initiates on Page Load with Sound Off by Default  
3 Initiates on Click with Sound On  
4 Initiates on Mouse-Over with Sound On  
5 Initiates on Entering Viewport with Sound On  
6 Initiates on Entering Viewport with Sound Off by Default |  |  |  |  |  |
| _fw_playback_end= | Recommended | Integer - the following table lists the various modes for when playback terminates.  
  
1 On Video Completion or when Terminated by User  
2 On Leaving Viewport or when Terminated by User  
3 On Leaving Viewport Continues as a Floating/Slider Unit until Video Completion or when  
Terminated by User | [PLAYBACK_END_PLACEHOLDER] |  |  |  |  |
| _fw_app_name= | Required for in app | App Name - string | [APP_NAME_PLACEHOLDER] | {{APP_NAME}} | <span style="color: #1d1c1d">[%APP_NAME%]</span> | ${APP_NAME} | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br>%%PATTERN:app_name%% |
| _fw_app_bundle= | Required for in app | App Bundle ID - string | [APP_BUNDLE_PLACEHOLDER] | {{APP_BUNDLE}} | <span style="color: #1d1c1d">[%APP_BUNDLE%]</span> | ${APP_BUNDLE} | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br>%%PATTERN:app_bundle%% |
| _fw_app_store_url= | Required for in app | App store URL - string | [APP_STORE_URL_PLACEHOLDER] | {{APP_STORE_URL}} | <span style="color: #172b4d">[%APP_STORE_URL%]</span> | ${APP_URL} | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:url%%<br>In this case the url will be expanded to that of the app store<br>An example might be<br>%%PATTERN:www.myappstoreurl.com%% |
| _fw_inventorypartnerdomain= | Recommended | Declaration of inventory partner domain for ads.txt - string | [INVENTORY_PARTNER_DOMAIN_PLACEHOLDER] | {{INV_PARTNER_DOMAIN}} | <span style="color: #1d1c1d">[%PARTNER_DOMAIN%]</span> | ${INV_PARTNER_DOMAIN} | GAM uses the pattern macro whereby the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br>%%PATTERN:inv_partner_domain%% |
| _fw_is_lat= | Recommended | Used to identify if a user has opted in or out of Limit Ad Tracking. Value should be 1 (user has enabled limit ad tracking) or 0 (user has not enabled limit ad tracking) - integer | [LIMITED_AD_TRACKING_PLACEHOLDER] | {{LMT}} | <span style="color: #172b4d">[LIMITED_AD_TRACKING]</span> | ${LMT} | <span style="color: #333333">%%ADVERTISING_IDENTIFIER_IS_LAT%%</span> |
| _fw_us_privacy= | Recommended | [In support of CCPA and future US privacy regulations, FW supports the IAB privacy string](https://freewheel-knowledge-hub.atlassian.net/wiki/spaces/RCS/pages/169181410) - string | [US_PRIVACY_PLACEHOLDER] | {{US_PRIVACY}} | <span style="color: #172b4d">[US_PRIVACY]</span> | <span style="color: #292a2e">${US_PRIVACY}</span> | <span style="color: #333333">%%US_PRIVACY%%</span> |
| _fw_gdpr= | Recommended | GDPR boolean flag - integer | [GDPR_PLACEHOLDER] | {{GDPR}} | <span style="color: #172b4d">[GDPR]</span> |  | <span style="color: #333333">${GDPR}</span> |
| _fw_gdpr_consent= | Recommended | GDPR Consent String - string | [GDPR_CONSENT_PLACEHOLDER] | {{CONSENT}} | <span style="color: #172b4d">[CONSENT]</span> | ${GDPR} | <span style="color: #333333">${GDPR_CONSENT_XXXX}</span> |
| _fw_coppa= | Recommended | COPPA boolean flag - integer | [COPPA_PLACEHOLDER] | {{COPPA}} | <span style="color: #172b4d">[COPPA]</span> | ${COPPA} | %%TFCD%% |
| ltlg= | Recommended | Latitude, Longitude **Must be comma separated - *string | [LATITUDE_PLACEHOLDER],[LONGITUDE_PLACEHOLDER] | {{LAT}},{{LON}} | <span style="color: #172b4d">[LAT],[LON]</span> | ${LAT},${LON} |  |
| _fw_content_programmer_brand= | Required | Programmer- Brand Standard Attributes. Programmer is inferred from brand value. <span style="color: #000000">*_fw_content_programmer_brand=FWNewsUS *</span><span style="color: #000000">- string</span> | [PROGRAMMER_BRAND_PLACEHOLDER] |  | <span style="color: #172b4d"> </span> |  |  |
| _fw_content_genre= | Required if IAB content category - _fw_content_category= cannot be passed | Content genre - string | [CONTENT_GENRE_PLACEHOLDER] | {{CONTENT_GENRE}} | <span style="color: #172b4d">[%CONTENT_GENRE%]</span> | ${CONTENT_GENRE} | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br><span style="color: #333333">%%PATTERN:genre%%</span> |
| _fw_content_rating= | Strongly recommended for effective monetization | Content rating - string | [CONTENT_RATING_PLACEHOLDER] | {{RATING}} | <span style="color: #172b4d">[%CONTENT_RATING%]</span> | ${CONTENT_RATING} | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br>%%PATTERN:rating%% |
| _fw_site_category= | Recommended | Site category name - string | [CONTENT_CATEGORY_PLACEHOLDER] | {{IAB_CATEGORY}} | <span style="color: #172b4d">[CONTENT_CAT]</span> | ${CONTENT_CAT} | <span style="color: #333333">%%IAB_CATEGORIES%%</span> |
| _fw_content_category= | Strongly recommended for effective monetization | Content category - string | [CONTENT_CATEGORY_PLACEHOLDER] | {{IAB_CATEGORY}} | <span style="color: #172b4d">[CONTENT_CAT]</span> | ${CONTENT_CAT} | <span style="color: #333333">%%IAB_CATEGORIES%%</span> |
| _fw_content_channel= | Strongly recommended for effective monetization | Content channel name - string | [CONTENT_CHANNEL_PLACEHOLDER] | {{CHANNEL_NAME}} | [%CONTENT_CHANNEL%] | ${CHANNEL} | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br><span style="color: #333333">%%PATTERN:channel%%</span> |
| _fw_content_network= | Recommended | Content network name - string | [CONTENT_NETWORK_PLACEHOLDER] | {{NETWORK_NAME}} | <span style="color: #172b4d">[%CONTENT_NETWORK%]</span> | <span style="color: #292a2e">${NETWORK}</span> | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br><span style="color: #333333">%%PATTERN:network%%</span> |
| _fw_content_title= | Recommended | Content title - string | [CONTENT_TITLE_PLACEHOLDER] | {{CONTENT_TITLE}} | [%CONTENT_TITLE%] | ${CONTENT_TITLE} | %%VIDEO_TITLE%% |
| _fw_content_language= | Strongly recommended for effective monetization | Content language - string | [CONTENT_LANGUAGE_PLACEHOLDER] | {{LANGUAGE}} | <span style="color: #172b4d">[CONTENT_LANGUAGE]</span> | <span style="color: #292a2e">${CONTENT_LANGUAGE}</span> | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br><span style="color: #333333">%%PATTERN:lang%%</span> |
| _fw_content_length= | Recommended | Content length expressed in seconds - integer | [CONTENT_LENGTH_PLACEHOLDER] | {{DURATION}} | <span style="color: #172b4d">[CONTENT_LENGTH]</span> | <span style="color: #292a2e">${CONTENT_DUR}</span> | %%VIDEO_AD_DURATION%% |
| _fw_content_producer_name= | Recommended | Content producer name - string | [CONTENT_PRODUCER_NAME_PLACEHOLDER] | {{CONTENT_PRODUCER_NAME}} | <span style="color: #172b4d">[%CONTENT_PRODUCER_NAME%]</span> | <span style="color: #292a2e">${PRODUCER_NAME}</span> | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br>%%PATTERN:producer_name%% |
| _fw_production_quality= | Recommended | Content production quality - string | [CONTENT_PRODUCTION_QUALITY_PLACEHOLDER] | {{PRODUCTION_QUALITY}} | <span style="color: #172b4d">[CONTENT_PROD]</span> | <span style="color: #292a2e">${PRODUCTION_QUALITY}</span> | GAM uses the pattern macro where by the key is declared in this format: %%PATTERN:key%%<br>Please replace the key string with the relevant key that you wish to use for custom targeting<br>An example might be<br>%%PATTERN:content_prod%% |
| _fw_bidfloor= | Optional | Dynamically pass programmatic bid floor price in ad request i.e. '12<span style="color: #172b4d">.23'</span>.<br>This is similar to setting floor price in:<br>UI > Admin > Programmatic Management > Network Floor Price.<br>-OR-<br>UI > Network Items (SG, S or SS only) > Programmatic Management.<br>Value format = float | [NET_BIDFLOOR_PLACEHOLDER] |  | <span style="color: #172b4d"> </span> | <span style="color: #292a2e"> </span> |  |
| _fw_bidfloorcur= | Optional | Currently of floor price set in '_fw_bidfloor', example value 'USD'. If no currency, ADS will use CRO default network currency. Please see MULTI_CURRENCY_SUPPORT for multiple currency support.<br>Currency specified using 3-character [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217#:~:text=ISO%204217%20also%20assigns%20a,US%22%20(United%20States).) alpha codes.<br>Value format = string | [NET_BIDFLOOR_CURRENCY_PLACEHOLDER] |  | <span style="color: #172b4d"> </span> | <span style="color: #292a2e"> </span> |  |
| schain= | Recommended, but could have downstream revenue consequences if not included | <span style="color: #000000">String - this can be passed in the ad request with key </span>`schain`<span style="color: #000000"> and value in this format: </span><br><span style="color: #000000">ver,complete!asi,sid,hp,rid,name,domain,ext</span><br><span style="color: #000000">Example:</span><br><span style="color: #000000">&schain=1.0,1!</span><span style="color: #000000">[customer.name](http://customer.name)</span><span style="color: #000000">,5af190fb073ef4546a085a53,1,,name,yourdomain</span><span style="color: #000000">[.com](http://reachplc.com/)</span> | <span style="color: #292a2e">[SCHAIN_PLACEHOLDER]</span> | <span style="color: #292a2e">{{SCHAIN}}</span> | <span style="color: #172b4d"> </span><span style="color: #292a2e">[SCHAIN]</span> | <span style="color: #292a2e"> ${SUPPLY_CHAIN}</span> |  |
| ; | Key Values (Above)<br>Slot Parameter (Below) - please take note of the separator value | Key Values (Above)<br>Slot Parameter (Below) |
| tpcl=[AD_UNIT_POSITION] | Required | Supported values: preroll, midroll, postroll - string | [PREROLL_OR_MIDROLL_OR_POSTROLL] | midroll | [POSITION] *Publica clients can customize Position values i.e. the position macro can return 'midroll', 'mid' or 'm'.<br>Consult with the Pub AM prior to using the Publica Position macro to confirm expected values. | midroll |  | **Slot Parameters** |
| ptgt=a | Required | Type of slot. This is a required parameter - string<br>ptgt=a: temporal slot  
ptgt=s: site section non-temporal slot  
ptgt=p: video player non-temporal slot | a |  |  |  |  |
| mind=[MIN_SLOT_DURATION_PLACEHOLDER] | Required | Minimum slot duration - integer |  |  |  |  |  |
| maxd=[MAX_SLOT_DURATION_PLACEHOLDER | Required | Maximum slot duration ) - integer |  |  |  |  |  |


---

# 4. Sample Ad Request Tag

Please see below an example of an ad request tag in its expected format based on the above parameters:

https://1a2bC.v.fwmrm.net/ad/g/1?nw=54321&resp=vast4&prof=54321:fw_ssp_VAST_clientname&csid=my_site_section&caid=0&pvrn=[CACHEBUSTER_PLACEHOLDER]&vprn=[CACHEBUSTER_PLACEHOLDER]&flag=+fwssp+amcb+nucr&metr=1023&vip=[IP_ADDRESS_PLACEHOLDER]&mode=live;_fw_h_user_agent=[USER_AGENT_PLACEHOLDER]&_fw_h_referer=[REFERER_URL_PLACEHOLDER]&_fw_vcid2=[DEVICE_ID_PLACEHOLDER]&_fw_did=[IFA_TYPE_PLACEHOLDER]:[DEVICE_ID_PLACEHOLDER]&_fw_deviceMake=[DEVICE_MAKE_PLACEHOLDER]&_fw_player_width=[WIDTH_PLACEHOLDER]&_fw_player_height=[HEIGHT_PLACEHOLDER]&_fw_playback_method=1&_fw_playback_end=[PLAYBACK_END_PLACEHOLDER]&_fw_app_name=[APP_NAME_PLACEHOLDER]&_fw_app_bundle=[APP_BUNDLE_PLACEHOLDER]&_fw_app_store_url=[APP_STORE_URL_PLACEHOLDER]&_fw_inventorypartnerdomain=[INVENTORY_PARTNER_DOMAIN_PLACEHOLDER]&_fw_is_lat=[LIMITED_AD_TRACKING_PLACEHOLDER]&_fw_us_privacy=[US_PRIVACY_PLACEHOLDER]&_fw_gdpr=[GDPR_PLACEHOLDER]&_fw_gdpr_consent=[GDPR_CONSENT_PLACEHOLDER]&_fw_coppa=[COPPA_PLACEHOLDER]<lg=[LATITUDE_PLACEHOLDER],[LONGITUDE_PLACEHOLDER]&_fw_content_programmer_brand=[PROGRAMMER_BRAND_PLACEHOLDER]&_fw_content_genre=[CONTENT_GENRE_PLACEHOLDER]&_fw_content_rating=[CONTENT_RATING_PLACEHOLDER]&_fw_site_category=[CONTENT_CATEGORY_PLACEHOLDER]&_fw_content_category=[CONTENT_CATEGORY_PLACEHOLDER]&_fw_content_channel=[CONTENT_CHANNEL_PLACEHOLDER]&_fw_content_network=[CONTENT_NETWORK_PLACEHOLDER]&_fw_content_title=[CONTENT_TITLE_PLACEHOLDER]&_fw_content_language=[CONTENT_LANGUAGE_PLACEHOLDER]&_fw_content_length=[CONTENT_LENGTH_PLACEHOLDER]&_fw_content_producer_name=[CONTENT_PRODUCER_NAME_PLACEHOLDER]&_fw_production_quality=[CONTENT_PRODUCTION_QUALITY_PLACEHOLDER]&_fw_bidfloor=[NET_BIDFLOOR_PLACEHOLDER]&_fw_bidfloorcur=[NET_BIDFLOOR_CURRENCY_PLACEHOLDER];tpcl=[PREROLL_OR_MIDROLL_OR_POSTROLL]&ptgt=a&mind=30&maxd=500

---

# 5. Inventory Standardization 

For Freewheel to successfully monetize your supply, we have developed "Standard Attributes" which allow clients to classify their inventory and facilitate inventory sharing and targeting for any buyers in the following ways: 

- <span style="color: #000000">**Enhance clarity and discoverability: **</span><span style="color: #000000">Sellers can standardize inventory by passing Standard Attribute values either dynamically on the ad request (recommended), or declaratively on Network items in order to increase transparency for buyers in the Marketplace Platform. </span>Standard attributes are organized into categories by content, geo, device/environment types, and roll types. This makes buyers more likely to discover your inventory and to better understand it.
- <span style="color: #000000">**Improve targeting**</span><span style="color: #000000">: Buyers can target standard attributes for inventory acquired through the Marketplace Platform on their programmatic and direct sold demand. </span>
- <span style="color: #000000">**Increase**</span><span style="color: #000000"> </span><span style="color: #000000">**the**</span><span style="color: #000000"> </span><span style="color: #000000">**accuracy**</span><span style="color: #000000"> of reporting and forecasting projections.</span>

The more Standard Attributes that a client can pass, the more likely we can monetize your supply, and we highly recommend a standardization rate of 80%- 100%, depending on the Standard Attribute. Please refer to section **3. Ad Request Parameters** above for guidance on how to pass these on a VAST ad request, as well as indicators as to what is required/recommended. 

---

# 6. User Sync

As part of setting up a FW SSP client, Freewheel will automatically set up the user sync on their side for any OLV inventory to fire on the impression tracker in the ad response. For programmatic demand, Freewheel will use the user id passed in the _fw_vcid2 parameter as a basis to user sync with upstream DSP buyer IDs and pass this in the user.buyeruid. In cases where it may not be possible to fire our user sync from the client player, the Freewheel AM may recommend additional setup steps depending on your specific setups. Additionally, if the ad server you use is a net-new ad server for Freewheel, there could be additional steps involved to set up user syncing with your system.

---

# 7. Ads.txt, AppAds.txt, Sellers.JSON

Your Freewheel account management team will provide the relevant ads.txt lines to implement, as well as ensure that your sellers.JSON is up to date for your relevant seller relationships. Please refer to [ads.txt and app-ads.txt setup](https://hub.freewheel.tv/space/SHUG/117997976/ads.txt+and+app-ads.txt+setup) for details on the expected setup for a FW SSP customer. 

---

# 8. Troubleshooting

In the case where you have issues such as

- Ad requests not being sent
- Ad requests being sent, but no demand returned

First steps: 

- Make sure the tag taxonomy is respected, as in the notes above, and that no important parameters crucial for functionality are being missed.
- Ensure that ads.txt and app.ads.txt are up to date with your expected ads.txt lines provided by the Freewheel AM to ensure that the supply can be correctly monetized by DSP partners who may not bid on this supply in case of inconsistencies
- We also recommend passing any Standard Attribute values that your Freewheel AM has recommended, so we can better align demand to your supply.

In case the issue persists, we recommend that you file a ticket via your Zendesk access (your Freewheel AM will provide this) to our support teams for further investigation.

---