Connected TV Tags

The MediaGrid Connected TV (CTV) tags are URLs which are called from the Ad Server/SSP when the device video player calls for the VAST Markup. These URLs contain parameters which should be filled with values when called. These tags help to verify impressions and the impression context when looking to monetize CTV.

We strongly recommend that you work with your SSP or Ad Server in order to replace as many parameters within the tag as possible. The required and recommended macros are essential for monetization, and some of the optional fields are also viewed as very important by certain buyers.

CTV Tags added to your Ad Server/SSP

Here is a step through overview of how it works.

  1. You add the CTV Tag to your Ad Server/SSP as a 3rd party creative or tag depending on your setup

  2. The Ad Server/SSP calls The MediaGrid using this tag

  3. The MediaGrid responds with the VAST XML

  4. The Ad Server/SSP returns the VAST XML to the media player

  5. The media player renders the VAST, and also any VAST events within e.g Start, FirstQuartile etc

Note

If the CTV channels/apps you wish to monetize with The MediaGrid have an ads.txt or app-ads.txt file, we strongly recommend that you request an ads.txt entry from us and ensure that it is included in the respective party’s file. This will increase monetization through enabling Buyers to validate the sources of the traffic they buy. See the Ads.txt Compliance section for more details.

Setting Up Ad Tags

Setting up ad tags requires you to construct a URL with the relevant Tag URL Parameters. For further details or implementation questions, contact pubsupport@themediagrid.com. The team can provide you with ad tags and help you to set them up for any CTV ad unit.

To expedite the process, you should request all the necessary CTV Ad units using a copy of this mapping sheet. The ad unit structure mainly depends on your Ad Server/SSP setup, however we suggest categorizing the ad units by app/bundle, and also separating the best performing bundles.

Sample CTV Tags

# The Macros in this URL would be replaced by the Device or Bid
# Response values to which they refer when the video
# player calls the VAST Markup from the VAST Server
https://grid.bidswitch.net/adv_ctv?auid={AD_UNIT_ID}&ifa={IFA}&dnt={DO_NOT_TRACK}&bi={BUNDLE_ID}&an={APP_NAME}&ua={USER_AGENT}&ip={IP}&h={PLAYER_HEIGHT}&w={PLAYER_WIDTH}&exp={IMP_EXPIRATION_TIME}&content_id={CONTENT_ID}&content_livestream={CONTENT_LIVESTREAM}&content_title={CONTENT_TITLE}&timestamp={TIMESTAMP}&gdpr={GDPR}&gdpr_consent={GDPR_CONSENT}&us_privacy={US_PRIVACY}

# The MediaGrid recognises the values being returned by the
# parameters that reference them
https://grid.bidswitch.net/adv_ctv?timestamp=1601885840&auid=32964&ifa=2af493bf-1960-42af-bac7-f0ef8441e401&dnt=false&bi=roku.mychannel.tv&an=mychannel.tv&ua=Roku%2FDVP-9.30+%28249.30E04194A%29&ip=71.224.109.51&h=1080&w=1920&exp=1000

Tag URL Parameters

CTV URL Parameters

Tag URL Parameters

Description

bi

(Required) Returns the value for the app.bundle Open RTB field. Tag calls that do not contain a valid value for the bi parameter will be invalidated by The MediaGrid, e.g. bi=com.example.app

an

(Required) Returns the value for the app.name Open RTB field. Tag calls that do not contain a valid value for the an parameter will be invalidated by The MediaGrid, e.g an=Candy Crush

auid

(Required) Returns the ad unit ID, e.g. auid=abc123. The Ad Unit ID should match the ID set up as part of Setting Up Ad Tags step.

ifa

(Recommended) Returns the value for the device.ifa Open RTB field. The ID for Advertisers (IFA) in clear text (i.e. not hashed), for example Apple’s IDFA or Android’s Advertising ID, e.g. ifa=c802d198-6232-4ecf-a7ba-358badd2dd1c

exp

(Recommended) Returns the value for the imp.exp Open RTB field. The impression expiry timeout is in seconds, and an impression is considered expired if it is registered later than the expiry timeout after the auction, e.g. exp=3600

gdpr

(Recommended) Indicates if GDPR applies. 0 does not apply 1 applies. This field is required by most Buyer where applicable, and is strongly recommended for any EU inventory.

gdpr_consent

(Recommended) If GDPR applies (i.e if gdpr=1), this passes the GDPR consent string associated with the user. This field is required by most Buyer where applicable, and is strongly recommended for any EU inventory.

