Surfmeter Player SDK (Web) Changelog¶
This is the changelog for the Surfmeter Player SDK for the web. Each release lists the versions of the packages it includes. Changes that name a player apply only to the package for that player.
2026-10-29¶
This release includes @surfmeter/client-analytics v1.19.0 (plain HTML5 video), @surfmeter/videojs-analytics v2.5.0, @surfmeter/shaka-player-analytics v0.7.0 and @surfmeter/theoplayer-web-analytics v0.6.0.
- Send the first video quality report 5 seconds after the playback starts, and then one report for every 10 seconds of playback instead of every 20 seconds, so that short sessions are reported as well
- Send the remaining data when the page is hidden, for example when the user switches to another tab or app
- End the session when the user closes the page or navigates away, and send the final report, with the session marked as aborted with the reason
pageHide destroy()now sends a final report for the session, and retries sending it if it fails- Add
abort(reason)to the handler returned bymeasure(), which ends the session as aborted with a free-text reason (defaultaborted), for example when the user leaves the video - A playback error now ends the session as aborted with the reason
playbackError, instead of as finished - Send sessions that end before the video started playing, if the playback was attempted, so that video start failures and exits before playback are counted
- Report stalls sooner, also if no new part of the video can be reported yet, and count a stall that is still going on when the session ends
- Fix for implausible bitrate and frame rate values in video quality reports after quality switches and seeks
- Fix for metadata and parameters set with
setMetadata()andsetMeasurementParams()not being sent - Fix for events that could be lost when sending a report failed
- Lower CPU usage before the playback starts
- Plain HTML5 video: send video quality reports also if the codec is not known, for example with hls.js, assuming H.264 video and AAC audio
- Plain HTML5 video: send only ad, error and CDN events along with the video quality reports, instead of all playback events, which reduces the amount of data sent (the packages for the other players already did this)
- Shaka Player: end the session when the player is destroyed, not only when it is detached from the video element
- Shaka Player: fix for bitrate and codec changes not being picked up when the player switches quality or a track is selected, and for missing track information when
measure()is called afterplayer.load() - Video.js: end the session when the player is disposed
- THEOplayer: end the session when the player is destroyed
- THEOplayer: set
surfmeterMonitoringIdon the player's container element (player.element) again while the session runs