Link Search Menu Expand Document


Integrating Connected TV Inventory with VAST Tags


Last updated on August 10, 2020

If you want to monetize your connected TV (CTV) inventory on the OpenX Ad Exchange, you can create OpenX VAST ad tags for the following ad servers:

  • FreeWheel
  • LKQD
  • SpotX
  • SpringServe

Generating CTV VAST Tags

Go to your account in OpenX user interface (UI) and take the following steps:

  1. Create a site with the following attributes:

    • Default Delivery Medium: Mobile
    • Platform: Other
    • Audience: General
    • Site URL


      Use a complete URL, including the protocol and www. Example:

    Leave the default settings or values for other site fields.

  2. In your new site, create an ad unit with the following attributes:

    • Ad Unit Type: Linear Video
    • Ad Server: Select one of the following:
      • FreeWheel
      • LKQD
      • SpotX
      • SpringServe
    • Video Player: Other
    • Presentation Format: In-stream
    • Video Dimensions: Select one of the following dimensions:
      • 1920x1080
      • 320x480
      • 1280x720
    • Mime types: Select all except for JavaScript
    • API Framework: Leave blank
    • Playback Method: Leave blank
    • Protocols: Select all
    • Allowable Delivery Methods: HTTP-based
    • Test Mode: Leave unchecked
  3. Select or enter all other settings as desired.

  4. Save the ad unit. The OpenX platform generates the VAST tag.

    To view the tag, click the name of the new ad unit in the Ad Units tab. You will see the VAST URI for your tag:

    Ad ServerExample

Macros are fields or placeholders for information that you specify about your inventory and the types of creative you want to appear in it. Your ad sever populates these fields with specific values. When your ad server sends an ad request to OpenX Ad Exchange, these macro values are translated into parameters that help demand partners make bidding decisions about your inventory.

When you generate a VAST tag, based on the attributes of an ad unit, the tag includes some dynamically appended macros, as you can see in the preceding screen shot examples. You can insert additional macros in ad tags to automatically capture other user-specific parameters. However, if you want to define additional inventory-specific parameters, you must do so manually with URL-encoded values.

The following table maps your ad server’s macros to OpenX parameters for CTV-related ad requests. Consider the following:

  • Certain parameters are labeled Required because DSPs use those values to determine whether to bid on requests.
  • INSERT_MACRO indicates that a macro is supported by your ad server, but OpenX does not have information about it. You can replace INSERT_MACRO strings with actual macros, according to your ad server documentation.

To learn more about these parameters, see Ad request parameters.

To learn more about the macros that your ad server supports, see your ad server documentation.

ParameterInformation that is passedFreeWheel macroLKQD macroSpotX macroSpringServe macro
The app’s bundle ID.
The app’s display name.
A random integer to avoid browser caching.
crrMobile carrier, which is defined by the Mobile Country Code (MCC) and Mobile Network Code (MNC), using the format: <MCC>-<MNC>.INSERT_MACROINSERT_MACROINSERT_MACROINSERT_MACRO
gdprWhether the request is subject to the General Data Protection Regulation (GDPR).INSERT_MACRO$$gdpr$$$REGS_GDPR{{GDPR}}
gdpr_consentA declaration that that the user has consented to having his or her data collected by the publisher’s site, as mandated by the GDPR.INSERT_MACRO$$gdprcs$$$USER_CONSENT{{CONSENT}}
The Google Advertiser Device Identifier or Apple IDFA or from the user’s device.
ipThe IP address from the user’s device.{ip}$$ip$$$IP_ADX{{IP}}
latThe GPS latitude location, in decimal form, of the device. You should send the lt parameter with lat/lon. This is passed to buyers as OpenRTB device.geo data (not user.geo). For example: lat=37.530676INSERT_MACRO$$loclat$$$GEO_LAT{{LAT}}
The setting from the user’s device that indicates if private browsing is enabled (if the user has requested not to be tracked).
lonThe GPS longitude location, in decimal form, of the device. You should send the lt parameter with lat/lon. This is passed to buyers as OpenRTB device.geo data (not user.geo). For example: lon=-122.262447INSERT_MACRO$$loclong$$$GEO_LON{{LON}}
netThe user’s network connection type. For a wireless network, use net=wifi.INSERT_MACROINSERT_MACROINSERT_MACROINSERT_MACRO
The device user agent, which typically indicates the app or browser making the request.
The mobile app store URL or the mobile website URL. The URL for mobile apps can be HTTP or HTTPS. Non-app store mobile websites should use HTTPS URLs for secure sites.
   • For iOS, it is the App Store URL. For example: url=
   • For Android, it is the Google Play URL. For example: url=
The desired ad height.
The desired ad width.

Next Steps

  1. Copy your new tag from ad unit page and paste it into the appropriate location, according to your ad server documentation.
  2. Set up OpenX selling rules.