us_privacy

(Recommended) Passes the CCPA compliant US Privacy string that indicates whether the user has “opted-in” or “opted-out” of the sale of their data, e.g. 1NNY. Strongly recommended for any California inventory.

content_album

(Optional) Returns the value for the site|app.content.album Open RTB field, for the album to which the content belongs; typically for audio.

content_artist

(Optional) Returns the value for the site|app.content.artist Open RTB field, for the artist credited with the content.

content_cat

(Optional) Returns the value for the site|app.content.cat Open RTB field. If returning a list of categories, use comma separation. e.g. content_cat={CONTENT_CAT} might become content_cat=iab1,iab1-3,iab20-18

content_contentrating

(Optional) Returns the value for the site|app.content.contentrating Open RTB field.

content_context

(Optional) Returns the value for the site|app.content.context Open RTB field, e.g content_context={CONTENT_CONTEXT} might become content_context=1. This field takes the following valid values.

  • 1 Video (i.e., video file or stream such as Internet TV broadcasts)

  • 2 Game (i.e., an interactive software game)

  • 3 Music (i.e., audio file or stream such as Internet radio broadcasts)

  • 4 Application (i.e., an interactive software application)

  • 5 Text (i.e., primarily textual document such as a web page, eBook, or news article)

  • 6 Other (i.e., none of the other categories applies)

  • 7 Unknown

content_embeddable

(Optional) Returns the value for the site|app.content.embeddable Open RTB field, which indicates whether or not the content is embedded off-site (e.g., an embedded video player), where 0 = no, 1 = yes.

content_episode

(Optional) Returns the value for the site|app.content.episode Open RTB field.

content_genre

(Optional) Returns the value for the site|app.content.genre Open RTB field. Genre that best describes the content.

content_id

(Optional) Returns the value for the site|app.content.id Open RTB field. ID uniquely identifying the content.

content_isrc

(Optional) Returns the value for the site|app.content.isrc Open RTB field. International Standard Recording Code conforming to ISO-3901.

content_keywords

(Optional) Returns the value for the site|app.content.keywords Open RTB field, for multiple key words use comma separation, e.g, content_keywords=football,soccer,futebol

content_language

(Optional) Returns the value for the site|app.content.language Open RTB field.

content_len

(Optional) Returns the value for the site|app.content.len Open RTB field.

content_livestream

(Optional) Returns the value for the site|app.content.livestream Open RTB field. Indication of live content, where 0 = not live, 1 = live e.g., stream, live blog.

content_prodq

(Optional) Returns the value for the site|app.content.prodq Open RTB field. Production quality values are:

  • 1 Professionally Produced

  • 2 Prosumer

  • 3 User Generated (UGC).

content_producer_cat

(Optional) Returns the value for the site|app.content.producer.domain Open RTB field.

content_producer_domain

(Optional) Returns the value for the site|app.content.producer.cat Open RTB field.

content_producer_id

(Optional) Returns the value for the site|app.content.producer.id Open RTB field.

content_producer_name

(Optional) Returns the value for the site|app.content.producer.name Open RTB field.

content_qagmediarating

(Optional) Returns the value for the site|app.content.qagmediarating Open RTB field.

content_season

(Optional) Returns the value for the site|app.content.season Open RTB field.

content_series

(Optional) Returns the value for the site|app.content.series Open RTB field.

content_sourcerelationship

(Optional) Returns the value for the site|app.content.sourcerelationship Open RTB field.

content_title

(Optional) Returns the value for the site|app.content.title Open RTB field.

content_url

(Optional) Returns the value for the site|app.content.url Open RTB field. This value needs to be URL encoded to prevent breaking the tag call.

content_userrating

(Optional) Returns the value for the site|app.content.userrating Open RTB field.

content_videoquality

(Optional) Returns the value for the site|app.content.videoquality Open RTB field. Production quality are

  • 1 Professionally Produced

  • 2 Prosumer

  • 3 User Generated (UGC). Note: prodq and videoquality convey the same data.

dnt

(Optional) Returns the value for the device.dnt Open RTB field, e.g. dnt=0

h

(Optional) Returns the value for the player height, device.h.

ip

(Optional) Returns the value for the device.ip Open RTB field.

timestamp

(Optional) Returns a UNIX timestamp indicating when the CTV tag call was made, e.g. timestamp={TIMESTAMP} becomes timestamp=1601885840

ua

(Optional) Returns the value for the device.ua Open RTB field.

w

(Optional) Returns the value for the player height, device.w.