Advertising with the IMA3 Plugin Changelog
Changelog
23 Jun 2023
v5.1.0
- Features: Implemented ad insights beacon triggers
10 Aug 2020
v3.6.0
- Upgraded to contrib-ads 6.7.0
13 Jul 2020
v3.5.0
- Feature: Make middleware a no-op if the plugin is unregistered
- Bug Fix: Fixed preroll failures when clicking Next button in a playlist player
16 Apr 2020
v3.4.4
- Fixed Ad Choices overlay not being displayed
31 Mar 2020
v3.4.3
- Bug fix: Resolve occasional errors logged during live preroll ads
- Reverts: Allow delaying IMA3 initialization until after autoplay feature detection is resolved with a new
asyncAutoplaySupport
option
7 Jan 2020
v3.4.2
- Fix compatibility with Video.js 7.7.x
20 Dec 2019
v3.4.1
- Refactor: Adjust implementation of AdPlayer to avoid potential incompatibilities with future versions of Video.js
3 Dec 2019
v3.4.0
- Allow delaying IMA3 initialization until after autoplay feature detection is resolved with a new
asyncAutoplaySupport
option - Prevent muted autoplay from stopping background audio on iOS devices
- Adjust implementation of
AdPlayer
to avoid potential incompatibilities with future versions of Video.js
25 Sep 2019
v3.3.2
- Fixed a race condition by ensuring
inAdBreak
is a function when sources are switched
9 Sep 2019 2019
v3.3.1
- Bug fix: Fixed an incompatibility with Brightcove Player 6.36 that caused the IMA plugin to throw an error
- Bug fix: Resize adsManager on playerresize events
5 Aug 2019
v3.3.0
- Expose IMA SDK on
ima3-ready
event object when request mode isondemand
- Fixed an issue where ad volume was incorrectly interpreted as muted
- Fixed an occasional error being thrown regarding missing
getRemainingTime
property
6 May 2019
v3.2.6
- Upgrade videojs-contrib-ads to 6.6.3
21 Mar 2019
v3.2.5
- Bug fix: Fixed an issue where autoplay was blocked after an ima3-ad-error
- Bug fix: When using live ad insertion, do not block playback while waiting for a preroll
19 Jan 2019
v3.2.4
- Fixes bug where media cuepoint key/value metadata added via Studio were appended to an ad tag as query parameters instead of being interpolated into the
mediainfo.ad_keys
macro
3 Jan 2019
v3.2.3
- Primarily a service update
- Bug fix: Millisecond accuracy for ad cuepoints set via Video Cloud now works correctly
24 Oct 2018
v3.2.2
- Fixed bug to call
adMacroReplacement
whenserverUrl
is empty string - Fixed issue to allow IE/Edge control bar visibility on hover with overlay ads
18 Oct 2018
v3.2.1
- Fixed issue where content didn't resume immediately following empty VAST response in a VMAP
- Fixed an issue where analytics didn't send
video_view
events after ad errors and timeouts
13 Sep 2018
v3.2.0
- New Video Cloud cuepoints implementation that addresses a variety of known bugs
- Added support for content source change during ads
- Bugfixes to handling reinstantiation of player after dispose
- Destroy ads manager on player dispose
- Fix issue related to volume persistence on iOS
- Fix IE/Edge ad control bar visibility on hover
- Fix case with
playonselect:false
where you are before preroll and you change source to aneconomics:ad_supported
video and ad/content automatically plays - Remove dead Flash code
- Updated to use videojs-contrib-ads 6.6.1
- Improved support for stitched ad scenarios
- Avoid multiple-registration warning messages by accepting only the first contrib-ads per context
- Fix play event
redispatch
issue on IE - Improved player dispose handling
15 Aug 2018
v3.1.0
- Fixed a bug where the progress bar wasn't updated and
player.ima3.adPlayer.currentTime()
returned 0 instead of current time of the ad - Added
isVpaid
convenience method to IMA plugin - Added IMA Live preroll support
- Updated videojs-contrib-ads to 6.5.0 which includes 6.4.3 changes as well
- Added
liveCuePoints
option - Restore all sources instead of single source on snapshot restore
- Send
pause
event when autoplay blocked on Chrome to be consistent with Safari
- Added
6 Aug 2018
v3.0.3
- Fixed a bug that results from plugin init order. Specifically, the value for the
{player.url}
macro has changed to remove a dependency on the Analytics plugin. This macro could be used to uniquely identify the player, but we recommend using the{player.id}
macro instead. - Improved dispose handling
- Code organization improvements
- Updated videojs-contrib-ads to 6.4.2
- Cleanup snapshot object after ads done
- Improved dispose handling
11 Jun 2018
v3.0.2
- Fixed a poster flash when restoring after preroll
player.ads.ad.currentTime
used to be the time offset: now it is the current time- Added
player.ads.ad.timeOffset
- Bug fix to economics
mediainfo
handling related to initialization - Removed
loadingSpinner
option because it did not do anything - Updated videojs-contrib-ads to 6.4.1
- Updated documentation link in initialization error message
- Added
contentIsLive
setting, which can be used for live streams that do not report their duration as infinity - Fixed a bug where a loading spinner could appear at the end of the video if there was no postroll
- Allow default values for macros
4 May 2018
v3.0.1
- Fixed a bug where ad doesn't play when
mediainfo.economics
is set toundefined
1 May 2018
v3.0.0
- Updated videojs-contrib-ads from 5.1.6 to 6.2.1
- Initialization now uses middleware to reduce risk of content flash
- The plugin's handling of source changes has been reworked, resulting in far greater reliability when used with playlists
- The
serverUrl
option can now be a function, facilitating asynchronous workflows such as header bidding - Fixed a bug that could have led to a longer timeout than expected
- Various other bug fixes and reliability improvements; see the videojs-contrib-ads changelog for more information
13 Apr 2018
v2.22.3
- Fixed autoplay issue on iOS and adds support on iOS for IMA SDK
setAdWillPlayMuted()
andsetAdWillAutoPlay()
28 Mar 2018
v2.22.2
- Fixed a bug with a specific IMA3 configuration of
autoplay
and requestModeonplay
21 Mar 2018
v2.22.1
- Fixed a bug with Internet Explorer 11 support that was introduced in 2.22.0
14 Mar 2018
v2.22.0
- Added support to detect can autoplay and can autoplay muted
- Implemented IMA SDK
setAdWillPlayMuted
andsetAdWillAutoPlay
30 Jan 2018
v2.21.0
- Added
showVpaidControls
option - Updated to use videojs-contrib-ads 5.1.6
27 Nov 2017
v2.20.3
- Fixed bugs with subsequent content videos not being allowed to play
- Fixed a bug with midrolls on iOS causing content to restart from the beginning
- Fixed a bug where content is not seen but audio is heard on iOS
2 Nov 2017
v2.20.2
- Compatibility with latest IMA SDK
- Improved Safari 11 support
- Hide custom controls for VPAID ads
- Updated to use videojs-contrib-ads 5.1.1
10 Oct 2017
v2.20.1
- Added compatibility with Video.js 6.3 and greater
4 Oct 2017
v2.20.0
- Updated to use videojs-contrib-ads 5.1.0
16 Aug 2017
v2.19.4
- Fix a bug that timed out on postrolls when an empty vast ad is seen
- Remove redundant
ads-request
event trigger - Added logic to check the version of Chrome independently from the player version
- Fixed a bug where the
adtimeupdate
event would fire during content - Fixed a bug with
autoplay
on Android devices - Fixed a bug with waiting for postroll ads after an ad error
28 Jul 2017
v2.19.3
- Bugfixes for oncue mode and ID3 ad cancellation
- Updated to use videojs-contrib-ads 5.0.3
21 Jul 2017
v2.19.2
- Mobile autoplay support
- Updated to use videojs-contrib-ads 5.0.2
- Fixed dispatching of
loadeddata
andloadedmetadata
events - Fixed bug with empty ad response when using
ondemand
mode
- Fixed dispatching of
7 Jul 2017
v2.19.1
Note: This version includes fixes to support autoplay of HMTL5 ads on iOS 10 and Android devices.
- Autoplay HTML5 ads in players that are not muted and/or do not include
playsinline
will correctly play when the user initiates playback via a tap or click on iOS 10 and Android devices - Autoplay HTML5 ads in players that include
muted
ANDplaysinline
will correctly autoplay on iOS 10 and Android devices - Fixes the Mute button on iOS 10 and Android HTML5 ads
- When the
muted
attribute is present, the mute button will display allowing the user to un-mute the ad - The mute button will no longer display on devices that do not support controlling the volume programmatically
- The mute button will correctly mute/un-mute the ad when tapped or clicked
- The mute/unmute setting will persist from the ad to main content
- When the
Additionally, the IMA HTML5 SDK released a feature to disable custom playback on iOS 10+ devices. This feature determines whether inline playback or native playback of ads is used, including adding support for TrueView skippable ads. More information on this setting can be found in the IMA HTML5 SDK documentation.
Information on how to apply this setting using the Brightcove IMA SDK plugin can be found in our Advertising with the IMA3 Plugin documentation under ima3SdkSettings.
28 Jun 2017
v2.19.0
For information see this post in the Brightcove Web Player Developer Forum. For general information on testing players and plugins together, see the Player/Plugin Version Testing topic.
Features in this release are:
- Volume settings persist when skipping ads
- Updated to use videojs-contrib-ads 5.0.1
- Cross-compatibility between Video.js 5 and 6
- Bug fix regarding Flash of content on iOS
- Better cleanup when player is disposed
- An error message is displayed in the Console when the plugin is initialized too late
4 Apr 2017
v2.18.0
- Added
player.ima3.setAdsRenderingSettings
, which allows users to set ads rendering settings for the IMA SDK for HTML5 - Updated for Video.js 5 and 6 cross-compatibility
23 Mar 2017
v2.17.0
- Exposed
adsLoader.contentComplete
in Flash to allow resetting the IMA correlator
9 Mar 2017
v2.16.4
- Adding back ES3 support
- Updated to use videojs-contrib-ads 4.2.5
- Added a way to estimate
adType
- Reverted "No longer take postroll snapshot when there will be no postroll" to fix a bug with missing
ended
events
- Added a way to estimate
3 Mar 2017
v2.16.3
- Roll back to videojs-contrib-ads 4.2.3 to fix a bug with missing
ended
events
1 Mar 2017
v2.16.2
- Don't allow cues without IDs to be used in
oncue
request mode - Updated to use videojs-contrib-ads 4.2.4
- No longer take postroll snapshot when there will be no postroll
- Video.js 5/6 cross-compatibility
2 Feb 2017
v2.16.1
This is a bugfix update.
- Make HTML5 ads in iframes responsive when possible
- Prevent erroneous
admuted
tracking in GAM - Localize ad control bar for both HTML5 and Flash
- Allow right-clicking to enable Flash in Chrome
- Updated to use videojs-contrib-ads 4.2.2
- Re-fixes iOS content flash
27 Jan 2017
v2.16.0
- Added support for cueTextTracks feature in videojs-contrib-ads so Video Cloud cue points can be used to trigger ads.
19 Jan 2017
v2.15.6
- Updated to use videojs-contrib-ads 4.2.1
- The update reverted the change that prevented ad clickthrough when clicking progress bar during ad. This fix will now be in single-video-template instead.
20 Dec 2016
v2.15.5
- Updated to use videojs-contrib-ads 4.1.6
- Fixed placeholder
div
on iOS 10playsinline
- No longer sends an undocumented
adcontentplaying
event, which was only sent to cancel an extraadplaying
event; code has been refactored to not need this extra event
- Fixed placeholder
8 Dec 2016
v2.15.4
- Updated to use videojs-contrib-ads 4.1.5
- Hide captions and audio track buttons during ads (they were already hidden in IMA, so this update does not impact this project)
- Plugin now prevents ad clickthrough when clicking progress bar during ad
- Ended event now triggers correctly after the content ends additional times having ended once already
21 Nov 2016
v2.15.3
- Updated to use videojs-contrib-ads 4.1.4
- Fixed issue where blank div to prevent content flash covers ad on iPad
- Fixed to snapshot test to avoid relying on track src
- Fixed to show ad duration in Video.js 6
- Fixed to initialize
adDisplayContainer
ontouchend
instead oftouchstart
10 Nov 2016
v2.15.2
- Updated to use videojs-contrib-ads 4.1.3
- Added missing import of videojs
- Fixed for content playing behind ad on Android
- Fixed volume persistence bug when playing LIVE content
10 Nov 2016
v2.15.1
- Updated to use videojs-contrib-ads 4.1.2
- Fix bug with snapshot and text tracks
2 Nov 2016
v2.15.0
- New page variable feature in ad macros
- In IMA, ad macros are supported in the ad server URL
- A URL with a page variable macro might look like this:
http://example.com?foo={pageVariable.foo}
(that macro would be replaced with the value of the variablefoo
in the browser's JavaScript context when the ad request is made) - When your ad request is made if the page variable isn't yet available, your macro will not work
- You can learn technical details on the new ad macro feature here: https://github.com/videojs/videojs-contrib-ads#macros
- Now use
try/catch
when destroying ads manager in case it isn't created yet- This is for extra safety in edge cases, you shouldn't expect to see any difference
- Temporarily re-added
contentplayback
event- This event was part of the integration between the Brightcove IMA plugin and the open source videojs-contrib-ads project; Brightcove plans to remove it in the future
- The
playing
event is probably what you would want to use instead
26 Oct 1016
v2.14.0
- Updated to use videojs-contrib-ads 4.0.0
playing
event no longer sent before prerollcontentplayback
event removed- Fixed a flash of content introduced in Chrome 53 where ads-loading class was being removed too soon
- Added
player.ads.VERSION
- Updated to use conventions put forward by generator-videojs-plugin
- Created separate files for feature modules
- Volume and Muted states now persist across ad breaks
18 Oct 2016
v2.13.0
- Custom fields in ad macros
- Avoid timeout-length delay before content if there is no preroll in flash ad tech
- This can resolve additional issues that resulted from an unexpected delay, such as the player throwing an error on empty post-roll call
- More accurate progress bar in Flash
3 Oct 2016
v2.12.0
- Prevent extra
playing
event after a hard timeout {player.id}
macro now refers to the correct value- Smooth progress bar movement
23 Sep 2016
v2.11.6
- Updated to videojs-contrib-ads 3.3.13
- Fix check to reset snapshot on contentupdate
19 Sep 2016
v2.11.5
- Set hardTimeouts setting default to true
- Set timeout setting default to 4000 milliseconds
- Fix bug where video would pause during overlay ads
- Fix bug with display of flash tech control bar during overlay ads
- Fix bug when playing an ad-supported video after a free one
6 Sep 2016
v2.11.4
- Unified timeout settings
24 Aug 2016
v2.11.3
- Updated to videojs-contrib-ads 3.3.12
- Fix for metrics on empty ad
- Make sure player is in started state on adstart
- Ondemand adrequests no longer succeed with economics set to free
3 Aug 2016
v2.11.2
- Fix for iOS in which a flash of video content is seen before a preroll
- Fix a bug in which the ended event does not trigger after video content source is changed
27 Jul 2016
v2.11.1
- Updated to videojs-contrib-ads 3.3.10
- Fix a bug in which content would replay after postrolls under certain circumstances
22 Jul 2016
v2.11.0
- Added player.ima3.adTech
18 Jul 2016
v2.10.3
- Updated to videojs-contrib-ads 3.3.9
- Fix a bug in which contentupdate is missed in postroll
14 Jul 2016
v2.10.2
- Fix to account for adrequests made when requestmode is onplay and content is already playing
- Fixed bug where
ImaSdkSettings
did not reflect locale setting - Fixed bug where IMA3 Plugin did not respect the
setNumRedirects
setting - Updated to videojs-contrib-ads 3.3.9
- Fix a bug in which contentupdate is missed in postroll
21 Jun 2016
v2.10.1
- Workaround for Chrome bug when removing poster
- Updated to videojs-contrib-ads 3.3.8
- Fix for issue resuming after ads on Android
- Fix for issue requesting ads for subsequent videos
16 Jun 2016
v2.10.0
- Hide poster and tech before preroll
13 Jun 2016
v2.9.1
- Fixed a bug where content would replay after a postroll completed
6 Jun 2016
v2.9.0
- Hard timeouts now work for VAST ads that do not use VMAP as well as with the Flash ad tech
- Fixed bug that could cause a flash of content on source change
- Fixed bug where first adrequest would fail with requestMode:ondemand + autoplay + preload:none + html5 ad tech
26 May 2016
v2.8.0
- Add default
postrollTimeout
of 1000 milliseconds - Add missing logic for flash ad tech to destroy ads manager on
adserror
- No longer send nopreroll for VAST ads
- No longer send adrequest for empty string content source
- Cancel multiple ad requests for the same content source
- No longer allow autoplay with onplay; it changes it to onload
10 May 2016
v2.7.1
- Fix to live ads that was introduced in 2.7.0
- Fix in live ads code that introduced intermittant errors on iOS8 (even in non-live scenarios)
28 Apr 2016
v2.7.0
- Added
ad_keys
to ad macros - Code maintenance to enable
vjsstandard
- No longer plays ads when Economics flag is set to
FREE
20 Apr 2016
v2.6.0
- Ability to play and cancel ads in live streams based on ID3 metadata
- Quicker load time when
requestmode
is set toondemand
oroncue
- Fixed and restored
nopostroll
feature
31 Mar 2016
v2.5.2
- Rollback nopostroll feature as it was preventing
ended
events
31 Mar 2016
v2.5.1
- Minor bugfix to contrib-ads
28 Mar 2016
v2.5.0
Features
- HTML5
hardTimeouts
option. Will prevent "flash of content" when using VMAP for HTML5 ads by discarding overdue ads. Disabled by default; planned to be enabled by default in a later major version update. - Quicker load time when using IMA3 plugin with no preroll ads.
- Expose
player.ima3.currentAd.wrapperAdIds
andplayer.ima3.currentAd.wrapperAdSystems
when using Flash ad tech.
Bugfixes
- Fix display of volume slider in graphite skin
- Fix bug where progress slider would continue when paused in Flash
- Fix bug where play/pause icon would not update correctly in Flash
- Fix several situations where invalid
adtimeout
events would be sent
28 Mar 2016
v2.4.0
- Added VPAID 2 support
28 Mar 2016
v2.3.0
- Hide dock during ad playback
- Fix bug where iPad overlay ads would not click-through
- Use versioned URL for default
adSwf
value - Fix clickthroughs for HTML5 ads in IE10
20 Jan 2016
v1.14.x
- Support multiple players
30 Mar 2015
v1.13.0
- Update contrib-ads to pick up playlist support
27 Mar 2015
v1.12.0
- Add adrequest method
- Add ready method
- Add loadingSpinner option
- Fix timings in HTML controlbar
- Add black background div to prevent content flashing issues with prerolls and midrolls (on desktop)
27 Jan 2015
v1.11.0
- Add error handling
- Bump videojs-contrib-ads to 1.0.0
- Fix race condition where contentupdate can trigger twice
8 Jan 2015
v1.10.0
- Bump videojs-contrib-ads to 0.6.0
- Add no-op function stubs for text track API methods
21 Oct 2014
v1.8.0
- Bump default preroll timeout to 1000ms
- Always use a separate control bar for ad playback. Previously, ads on platforms that did not support Flash would re-use the content control bar for ad playback.
- Move ad container offscreen during content playback because IMA steals touch events on Android Chrome.
16 Oct 2014
v1.7.0
- VPAID 2.0 support for the Flash ad tech
1 Oct 2014
v1.6.0
- Update videojs-ads
- Pass updated plugin settings to the ad SWF
1 Oct 2014
v1.5.0
- Set the default ad tech order to flash, html5
28 Aug 2014
v1.4.0
- Post-roll support
- Added the ability to use custom click tracking elements with IMA3/HTML5
20 Mar 2014
v1.3.0
- Upgrade to video.js 4.4.3