wiki:OvaReleaseNote-1.1-RC1

Version 46 (modified by paul, 11 months ago) (diff)

--

What's New? (1.1.0 RC1)

The following versions have been issued as "release candidates".

  • OVA for AS3 v1.1 RC1
  • OVA for JW Player 5 v1.1 RC1 (required JW5.7 or higher)
  • OVA for Flowplayer v1.1 RC1

1. Change Summary

  • #442 - Changed the [embed] code to ensure that the code compiles with Flex 4.6 and runs with Flash 9.
  • OVA for Flowplayer now builds against Flowplayer 3.2.10 with Flex 4.6
  • Modified the build process for OVA for Flowplayer so that it is completely self-contained. The Flowplayer devkit is no longer required to build the source.
  • #445 - 'player.showBusyIcon' option added to allow the "ova busy" sign to not be shown
  • #446 - play() API added to OVA
  • Companions "html5" option renamed to "nativeDisplay": false - default setting is "true" (backward compatibility maintained)
  • "nativeDisplay":false option added to "ads" to allow an external library to be used if requested for HTML5 non-linear ad display. Default is "nativeDisplay":true - this option will override companions setting and can be used for companions as well
  • VASTController.processCompanionsExternally() renamed to VASTController.processCompanionDisplayExternally()
  • #448 - OVA for JW5 - "controls.anchorNonLinearToBottom" option added to allow VPAID non-linear ads to be anchored to the bottom of the display (appearing over the control bar)
  • #451 - Fixed defect stopping forced impressions firing for VAST2 wrapped tags with a linear template ad
  • #438 - Corrected the logic that was checking if the non-linear VPAID ad was playing or not - this was incorrectly returning false causing VPAID non-linear ads to be reinitialised
  • #436 - OVA for Flowplayer - onError not firing for bad stream URLs
  • Upgraded Flowplayer package to include 3.2.11 (Flash 10.1 minimum requirement although OVA still builds to a baseline of Flash 9)
  • #453 - SkipAd bug fixed where pause/resume automatically displayed the skipAd button regardless of whether or not it was active via the "showAfterSeconds" option
  • #452 - OVA for Flowplayer Bitrate Selection plugin now works with OVA ad clips - OVA now sets an empty bitrate array on ad clips to ensure compatibility - Bitrate select plugin "menu" option will not work until a new version of bitrateselect plugin is released
  • #444 - Support added for AdTech extension event that tracks Click to Play and Auto start
  • #459 - Fixed bug stopping wrapped on-demand linear ad does not play OVA for Flowplayer - the first ad was being taken on the returned template and at times, that ad may actually be a holding companion or an empty ad
  • #460 - Flash content now loaded in it's own ApplicationDomain() as per the VPAID spec - was throwing an exception on SpotXChange ads
  • #461 - Fixed wrapper issue that meant that a pre-roll wasn't correctly matched if a wrapper had an empty non-linear ad block as well as the linear template
  • #458 - Example added for Emediate.
  • #457 - Example added for adRise.
  • #437 - Support expandable regions that map to the standard and expanded dimensions provided in a VAST response - best for VPAID ads to ensure that the region doesn't cover the full player display.
  • #463 - OVA for JW5 only - Fix implemented for V4 control bars to ensure that 0 not shown in the timeline during show stream pause (work-around for logic issue in V4 control bar block() code).
  • #464 - onAdCall methods made into Javascript callbacks. onAdCallFailover() event added, hasAds value added to onAdCallComplete() callback and sequence number added to all ad requests passed in onAdCall callbacks
  • #434 - preferred display mode preference bug
  • #456 - validate conversion of depreciated "close button" options
  • #447 - Flowplayer 3.2.10 and delayed startup issue
  • #449 - Javascript ad object needs impression/tracking info
  • #468 - VPAID ads not fire the "collapse" tracking event when their expanded state changes to collapsed
  • USE_EMBEDDED_JAVASCRIPT VASTController constant added to allow experimental embedded Javascript code to be turned on
  • #435 - OVA for Flowplayer force mid-roll playback if user skips on control bar (new option "ads.enforeMidRollPlayback" added)
  • #469 - VideoAd.toJSObject() is throwing an exception with spotXchange VPAID ad
  • #465 - OVA for JW5: player.play() can now be used to start player playback even if the pre-roll is a VPAID ad
  • #476 - Close tracking event is now triggered on "SkipAd"
  • #474 - Rules around handling of VPAID expanded and linear state change modified - expand/contract does not pause/resume the underlying stream now - only linear ad change does for non-linear ads. Also introduced a new option 'adsConfig.vpaidConfig.pauseOnExpand' and 'resumeOnCollapse' to allow pause/resume to be forced with expand/contract
  • Mouse click events on a VPAID region area that does have a VPAID display object active are now fired back into the player. This ensures that the VPAID region does not completely block the player display from click sensitivity (OVA for JW5 only)
  • #477 - An additional safety value has been added into OVA for Flowplayer to ensure that ad messages are cleared when show streams play. Clearing is now done on both the "onBeforeBegin" and "onBegin" events
  • Added safety value for OVA for JW5 so that ad notices are always removed onBeforeBegin show streams

2. Open Tickets in Development

  • None

3. Stopping the "OVA Busy" icon from showing

When OVA (for JW) makes an ad call, the JW Player "buffering" sign is shown. This behaviour can be stopped via the showBusyIcon configuration option as follows:

{
    "player": {
         "showBusyIcon": false
    },
    "ads": {
         ....
}

An example of this option in action can be found  here.

4. Enabling AdTech support for "Click to Play/Autoplay" tracking

Support has been added to OVA 1.1 RC1 Build 4 for the AdTech VAST extensions that cover tracking for "click to play" or "autoplay" actions.

A VAST response that includes these extensions appears as follows:

<Extensions>
       <Extension type="ad_playtype">
                http://adserver.adtech.de/dtrack/3/25.15/3520003/0/0/AdId=7041812;CreativeId=28013;BnId=1;dnPlayType=myplaytype
       </Extension>
</Extensions>

When OVA receives a VAST response with these extensions, the OVA "transformation" process can be used to replace the keyword "myplaytype" with either "CTP" or "AUTO" as per the AdTech requirements.

The value to replace "myplaytype" with has to be specified in the OVA configuration structure using the "transformers" option as follows:

{ 
    "ads": {
         "schedule": [
              {
                  "position": "pre-roll",
                  "server": {
                       "tag": "http://adserver.adtech.de/?advideo/3.0...vidAS=pre_roll;vidRT=VAST_APVSCL;vidRTV=2.0.1",
                       "transformers": [ { "pattern": "myplaytype", "command": "g", "replace": "CTP" } ]
                  }
              }
         ]
    },
    ....

Transformers are a list of regular expressions to be applied across the VAST response once OVA has obtained it from the ad server.

The structure of the "transformers" config option is as follows:

  • It must be an array of Objects specifying the patterns to match and values to replace
  • Each "transformer" should specify a "pattern", "command" and "replace" attribute - the components of a regular expression to be applied to the VAST response
  • OVA takes each "transformer" and applies it to the VAST response to replace values as specified

In the config example above, a single "transformer" is specified - it forms the regex "/myplaytype/CTP/g".

An example of this config option can be seen running  here.

5. getPlugin("ova").play()

The following plugin API has been implemented in OVA for JW5 and OVA for Flowplayer to trigger playback of all pre-roll types (including VPAID pre-rolls).

[player].getPlugin("ova").play()

6. The new "nativeDisplay" option

X

7. Anchoring Non-Linear Ads to the Bottom of the Display (OVA for JW5 only)

OVA for JW5 only.

There may be times when you wish to anchor non-linear ads to the bottom of the display overwriting the control bar if it is in an over position.

The "anchorNonLinearToBottom" has been provided to facilitate this. Use the option as follows:

{
    ...
    "player": {
         "controls": {
             "vpaid": { "anchorNonLinearToBottom": true }
         }
    },
    ...
}

You can find an example of this option in action  here.

8. Using "Transformers" on the VAST Response

A new feature called "ad tag transformers" has been introduced with this release. "Transformers" allow regular expressions to be declared with an ad tag in the OVA config. When the VAST response is retrieved from the ad call the "transforming" regular expression is applied to the text in the response before it is passed back into OVA for use in the scheduling process.

This can be useful if additional information has to be added to URLs etc. in the VAST response at runtime.

8.1 Tracking "Click to Play" and "Auto Start" with AdTech ==

For example, AdTech supports the ability to track playback "click to play" or "auto play" states via a number of VAST extensions in their responses. In the following XML snippet which is taken from an AdTech VAST response, the "myplaytype" element of the Extension is to be replaced with "CTP" if the user has clicked the player to start playback or "ATP" if auto start has been used in the player config.

<Extensions>
      <Extension type="ad_playtype">
            http://adserver.adtech.de/dtrack/3/25.12/3516564/0/0/AdId=6697325;CreativeId=31542;BnId=105;dnPlayType=myplaytype
      </Extension>
</Extensions>

To support the ability to replace that element of the URL at runtime, a "transformer" is declared for the ad tag as follows:

...
   "ads": {
        "schedule": [
             {
                 "position": "pre-roll",
                 "server": {
                     "tag": "http://adserver.adtech.de/?advideo/...vidAS=pre_roll;vidRT=VAST_APVSCL;vidRTV=2.0.1",
                     "transformers": [ { "pattern": "myplaytype", "command": "g", "replace": "CTP" } ]
                 }
            }
        ]
   }
...

To declare a transformer a "pattern" must be defined along with a "command" and a "replace" string.

The "pattern" is the string content to match. The "command" is the scope of the replacement. This will most likely be "g" for global in all cases.

The "replace" property is the string to "replace" the pattern with when matched.

Ultimately, these components combine to form a regular expression as follows:

/pattern/replace/command

For example:

/myplaytype/CTP/g

This feature can be found in action  here.

9. Using Expandable Regions with VPAID Non-Linear Ads

Under development.

10. Tracking Ad Tags that Failover

The ad call Javascript callbacks have been extended to allow failed ad calls to be tracked.

The full set of ad call callbacks are now:

function onAdCallStarted(request)
function onAdCallFailover(masterRequest, failoverRequest)
function onAdCallComplete(request, hasAds)

Each "request" Object passed back in the callbacks has an "index" attribute that allows you to identify the sequence number of the ad call being made.

An example of these callbacks can be found in action  here.

11. Enforcing Mid-roll Playback (OVA for Flowplayer only)

OVA for Flowplayer has introduced the enforeMidRollPlayback option to ensure that if a user skips over a mid-roll position within a show stream, the first mid-roll skipped will always immediately be played back.

The following config illustrates how to use this option:

...
   "ads": {
       "enforceMidRollPlayback": true,
       "schedule": [
            {
                 "position": "mid-roll",
                 "startTime": "00:00:15",
                 "tag": "tag-goes-here"
            }
       ]
   }
...

The option can be found in action  here.