Video Advertising Suite

Docs

Changelog

Last Modified on 2022-07-19T09:39:20.584Z

6.1.7 - released 2022-07-19

Changed

  • Open Measurement (OM) for Web Video has been updated to SDK version 1.3.36

6.1.6 - released 2022-07-15

Fixed

  • in the omid verification process, the corresponding adType is now submitted
  • incomplete description of properties that are nested under PublicAd.linear
  • the VAST attribute fallbackOnNoAd is no longer ignored

Removed

  • Custom macro TECHVERSION is no longer used

6.1.5 - released 2022-07-06

Changed

  • Open Measurement (OM) for Web Video has been updated to SDK version 1.3.35

Fixed

  • provides a correct progress when an empty wrapper of the pod sequence is replaced by a buffet ad

Added

  • ad type on PublicAd exposed (video, audio or hybrid)
  • PublicAd.linear and PublicAd.nonLinear contains a list of all relevant collected information from the VAST response from the currently running ad.

6.1.4 - released 2022-05-10

Changed

  • Open Measurement (OM) for Web Video has been updated to SDK version 1.3.34
  • changelog is now linked from the API documentation index page

6.1.3 - released 2022-04-13

Changed

  • the XHR request timeout is no longer guarded with the XMLHttpRequest.timeout because Firefox uses this value to artificially delay the outgoing request by that time.
  • better differentiate request errors between the initial call (primary ad-server) and subsequent calls (secondary ad-server, Wrapper)
    request error type error code before after
    initial empty response 100 100
    subsequent request failed 100 301
    subsequent empty response 100 303

Added

  • ViewableImpression measurement with the possibility to set the threshold GlobalConfig.visibility.area and the time period GlobalConfig.visibility.time via the config.

