dailymotion / vast-client-js

VAST (up to 4) parsing library for JavaScript

Home Page:https://iabtechlab.com/wp-content/uploads/2022/09/VAST_4.3.pdf

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Vast 4.1] Implement missing Macros

ZacharieTFR opened this issue · comments

commented

According to IAB specs for VAST 4.1 our vast-client is missing macros.

Furthermore the macro [CONTENTPLAYHEAD] is now deprecated in VAST 4.1. We should replace it with [ADPLAYHEAD] and [MEDIAPLAYHEAD]

Following required macros should also be implemented:

  • [REASON]: Reason code for not executing verification

Optional macros:

  • [ADPLAYHEAD]: Playhead for ad video or audio. Replaced with the current time offset “HH:MM:SS.mmm”.

  • [MEDIAPLAYHEAD] : Playhead for the video or audio content (NOT the ad creative). Replaced with the current time offset “HH:MM:SS.mmm” of the underlying video/audio content that the ad is playing within. Not relevant for out-stream ads.

  • [BREAKPOSITION]:Indicates the position of the ad break within the underlying video/audio content that the ad is playing within.

  • [BLOCKEDADCATEGORIES]: List of blocked ad categories. Values must be taken from the
    BlockedCategory element. (Currently BlockedAdCategories element is not supported)

  • [ADCATEGORIES]: List of desired ad categories

  • [ADCOUNT]: For VAST requests: the number of ads expected by the player.For tracking pixels: the number of ads played within the current chain or tree of VASTs, including the executing one.

  • [TRANSACTIONID]: An identifier used to correlate a chain of ad requests from the origination (supply) end.

  • [PLACEMENTTYPE]: Indicates the type of ad placement.

  • [ADTYPE]: Indicates whether the ad’s intended use case was video, audio, or hybrid, as defined in the adType attribute of the VAST element.

  • [UNIVERSALADID]: Indicates the creative

  • [IFA]: A resettable advertising ID from a device-specific advertising ID scheme

  • [IFATYPE]: String value indicating the type of IFA included in the IFA macro

  • [CLIENTUA]: An identifier of the player and VAST client used.

  • [SERVERUA]: User-Agent of the server making the request on behalf of a client.

  • [DEVICEUA]: User-Agent of the device that is rendering the ad to the end user.

  • [SERVERSIDE]: Value indicating if a URL is requested from a client device or a server

  • [DEVICEIP]: IP address of the device that is rendering the ad to the end user.

  • [LATLONG]: Mobile detected geolocation info of the end user, numeric latitude and longitude separated by a ","

  • [DOMAIN]: Domain of the top level page where the end user will view the ad.

  • [PAGEURL]: The full URL of the top level page where the end user will view the ad.

  • [APPBUNDLE]: For app ads, a platform-specific application identifier, bundle or package name and should not be an app store ID such as iTunes store ID

  • [VASTVERSIONS]: List of VAST versions supported by the player.

  • [APIFRAMEWORKS]: List of frameworks supported by the player.

  • [EXTENSIONS]: List of VAST Extensions type attribute values that the player / client support

  • [VERIFICATIONVENDORS]: List of VAST Verification vendor attribute values that the player / client supports

  • [MEDIAMIME]: List of media MIME types supported by the player

  • [PLAYERCAPABILITIES]: List of capabilities supported by the player.

  • [CLICKTYPE]: Indicates the type of clickthrough supported by the player.

  • [PLAYERSTATE]: List of options indicating the current state of the player.

  • [INVENTORYSTATE]: List of options indicating attributes of the inventory.

  • [PLAYERSIZE]: Integer width and height of the player, separated by a ",", measured in css pixels

  • [ADPLAYHEAD]: Playhead for ad video or audio. Replaced with the current time offset “HH:MM:SS.mmm”.

  • [ASSETURI]: The URI of the ad asset currently being played

  • [CONTENTID]: The publisher-specific content identifier for the content asset into which the ad is being loaded or inserted. Only applicable to instream ads.

  • [CONTENTURI]: The URI of the main media content asset into which the ad is being loaded or inserted. Only applicable to in-stream ads.

  • [PODSEQUENCE]: The value of the sequence attribute on the that is currently playing, if one is provided

  • [ADSERVINGID]: The value of the for the currently playing ad, as passed from the ad server

  • [CLICKPOS]: Coordinates of the click relative to the area defined by the [PLAYERSIZE] macro

  • [LIMITADTRACKING]: The limit ad tracking setting of a device-specific advertising ID scheme.

  • [REGULATIONS]: List of applicable regulations (possible values: coppa, gdpr).

  • [GDPRCONSENT]: Base64-encoded Cookie Value of IAB GDPR consent info

For any macros that are marked as optional or deprecated and where the actual macro is
not provided, the following special values must be inserted into the macro to indicate the
reason for not providing the information:

If the macro value is.. Then replace macro with
Value is unknown, but would be shared if it was known -1
Value is known, but information can't be shared because of policy (unwilling to share) -2

Important note: Do not replace all unknown macros with -1, only do this for macros
specifically mentioned in this issue that you decide not to implement

Please see page 91 of IAB VAST 4.1 specs for more details about each macros.

Marcros are currently used in https://github.com/dailymotion/vast-client-js/blob/9a294043395fccb140405cf66b6b2a5b2d33b031/src/util/util.js

Development should be done based from branch 3.0-version.

commented

When <BlockedAdCategories> will be parsed and supported, the [BLOCKEDADCATEGORIES] should be autofilled.

The feature for replacing macro value with -2 when value is known, but information can't be shared because of policy (unwilling to share) is not implemented yet. I need more information about it, the iab specs are not clear enough.

commented

Support for <BlockedAdCategories> and its macros added in #343