Integrate Gumlet insights with video.js player and monitor video playback performance.
Video.js is a very popular player for playing videos on the web. It can play both HLS and DASH streams.
Step 1: Gumlet Insights SDK Installation
The best and easiest way to install the library is by including it in the head section of the pages after the player JS has been included in the page.
<!-- Include other videojs plugin files here -->
<script src="/path/to/video.js"></script>
<!-- Include gumlet insights sdk after Video.js -->
<script type="module" src="https://cdn.gumlytics.com/insights/3.0/main.mjs"></script>Step 2: Initialise the player
Initialise the VideoJS player with the player options you want to configure. Pass the video URL to be played.
<script type="module" >
// Player configuration
var playerOptions = {
preload: false
};
// Initiase the player with the video URL and the player configurations.
var player = videojs('my-video', playerOptions);
</script>Step 3: Create Gumlet Configuration JSON
All the data is associated with a workspace ID, which you need to get from our dashboard. Pass it in the config JSON as workspace_id. This is the only required field.
There is an option to pass extra data such as the user-specific data and video metadata, which can be viewed in the dashboard as data breakdowns. A full list of variables is available here.
<script type="module" >
// Create the Gumlet Configuration JSON
var gumletConfig = {
workspace_id: 'YOUR_WORKSPACE_ID', // required: please replace with correct workspace id.
};
</script>Step 4: Initialise Gumlet Insights SDK
Initialise the Gumlet Insights SDK with the config JSON to start receiving data on your dashboard. Pass the player object which you created in the previous step to the Gumlet Insights object.
<script type="module">
var gumletInsights = new gumlet.GumletInsights(gumletConfig);
gumletInsights.attach(player);
</script>
Done!Once you integrate with these steps, you should start seeing data on real-time dashboard.
Full Code Example
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Gumlet </title>
<link href="http://vjs.zencdn.net/5.15.1/video-js.css" rel="stylesheet" />
<script type="module" src="https://cdn.gumlytics.com/insights/3.0/main.mjs"></script>
</head>
<body>
<h1>Gumlet Insights SDK</h1>
<div id="player" style="width: 400px"></div>
<!-- Include videojs plugin files -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/7.17.3/video.min.js" integrity="sha512-DRuDECAz4fhafnRETbwWtAF+pH/cwKc7Zzh1z00L9EiGyDNWjw7fhUc6pzyffuvXelhA7MHWTbSIbxtVbVcbMg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<video id="my-video" class="video-js" controls preload="false" width="640" height="264">
<source src="https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8" type="application/x-mpegURL" />
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
<script type="module">
// Player configuration
var playerOptions = {
preload: false
};
// Initialise the player with the video URL and the player configurations.
var player = videojs('my-video', playerOptions);
// Create the Gumlet Configuration JSON
var gumletConfig = {
workspace_id: 'YOUR_WORKSPACE_ID', // required: please replace with correct workspace id.
};
var insights = new gumlet.GumletInsights(gumletConfig);
gumletInsights.attach(player);
</script>
</body>
</html>How to?
Add custom data
You can send first-party user data to our dashboard via the SDK. While building the configuration to initialise the SDK object, you can pass these parameters.
var gumletConfig = {
workspace_id: 'YOUR_WORKSPACE_ID', // required: please replace with correct workspace id.
userId : '123',
userName : 'Océane Bourgeois',
userEMail : '[email protected]',
userPhone : '(840)-295-4133',
userProfileImage : 'https://assets.gumlet.io/assets/gumlet-logo-white-font.png?w=240&format=auto',
userAddressLine1 : '8774, Rue de la Mairie',
userAddressLine2 : '',
userCity : 'Reims',
userState : 'Landes',
userCountry : 'France',
userZipcode : '83894',
customContentType : 'episode',
customVideoDurationMillis : 2600000, // 43 minutes 20 seconds
customEncodingVariant : 'test1',
customVideoLanguage : 'English',
customVideoId : 'HIMYMSeason1Episode1',
customVideoSeries : 'HIMYMSeason1',
customVideoProducer : 'Ece Tekelioglu',
customVideoTitle : 'Pilot',
customVideoVariantName : '',
customVideoVariant : '',
customPlayerIntegrationVersion : 'v1.1',
customPlayerName : 'Trailer',
customPageType : 'Homepage',
customData1 : '',
customData2 : '',
customData3 : '',
customData4 : '',
customData5 : '',
customData6 : '',
customData7 : '',
customData8 : '',
customData9 : '',
customData10 : ''
};Change the essential user details being sent to the Gumlet Dashboard.
If the user decides to login after the Gumlet SDK was attached to the player then you can use the following function to update the data being sent to the Gumlet backend.
Use the updateCustomUserData() function available in the SDK.
gumletInsights.updateCustomUserData({
userId : '123',
userName : 'Christelle Robert',
userEMail : '[email protected]',
});Change the video title that is being played in the player.
If your app supports multiple videos in the same player after it is initialised, then you need to tell our SDK to track the new video details after the player finishes playing a video and is about to start the new video.
Use the updateCustomVideoData() function available in the SDK.
gumletInsights.updateCustomVideoData({
customVideoTitle : 'Episode2'
})API Documentation
You can read full API documentation for this library at: https://www.npmjs.com/package/@gumlet/insights-js-core

