This guide walks through integration with Samsung Tizen to collect video performance metrics with Mux data.
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>
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.
If you have integrated a custom domain for Data collection, specify your custom domain by setting beaconCollectionDomain
.
monitorTizenPlayer(player, {
debug: false,
beaconCollectionDomain: 'CUSTOM_DOMAIN', //ex: 'foo.bar.com'
data: {
env_key: 'ENV_KEY', // required
// ,,,
}
});
Update mechanism for generating unique IDs, used for view_id
and others
Update mux-embed
to v5.5.0
mux-embed
to v5.4.3mux-embed
to v5.4.2mux-embed
to v5.4.1Add updateData function that allows Mux Data metadata to be updated mid-view.
Update mux-embed
to v5.4.0
mux-embed
to v5.3.3mux-embed
to v5.3.2mux-embed
to v5.3.1mux-embed
to v5.3.0mux-embed
to v5.2.1mux-embed
to v5.2.0Target ES5 for bundles and validate bundles are ES5
Update mux-embed
to v5.1.0
mux-embed
to v5.0.0mux-embed
to v4.30.0mux-embed
to v4.29.0mux-embed
to v4.28.1mux-embed
to v4.28.0fix an issue where seek latency could be unexpectedly large
fix an issue where seek latency does not include time at end of a view
Update mux-embed
to v4.27.0
mux-embed
to v4.26.0mux-embed
to v4.25.1mux-embed
to v4.25.0Fix an issue where beacons over a certain size could get hung and not be sent
Update mux-embed
to v4.24.0
Fix an issue where tracking rebuffering can get into an infinite loop
Update mux-embed
to v4.23.0
mux-embed
to v4.22.0mux-embed
to v4.21.0mux-embed
to v4.20.0mux-embed
to v4.19.0mux-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