This guide walks through integration with Samsung Tizen to collect video performance metrics with Mux data.
Features
The features supported by Mux Data for this player.
Include the Mux Data SDK
Install tizen-mux
either from our CDN or include the script in your application.
Initialize Mux Data
Attach tizen-mux
to your player so that Mux can collect playback metrics.
Make your data actionable
Use metadata fields to make the data collected by Mux actionable and useful.
Release notes
Mux Data is the best way to monitor video streaming performance.
Integration is easy - just initialize the Mux SDK, pass in some metadata, and you're up and running in minutes.
This documents integration instructions for Samsung Tizen TVs. For other players, see the additional Integration Guides.
The following data can be collected by the Mux Data SDK when you use the Samsung Tizen SDK, as described below.
Supported Features:
Mux Data supports applications built for Samsung Tizen TVs using JavaScript and Tizen's AVPlay API. The Samsung Tizen Smart TV SDK supports C++, JavaScript, and Microsoft .NET; this SDK is only compatible with JavaScript applications using AVPlay.
Include the Mux Data SDK by including the tizen-mux.js
JavaScript file within your index.html
file defining your application. You can use the Mux-hosted version of the script to receive automatic updates. (The API will not change within major versions, as in tizen/MAJOR_VERSION/tizen-mux.js
.)
<!-- place within the <head> of your index.html -->
<script src="//src.litix.io/tizen/2/tizen-mux.js"></script>
If you would rather host your own, the source can be found here. Also included in this repo is a sample Tizen application showing the Mux Data integration.
To monitor video playback within your Tizen application, pass the AVPlay player instance to monitorTizenPlayer
along with SDK options and metadata.
// Place in your application initialization code, around
// where you call `prepare`
var player = $('#my-player').get(0);
player.url = this.url;
var playerInitTime = monitorTizenPlayer.utils.now();
this.prepare();
monitorTizenPlayer(player, {
debug: true,
data: {
env_key: 'ENV_KEY', // required
// Metadata
player_name: 'Custom Player', // ex: 'My Main Player'
player_init_time: playerInitTime,
// ... additional metadata
},
// Optional passthrough listener
playbackListener: playbackListener
});
Tizen's AVPlay API does not allow multiple AVPlayPlaybackCallback listeners to be registered to a player. If you require your own listener to be registered, you must pass this in as playbackListener
as shown above. Mux's SDK will proxy the calls to your listener. (Note: the location of this changed with v1.0.0)
To stop monitoring your player (e.g. when playback is complete), call player.mux.stopMonitor()
.
Log in to the Mux dashboard and find the environment that corresponds to your env_key
and look for video views. It takes about a minute or two from tracking a view for it to show up on the Metrics tab.
If you aren't seeing data, check to see if you have an ad blocker, tracking blocker or some kind of network firewall that prevents your player from sending requests to Mux Data servers.
Options are provided via the data object passed in the call to monitorTizenPlayer
.
All metadata details except for env_key
are optional, however you'll be able to compare and see more interesting results as you include more details. This gives you more metrics and metadata about video streaming, and allows you to search and filter on important fields like the player version, CDN, and video title.
monitorTizenPlayer(player, {
debug: false,
data: {
env_key: 'ENV_KEY', // required
// Site Metadata
viewer_user_id: '', // ex: '12345'
experiment_name: '', // ex: 'player_test_A'
sub_property_id: '', // ex: 'cus-1'
// Player Metadata
player_name: '', // ex: 'My Main Player'
player_version: '', // ex: '1.0.0'
player_init_time: '', // ex: 1451606400000
// Video Metadata
video_id: '', // ex: 'abcd123'
video_title: '', // ex: 'My Great Video'
video_series: '', // ex: 'Weekly Great Videos'
video_duration: '', // in milliseconds, ex: 120000
video_stream_type: '', // 'live' or 'on-demand'
video_cdn: '' // ex: 'Fastly', 'Akamai'
}
});
For more information, see the Metadata Guide.
mux-embed
to v4.18.0Support player_error_context
in errorTranslator
Update mux-embed
to v4.17.0
Adds support for new and updated fields: renditionchange
, error, DRM type, dropped frames, and new custom fields
Update mux-embed
to v4.16.0
Expose utils
on SDK initialization function to expose utils.now()
for player_init_time
Update mux-embed
to v4.15.0
mux-embed
to v4.14.0mux-embed
to v4.13.4mux-embed
to v4.13.3mux-embed
to v4.13.2mux-embed
to v4.13.1Upgraded internal webpack version
Update mux-embed
to v4.13.0
mux-embed
to v4.12.1mux-embed
to v4.12.0mux-embed
to v4.11.0mux-embed
to v4.10.0mux-embed
to v4.9.4mux-embed
to v4.9.3mux-embed
to v4.9.2mux-embed
to v4.9.1mux-embed
to v4.9.0mux-embed
to v4.8.0mux-embed
to v4.7.0mux-embed
to v4.6.2mux-embed
to v4.6.1programchange
may not have been tracked correctlydestroy
was called multiple times, it would raise an exceptionmux-embed
v3.1.0monitorTizenPlayer
, alongside the debug
and data
options, as playbackListener
programchange
mux-embed
v2.8.0play
event may not have been sent appropriately