<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nielsentest.mywikis.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AnkitAgrawal</id>
	<title>Engineering Client Portal - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://nielsentest.mywikis.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AnkitAgrawal"/>
	<link rel="alternate" type="text/html" href="https://nielsentest.mywikis.net/wiki/Special:Contributions/AnkitAgrawal"/>
	<updated>2026-04-09T05:06:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://nielsentest.mywikis.net/w/index.php?title=TizenTv&amp;diff=6631</id>
		<title>TizenTv</title>
		<link rel="alternate" type="text/html" href="https://nielsentest.mywikis.net/w/index.php?title=TizenTv&amp;diff=6631"/>
		<updated>2024-06-14T18:50:40Z</updated>

		<summary type="html">&lt;p&gt;AnkitAgrawal: /* Next steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|DCR &amp;amp; DTVR}}  {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The following document will highlight the steps needed to run Browser SDK (BSDK) on Samsung Smart TV using TIzen Studio for app development.&lt;br /&gt;
The tutorial should be used in conjunction with the documentation at [https://docs.tizen.org/application/web/get-started/tv/first-samsung-tv-app/ Create Your First Samsung Smart TV Web Application] to build an app with BSDK integration for content measurement. In this tutorial we will create a native app and highlight the different permissions required to run the BSDK.&lt;br /&gt;
&lt;br /&gt;
== Step 1: Install Tizen Studio ==&lt;br /&gt;
&lt;br /&gt;
Navigate [https://developer.tizen.org/development/tizen-studio/download here] and install Tizen Studio.&lt;br /&gt;
During installation make sure to install the '''TV Extensions package''' from the Package Manager.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Generate Security Profile ==&lt;br /&gt;
&lt;br /&gt;
Navigate [https://docs.tizen.org/application/tizen-studio/common-tools/certificate-registration here] and generate the security profile in order to run applications.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create Basic Project ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://docs.tizen.org/application/web/get-started/tv/first-samsung-tv-app/ step-by-step guide] and create the Basic Project template. &lt;br /&gt;
Replace the code in the&amp;lt;syntaxhighlight&amp;gt;index.html&amp;lt;/syntaxhighlight&amp;gt;file with the code snippet below and update the App ID with a Nielsen provided App ID during SDK initialization.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;X-UA-Compatible&amp;quot; content=&amp;quot;IE=edge&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;DCR Video Tizen Sample&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
        // Static Queue Snippet&lt;br /&gt;
        !function (e, n) {&lt;br /&gt;
            function t(e) {&lt;br /&gt;
                return &amp;quot;object&amp;quot; == typeof e ? JSON.parse(JSON.stringify(e)) : e&lt;br /&gt;
            }&lt;br /&gt;
            e[n] = e[n] ||&lt;br /&gt;
            {&lt;br /&gt;
                nlsQ: function (o, r, c) {&lt;br /&gt;
                    var s = e.document,&lt;br /&gt;
                        a = s.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
                    a.async = 1,&lt;br /&gt;
                        a.src = (&amp;quot;http:&amp;quot; === e.location.protocol ? &amp;quot;http:&amp;quot; : &amp;quot;https:&amp;quot;) + &amp;quot;//cdn-gl.imrworldwide.com/conf/&amp;quot; + o + &amp;quot;.js#name=&amp;quot; + r + &amp;quot;&amp;amp;ns=&amp;quot; + n;&lt;br /&gt;
                    var i = s.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
                    return i.parentNode.insertBefore(a, i),&lt;br /&gt;
                        e[n][r] = e[n][r] || {&lt;br /&gt;
                            g: c || {},&lt;br /&gt;
                            ggPM: function (o, c, s, a, i) { e[n][r].q = e[n][r].q || []; try { var l = t([o, c, s, a, i]); e[n][r].q.push(l) } catch (e) { console &amp;amp;&amp;amp; console.log &amp;amp;&amp;amp; console.log(&amp;quot;Error: Cannot register event in Nielsen SDK queue.&amp;quot;) } },&lt;br /&gt;
                            trackEvent: function (o) { e[n][r].te = e[n][r].te || []; try { var c = t(o); e[n][r].te.push(c) } catch (e) { console &amp;amp;&amp;amp; console.log &amp;amp;&amp;amp; console.log(&amp;quot;Error: Cannot register event in Nielsen SDK queue.&amp;quot;) } }&lt;br /&gt;
                        },&lt;br /&gt;
                        e[n][r]&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }(window, &amp;quot;NOLBUNDLE&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        // Replace (PXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) with CLIENT APP ID&lt;br /&gt;
        var nSdkInstance = NOLBUNDLE.nlsQ(&amp;quot;PXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&amp;quot;, &amp;quot;videoSdkInstance&amp;quot;, {&lt;br /&gt;
            nol_sdkDebug: &amp;quot;debug&amp;quot;,&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var contentMetadata = {&lt;br /&gt;
            type: 'content',&lt;br /&gt;
            assetid: 'VID-123456',&lt;br /&gt;
            program: 'program name',&lt;br /&gt;
            title: 'episode title with season and episode number',&lt;br /&gt;
            length: 'length in seconds',&lt;br /&gt;
            airdate: '20210321 09:00:00',&lt;br /&gt;
            isfullepisode: 'y',&lt;br /&gt;
            adloadtype: '2'&lt;br /&gt;
        };&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
        body {&lt;br /&gt;
            background-color: white;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;DCR Video Tizen Sample App&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
      &amp;lt;video controls src=&amp;quot;https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4&amp;quot;&lt;br /&gt;
        poster=&amp;quot;https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217&amp;quot; width=&amp;quot;620&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        Sorry, your browser doesn't support embedded videos,&lt;br /&gt;
        but don't worry, you can &amp;lt;a href=&amp;quot;https://archive.org/details/BigBuckBunny_124&amp;quot;&amp;gt;download it&amp;lt;/a&amp;gt;&lt;br /&gt;
        and watch it with your favorite video player!&lt;br /&gt;
      &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/main&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
        var media = document.querySelector('video');&lt;br /&gt;
        var playheadPosition = 0;&lt;br /&gt;
        var metadataLoaded = false;&lt;br /&gt;
&lt;br /&gt;
        // Loadmetadata&lt;br /&gt;
        // Load contentMetadata object&lt;br /&gt;
        media.addEventListener('loadedmetadata', (event) =&amp;gt; {&lt;br /&gt;
            // Call SDK loadmetadata event&lt;br /&gt;
            if (!metadataLoaded) {&lt;br /&gt;
                nSdkInstance.ggPM(&amp;quot;loadmetadata&amp;quot;, contentMetadata);&lt;br /&gt;
                metadataLoaded = true;&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        media.addEventListener('play', (event) =&amp;gt; {&lt;br /&gt;
            // Call SDK play event&lt;br /&gt;
            if (!metadataLoaded) {&lt;br /&gt;
                nSdkInstance.ggPM(&amp;quot;loadmetadata&amp;quot;, contentMetadata);&lt;br /&gt;
                metadataLoaded = true;&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Player paused&lt;br /&gt;
        media.addEventListener('pause', function (e) {&lt;br /&gt;
            nSdkInstance.ggPM(&amp;quot;pause&amp;quot;, playheadPosition);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Set playhead position&lt;br /&gt;
        media.addEventListener('timeupdate', function (e) {&lt;br /&gt;
            var currTime = Math.floor(media.currentTime);&lt;br /&gt;
            if (playheadPosition &amp;lt; currTime) {&lt;br /&gt;
                playheadPosition = currTime;&lt;br /&gt;
                nSdkInstance.ggPM(&amp;quot;setplayheadposition&amp;quot;, playheadPosition);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // End&lt;br /&gt;
        media.addEventListener('ended', function (e) {&lt;br /&gt;
            nSdkInstance.ggPM(&amp;quot;end&amp;quot;, playheadPosition);&lt;br /&gt;
            metadataLoaded = false;&lt;br /&gt;
            playheadPosition = 0;&lt;br /&gt;
        });&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 4: Run Project==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;Right click on the project &amp;gt; Run As &amp;gt; Tizen Web Simulator Application (Samsung TV)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Tizen 1 Step4.png||600px|center|]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Extra configurations must be done to run and debug the application on a Target Device, please reference the following [[TizenTv_Debugging|guide]] for more information&lt;br /&gt;
&lt;br /&gt;
== Step 5: Debug App==&lt;br /&gt;
Right click anywhere in the Simulator to open the Web Inspector &amp;gt; navigate to the Console tab &amp;gt; check for BSDK initialization and content measurement.&lt;br /&gt;
[[File:Tizen 1 Step5.png||600px|center|]]&lt;br /&gt;
&lt;br /&gt;
Debug Logging: Disable logging by deleting &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;{nol_sdkDebug: 'debug'}&amp;lt;/syntaxhighlight&amp;gt; from initialization call&lt;br /&gt;
&lt;br /&gt;
== Remote control events ==&lt;br /&gt;
Build out the app further by including [https://developer.samsung.com/smarttv/develop/guides/user-interaction/remote-control.html remote control events] and attaching the player events to corresponding &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;keyCode &amp;lt;/syntaxhighlight&amp;gt; or using Tizen registered keys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var media = document.querySelector('video');&lt;br /&gt;
window.addEventListener(&amp;quot;keydown&amp;quot;, function (e) {&lt;br /&gt;
    switch (e.keyCode) {&lt;br /&gt;
        case 10252: // MediaPlayPause&lt;br /&gt;
            if(!media.paused) {&lt;br /&gt;
                media.pause(); // pause video&lt;br /&gt;
                nSdkInstance.ggPM(&amp;quot;pause&amp;quot;, playheadPosition); // SDK call&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            media.play(); // play video&lt;br /&gt;
            nSdkInstance.ggPM(&amp;quot;play&amp;quot;, contentMetadata); // SDK call&lt;br /&gt;
            break;&lt;br /&gt;
        case 10009: // Back&lt;br /&gt;
            nSdkInstance.ggPM(&amp;quot;stop&amp;quot;, playheadPosition); // SDK call&lt;br /&gt;
            break;&lt;br /&gt;
        ...&lt;br /&gt;
        default:&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Next step's ==&lt;br /&gt;
&lt;br /&gt;
For further testing Samsung Tizen TV apps, refer to this [https://docs.tizen.org/application/web/tutorials/process/run-debug-app/ guide]. If there are any questions or concerns then please reach out to the BSDK team. Reference the following guides for product specific information:&lt;br /&gt;
&lt;br /&gt;
* [[DCR_Video_Browser_SDK|DCR Video]]&lt;br /&gt;
* [[DCR_Static_Browser_SDK_(6.0.0)|DCR Static]]&lt;br /&gt;
* [[DTVR_Browser_SDK|DTVR]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For further technical details or a sample application, please contact your Technical Account Manager (TAM).&lt;/div&gt;</summary>
		<author><name>AnkitAgrawal</name></author>
	</entry>
</feed>