Fixed

  • all URLs without explicit or unexpected protocol (//, about, file) are forced to HTTPS
  • VAST Macro values (Array, Boolean, Number) not properly encoded using AdReinsertion through HOMAD
  • Samsung TV (generation 2015) never resolves initAdSlot()
  • after playing a nonLinear interactive ad (VPAID), the content did not continue

6.1.2 - released 2022-03-16

Changed

  • The UNIVERSALADID macro is replaced with all UniversalAdIDs, using a comma to separate them.

Added

  • add APPBUNDLE to macros (required if OM for App is supported, otherwise optional)
  • PublicAd.info.universalAdIds (plural) contains a list of all collected Universal Ad IDs from VAST responses. The property PublicAd.info.universalAdId (singular) remains as before and contains the last Universal Ad ID, most likely the one found in the VAST response.

Removed

  • Custom macros APPNAME and BUNDLEPACKAGE are no longer used. Use APPBUNDLE instead.

Fixed

  • All macros that are marked as optional or deprecated should default to -1
  • There are TV devices for which localStorage is not available, a safeguard has been added
  • Replay of VPAID creatives throws exception
  • The VPAID ClickThrough event parameters url and playerHandles are not considered
  • By default, HOMAD AdReinsertion must be deactivated after each ad slot

6.1.1 - released 2022-02-14

Added

  • The AdReinsertion logic is enabled first after running into any request or display issues. Sometimes it makes sense to enable AdReinsertion from the beginning and through the entire video session (smartclientcore lifecycle) by turning on both, the new GlobalConfig.adReinsertion.forceActivation and the GlobalConfig.adReinsertion.sessionCoverage flags.

Changed

  • The ON_HOMAD_PENALTY event and the associated cancellation of the content is no longer triggered when the AdReinsertion activation is rejected by either HOMAD (corroborationCallback) or the publisher (activationCallback). There is probably a good reason to not enable AdReinsertion, but not to penal the user.

6.1.0 - released 2022-01-18

Changed

  • Event ENUM keys have been adjusted to match with the event name and are renamed from *_FINISHED to *_STOPPED. This makes the ENUM keys *_FINISHED deprecated.
  • The rejection of AdReinsertion by the provider triggered a general VPAID error (901). This has been changed to an AdReinsertion declined error (64).

Added

  • VAST 4.1+ Audio Ad Support
  • Whenever the duration of an ad and thus the entire ad-break changes, the EVENT.ON_AD_SLOT_DURATION_CHANGE is triggered and the PublicAdSlot.totalCommercialsDuration is updated accordingly.
  • AdPlaylist progress events that can be found in smartclientcore.vmap.EVENT

Fixed

  • The OMID session always closes 1 second after the ad ends. The specified time in GlobalConfig.adVerification.sessionCleanupDelay is not taken into account.
  • The ad-slot property PublicAdSlot.totalCommercialsDuration does not consider changes at runtime. Changes can be caused by duration values in VAST tags that do not match the actual duration of the media file or by faulty ads being replaced by a buffet ad.
  • URL macro values that represent an array with several entries weren't properly encoded according to IAB 4.1 (Point 6.1)
  • VPAID creatives immediately cancel the next spot in case they delay their ended player event
  • The AdPlaylistSetup documentation is incomplete

Deprecated

  • Since the facade interface works with both media players for audio and video, the method getPlayerElement (new) should be used in favor of using getVideoElement

6.0.2 - released 2021-12-17

Fixed

  • Duplicate AdImpression event with VPAID creatives

6.0.1 - released 2021-11-01

Fixed

  • VPAID creatives immediately cancel the next spot in case the player delays the ended event a little
  • VPAID errors caused by the creative at runtime get tracked with error code 0 instead of 900
  • Refreshing the OMID impression type during a sequence of ads (ad-pod) throws an error within the IAB vendor scripts. The script execution stops

6.0.0 - released 2021-08-26

Changed

  • Start using the changelog format based on Keep a Changelog
  • supportedFacadeVersion returned the current facade version only. It has been replaced by facadeVersion (current version) and supportedFacadeVersions (list of supported versions)
  • Updates Open Measurement (OM) for Web Video to SDK version 1.3.22. It replaces the previously used ad verification logic from OM v1.2 as well as other proprietary logic. The OM setup properties moved from GlobalConfig.adVerification.OMID to GlobalConfig.adVerification.
  • Introduces AdBreak.adBreakPosition that is either set through the sequential config, read from the VMAP tag or calculated at runtime based on the current content progress.
  • The EnvironmentVars object macro has been renamed to vastMacros.
  • Replaces VAST macro OMIDPARTNER and BREAKPOSITION in ad tag requests and trackers. BREAKPOSITION is read from VMAP tags or with VAST tags it can be specified when calling initAdSlot() (see AdBreak.adBreakPosition)
  • Calling stopAdSlot() on the AdSlotAPI (a.k.a. PublisherAPI) additionally returns a Promise after the initial state is restored. The event EVENT.ON_AD_SLOT_COMPLETE is triggered as before.
  • Non-Linear display timer is synched with the content progress, pausing the content increases the Non-Linear display duration accordingly.

Added

  • The ad inventory can be defined through Video Multiple Ad Playlist (VMAP). The VMAP implementation complements the VAST capabilities. It supports tags that either contain the VAST ad definitions within the VMAP response or references VAST tags from another source.
  • The VMAP implementation introduces a new API for publishers AdPlaylistAPI. To make clear what one can expect from each of the both "PublisherAPIs", the API names changed to AdSlotAPI (formerly known as PublisherAPI) and AdPlaylistAPI.
  • Ability to delay the impression and creativeView trackers until the ad video starts replaying (see GlobalConfig.trackImpressionOnStart).
  • Option to auto-complete viewthrough trackers that have been skipped due to missing progress updates or other reasons (see GlobalConfig.trackSkippedQuartiles).

Removed

  • EVENT.ON_HOMAD_ACTIVATION is no longer triggered in response to resolving the AdReinsertion.activationCallback.
  • The static API method setup must not be used. In order to allow multiple instances, one has to call the setup method from the instance API that is returned from calling connect.
  • The undocumented EnvironmentVars object vastMacroValues has been removed in favour of vastMacros.
  • With several options to prefer MP4 or to block VPAID (see EnvironmentVars.desiredMimeTypes and EnvironmentVars.desiredVPAIDVendors), the flag GlobalConfig.preferVPAID has been removed. If nothing is limited through EnvironmentVars and the VAST response contains various media files, the default behavior selects VPAID over a non-interactive video first.
  • Custom AdVerification methods are no longer supported. Logic and setup options (GlobalConfig.adVerification.nonOMID) have been removed.

Fixed

  • Non-linear attributes scalable and maintainAspectRatio are not interpreted
  • OMID: session error does not finish the session
  • AdVerifications that lack the vendor attribute stop script execution
  • AdWarning TRACKER_TIMEOUT prevents an ad from being replayed
  • Duplicate creativeView trackers with VAST responses that contain NonLinear and Companion together

5.2.4 - released 2021-03-12

Bugfixes

  • Separation clips are shown in case the ad slot has no playable ads

5.2.3 - released 2021-03-03

Bugfixes

  • HOMAD initialization callbacks not executed or triggered twice
  • Ad slot delivery crashes with non-standard "No-Ad" responses (capped tag, empty tag)
  • The timeout to safeguard the Ad Reinsertion initialization with HOMAD may be abused by AdBlockers. The config property homadReadiness is no longer considered.
  • VPAID asset URLs were not tested for the hostname. The check could be bypassed if one of the desiredVPAIDVendor hosts is placed somewhere in the parameter chain of the asset URL.
  • Initializing an ad-slot can trigger an AdError event without an error code. The event has been replaced with the AdTagLoadFailed event and error codes 21 (network issues) and 22 (timeout).
  • ES3 polyfill for Spread Operator (ES2015) not working on some SmartTV devices

5.2.2 - released 2020-12-03

Bugfixes

  • PublicAd.wrappers Access to loading times of failed wrapper requests throws a
    RangeError: Invalid time value at Date.toISOString()
  • The AdVerification tracking events must not be considered mandatory
  • Some PublicAd properties do not contain the expected data but the whole string representation of the current ad

5.2.1 - released 2020-11-16

Bugfixes

  • AdError on first position is applied to all other ads of an AdPod
  • Closed Captions not available
  • AdParameters not available

5.2.0 - released 2020-10-28

Features

  • Ads playlist (manifest) for the upcoming ad-break has changed to work with an XML-representation of received ad tags. Instead of converting everything into a JavaScript-representation the XML can be requested from PublisherAPI.rawXML
  • Connecting smartclientcore with multiple video player instances at the same time (Multi-Instance support)
  • Introduces new timeouts to safeguard the Ad Reinsertion initialization with HOMAD (homadReadiness) and ad slot completion (contentRequest)
  • Wrapper data has been extended to include loading times for the request chain, see PublicAd.wrappers
  • Introduces Ad Error code 110 on top of the existing code 100 to better differentiate no ad-server responses (those remain 100) from malformed (but valid) ad-server responses (becomes 110).

Bugfixes

  • NonLinear creatives of type IFrameResource not clickable.
  • Duplicate trackers with wrapper tags from unsafe hosts.

Other

  • Add-on itself can't trigger all known IAB VAST errors. Instead of just referring to the official IAB VAST error codes table, the list of actual supported error codes can now be found in the documentation.

5.1.4 - released 2020-07-24

Other

  • Updated HOMAD vendor module

5.1.3 - released 2020-07-21

Bugfixes

  • pod ads with MediaFile errors weren't replaced with buffet ads at playtime
  • activating the ad reinsertion through HOMAD does no longer stop & restart
    the current ad slot but only replaces the ads playlist

5.1.2 - released 2020-06-18

Other

  • extended release package with custom build (ES5)

5.1.1 - released 2020-06-08

Bugfixes

  • progress updates weren't stopped in case a VPAID creative has been
    skipped manually or has been canceled due to an error
  • requests to the pause/resume methods failed with VPAID creatives
  • the individual skipOffset values from a VAST tag have overridden the global setting in some edge cases

Other

  • the Changelog is exported to the release package

5.1.0 - released 2020-05-08

Features

  • Introduces a new ad request method to fetch ad tags as JSONP response

Bugfixes

  • HTTP requests issues (not related to network issues) have been handled as if they were timeout issue
  • Fixes display and JS errors with NonLinear Ads of type IFrameResource

5.0.1 - released 2020-04-09

Features

  • Introduces PublisherAPI.getViewportSize()
  • Supports the VAST MEDIAMIME macro

Other

  • Increases test coverage with code branches to 100%
  • Updated description for Facade lockContent and releaseContent
  • The Facade handshake returns more precise information on what failed exactly

5.0.0 - released 2020-03-23

Features

  • Introduces AdBreak type nonlinear
  • enables import of the smartclientcore as a ES6 module

Bugfixes

  • invalid values with VAST macros that may change at runtime (CONTENTPLAYHEAD, MEDIAPLAYHEAD, PLAYERSIZE)
  • timeout of wrapper chains didn't trigger

Other

  • Renames all occurrences of SpotX
  • Removes deprecated properties and methods from the PublisherAPI and FacadeBase *

* Facade API version has been raised to 3.0. Changes are outlined in the migration guide.

4.10.1 - released 2020-03-11

Hotfixes

  • VPAID Clicktrackers from Wrapper not fired

4.10.0 - released 2020-02-07

Features

  • Added support for GDPR Transparency & Consent Framework APIs *

* Applicable with web environments that provide the corresponding APIs.

4.9.1 - released 2020-03-11

Hotfixes

  • VPAID Clicktrackers from Wrapper not fired

4.9.0 - released 2020-01-23

Features

  • Introduces a PublisherAPI method dispose, which should be called before
    initializing a new instance of the smartclientcore
  • Triggers the rewind tracker with ads that are played multiple times (restarted ad-slot)

Bugfixes

  • Updated docs with a passage about environmentVars.timeouts that enable ad-slot specific timeout settings
  • Time changes with VPAID 2.0 were not monitored properly
  • VPAID (embedded) didn't resize as expected
  • Errors get caught when calling startAdSlot before the initAdSlot Promise has been resolved
  • Exponentially increasing calls to the specified AdReinsertion activation and corroboration callbacks
    when sessionCoverage is disabled (default)

4.8.2 - released 2019-12-13

Bugfixes

  • HOMAD activation with invalid MediaFiles

4.8.1 - released 2019-12-11

Bugfixes

  • homad_macros must include the surrounding square brackets ([ERRORCODE] vs ERRORCODE)
  • A single invalid pod ad was replaced by two buffet ads
  • HOMAD not activated with MediaFile timeouts and request errors
  • tracking requests through HOMAD caused superfluous AdWarnings. Tracker responses must not be evaluated.

4.8.0 - released 2019-12-04

Features

  • Improved logic to replace invalid ads in a pod with stand-alone ads (buffet) at runtime, see prefetchBuffetAds
  • Introduces PublicAd.wrappers that contain qualified wrapper ad objects.
    This makes PublicAd.info.wrapperTags deprecated.
  • Introduces FacadeBase version 2.2 with new methods lockContent and releaseContent that both return Promises.
    This makes setCurrentContentSource and resetCurrentContentSource deprecated.

Bugfixes

  • CompanionAds --> collect Tracking events from wrappers
  • HOMAD duplicate calls to the same ad server URL after the AdReinsertion has been activated

4.7.0 - released 2019-11-29

Features

  • Introduces AdReinsertion logic to bypass ad-blockers. As a first vendor we support HOMAD.

4.6.1 - Staging only, released 2019-11-28

Bugfixes

  • Calling the PublisherAPI's play/pause methods did not actively toggle the playback state
  • Skipping an ad did not increase the PublicAdSlot.totalCommercialsCurrentTime with the skipped time

4.6.0 - released 2019-10-29

Features

  • Adds new methods to perform companion creative view and clickthrough tracking
  • ExtendsComanionAds with a list of CompanionAdResource (type, resource)
  • Introduces a descriptive AdError Object that provides specific diagnostic information

Bugfixes

  • Companion ads may include one or multiple creative resource files
  • Skippable state changes with VPAID creative files

4.5.1 - released 2019-10-22

Bugfixes

  • Collecting error trackers from wrapper chains
  • Triggers the companions detected event only with companion ads that have at least one valid resource
  • Removes the skippable state change event with non-commercial ads

4.5.0 - released 2019-10-09

Features

  • Introduces AdBreak setup with direct AdResponse, see setup.md#AdBreak
  • (Beta) Introduces AdReinsertion logic to bypass ad-blockers. As a first vendor we support HOMAD.

Bugfixes

  • Duplicate trackers with ad-servers that doesn't support cross origin resource sharing (CORS)
  • Callback methods specified with the publisher config got lost after schema-validation

4.4.0 - released 2019-08-27

Features

  • Introduces the PublicAdSlot, a collection of data that describes the current ad slot.
  • Ability to force separation clips even if the ad-server request fails or if the response contains no valid ads.

Bugfixes

  • Calculation of ad-slot timings considering separation clips
  • wrapper error tracker not properly fired with empty responses (VAST error code 303)
  • documentation updates
  • maxWrapperDepth counts per fork within a chain of wrappers