KalturaPlugins:Comscore

{{Kaltura HTML5 Plugin
 * Home Page=http://www.comscore.com/
 * Client=Kaltura
 * Repository URL=http://www.kaltura.org/kalorg/html5video/trunk/mwEmbed/modules/Comscore
 * Introduction=comScore is an Internet marketing research company providing marketing data and services to many of the Internet's largest businesses. comScore tracks all internet data on its surveyed computers in order to study online behavior. comScore’s experienced analysts work closely with clients to identify their business objectives and determine how they can best apply and benefit from comScore’s vast databases of consumer behavior. comScore maintains massive proprietary databases that provide a continuous, real-time measurement of the myriad ways in which the Internet is used and the wide variety of activities that are occurring online. comScore profile on Crunchbase

The purpose of this document is to provide product definitions for the comScore analytics Kaltura integration. The integration will include –


 * Kaltura flash player (KDP) plugin.


 * Kaltura HTML5 player plugin.


 * Kaltura studio integration.
 * Description=== Kaltura Player (KDP) Plugin ==

Overview
In order for Comscore to track events, those need to be sent from the player. The events being sent are purely content (and ads) playback related events. The events are posted via HTTP post to a Comscore service URL with a set of tags which are described in this document.

Note about OSMF - While comScore already have an out of the box OSMF plugin, it unfortunately cannot be used for the KDP if we would like to capture events from plugins such as Freewheel ad plugin due to the KDP architecture. For that purpose Kaltura needed to develop a KDP plugin.

Functional Description
Whenever a video is being played by the player, the player sends an HTTP post to the Comscore service URL (taken from comscore implementation specs)–


 * The tags should be fired immediately at the start of the video stream - one time per video, at the moment the first second of video is shown, and one time per ad break as soon as a video ad is shown, post buffering.


 * On segmented video, the tags should be fired immediately at the start of each segment - They should fire one time per video content segment at the moment the first second of the video is shown and one time per ad video at the moment the first second of the ad is shown. This should be done post buffering. Please review the following graphic for when tags should fire on an example for a video with multiple segments


 * Tags - Each post contains 7 set of tags that vary based on different parameters. Further details of these tags and the way they should be implemented in the player appears below.

‘C’ Parameters (Tags)
C Parameters are tags passed to Comscore with every event sent from the player. While a comprehensive description of the C parameters and additional useful info is available at the Comscore Video Implementation Guide (page 4) below are a few clarifications collected regarding some of the parameters and the way they should be implemented in the KDP–

C3 Owner of the content (Content producer)  This tag defines the owner of the content. For most of our customers the owner of the content will either be the customer itself and so it will be constant, however for content portals which have content from several content owners (such as Hulu) the parameter needs to be dynamic in the video level. Comscore have a number that represents each content owner Configuration should be either per-player or per-video. So for example Fox have the same C3 ID for all content, and they can configure it at a plugin configuration – (when 56 stands for ‘Fox’) Or at a content level, when c3 is mapped to a metadata field – when each entry defines its own owner parameter. The KDP plugin will map the category name to a unique comscore ID (see details below the table)

C4 Location/site where content was viewed  This tag defines the site the video is played from. Each URL the player can be embedded on is mapped to a unique ID provided by comScore and sent as the c3 parameter. As an example a player that is embedded on Fox.com will send C4 ID ‘195’ and a player that is embedded on FX.com will send C4 ID ‘359’. Player embedded on an un-mapped website (syndicated to a blog as an example) may have an ‘unknown’ code of ‘10000’ as an example. The KDP will need to identify the URL it’s embedded on, map the URL to the matching URL unique ID and pass that to Comscore as the C4 parameter.

C5 Genre and type of content  This is a unique ID for each content ‘genre’ (category) and content type (short-form, long-form, ad, etc.). This ID is a 6-digit number would differ from content to content (and ads). This tag needs to be dynamically determined by the specific video entry metadata. The C5 Tag is compiled of 6 digits - YYXXXX Prefix(YY) – the 2 first digits represent the type of content being played. For content – * “02XXXX” for all short-form content The C5 6 digit tag varies per video and is compiled of a prefix and a suffix. Prefix for ads – should be sent based on the type of ad being played. Prefix for content – A metadata field will be kept for video entries to define the “type” of content (long/short) Suffix – per video, C5 will be mapped to a metadata field – when each entry defines its own owner parameter.


 * “03XXXX” for long-form content For ads –
 * “900000” for pre-roll
 * “100000” for post-roll
 * “110000” for mid-roll Suffix(XXXX) -

Kaltura has been provided with a mapping file of approximately 150 different genres. Based on an entry metadata field (Genre=Comedy as an example) Kaltura will convert ‘Comedy’ to a unique 4 digit ID provided by comScore. If a genre code is not available, use “0000” as a suffix (020000). The complete mapping of all possible C5 parameters was provided by Comscore and is available here. Note the mapping of the categories changes between customers and between videos. The KDP plugin will map the category name to a unique comscore ID (see details below the table)

C6 Show level reporting; campaign reporting; episode reporting  This is an alphanumeric value for title. For TV shows, season and episode should be appended to the string as S##E## following a following a | character to divide the title and season/episode information. As an example a C6 tag may look like this – for the show ‘The Office’, Season 2, Episode 10, the tag will be  the plugin will do something like – $name+’|S’+$season+’E’+$episode This should be constructed dynamically as we’ll need this information in different structure for different reasons. For example


 * We may have the show name as the top level category that is selected
 * Season number may be its own field
 * Episode number may be its own field

C7 Publisher URL  The URL of the current page  The plugin can get the value this way: ExternalInterface.call("function { return document.location.href; }").toString;

C8 Publisher Page Title  The title of the current page  The plugin can get the value this way: ExternalInterface.call("function { return document.title; }").toString;

C9 HTTP Referrer  HTTP referrer to the player page  The plugin can get the value this way: ExternalInterface.call("function { return document.referrer; }").toString;

C10 Segment level reporting Segments refer to ad breaks. The only events being for are the start of a video or the start of an ad. The following format should be used: “Current Segment # - Total Segments.” So if the given stream is the second segment out of four, the C10 should read “2-4”. If there are no segments in the video, the tag should either be empty, or return 1-1 Dynamically determined by the plugin based on cue points metadata. This field is applicable for long form content which would be broken to “segments” according to the amount of cue points/ad opportunities in the video. For example, if the video has 2 video opportunities, it would break for video to 3 segments allowing the plugin to report “1-3” before the first ad, “2-3” after the first ad and “3-3” after the second ad”.

rn Random number  This number should be automatically generated for each beacon sent  Number generator: Math.ceil(Math.random*100000000) Some of the tags should be derived from video entry metadata yet mapped to a predetermined Comscore unique ID (such as C3, C4 and C5 described above) and while those don’t change often, they are subject to change every once in a while. As a solution the comscore plugin will load (Hila’s suggestion) an external XML which will be a dictionary the plugin should use to conduct mapping. That loading should be done before content is played back so we don’t miss any events. The link to the XML may be configured in the plugin parameters –
 * Installation==== Mapping Tags ===

 

And the XML will enable the mapping of the above parameters in a structure similar to this example –

Proof of Concept Plugin (March 2011)
A proof of concept of the comscore KDP plugin has already been developed (by Hila Karimov) and is available here –


 * Code – svn+ssh://{user}@kelev.kaltura.com/usr/local/kalsource/front/workspaces/kdp/branches/fox/v3.4.20/plugins/comscorePlugin
 * Demo link – http://kaldev.kaltura.com/boazapp/comscore_test/bin-release/kdp3.html

The proof of concept player properly sends events to comscore. However in this plugin all the c-parameters are configurable via the uiconf xml tag (therefore also configurable via flashvars and uivars). Example –

The plugin does not contain any of the sophisticated dynamic metadata mapping which appears above in the section ‘[#_‘C’_Parameters_(Tags) C’ Parameters (Tags)].

Remaining KDP Plugin Development Tasks -

 * Complete remaining functionality for tag mapping as described in this document.
 * Test plugin.

= Kaltura HTML5 Player Plugin = The HTML5 Player should follow the same exact implementation as the KDP plugin described above. Consider leveraging the same tag mapping XML.

= Kaltura Studio Integration = For phase 1, the comscore plugin should support the ability to enable it and configure the parameters via the ‘custom swf’ option in the KMC.



Further integration of the plugin into the KMC Studio should be determined by the Kaltura product team.

= The ComScore System =

Overview
Each comscore customer has access to a console where they are able to view the report and analytics collected by comScore. Kaltura has been provided with a test account for integration testing purposes.

Console Login and Operating Reports
To login go to – https://my.comscore.com/login/

And enter the username and password provided to you by the customer (for production testing) or for testing with the Kaltura test account enter following username and password –


 * User ID: klt_achaprak
 * Password: 9ab38



Once logged into the console go to navigate to “Direct” and then “Video” tab. Under ‘Reports’ click on ‘Tag Review’. Through the ‘Tag Review’ report you will be able to see events sent from the Kaltura player connected to this account. Note that comScore’s analytics are updated nightly and so may take up to 24 hours to appear in the console.



From the console you can also verify that each tag (metadata) is passed properly to the comscore system. Sort via the ‘Segment’ dropdown and click the ‘Run’ button –



This report will render and you will be able to see all of the tags that were passed in the selected period-



Contacts at Comscore
= Appendix 1 – Metadata Mapping for Fox.com =

Comments –


 * The Fox.com C parameter mapping file is up at http://www.fox.com/fod/videoXml.php. The show code (C5) values are near the bottom in the block.
 * Need to get from comscore the URL mapping (C4) for the Fox websites.
 * Need to get the C2 parameter from comscore for Fox as well.

= Appendix 2 – Metadata Mapping for ABC Television =

= Appendix 3 – Metadata Mapping for ABC News =

= Appendix 4 – Metadata Mapping for ABC OTV Stations =

= Appendix 5 – Metadata Mapping for Warner Bros/TMZ =

Some of the tags should be derived from video entry metadata yet mapped to a predetermined Comscore unique ID (such as C3, C4 and C5 described above) and while those don’t change often, they are subject to change every once in a while. As a solution the comscore plugin will load (Hila’s suggestion) an external XML which will be a dictionary the plugin should use to conduct mapping. That loading should be done before content is played back so we don’t miss any events. The link to the XML may be configured in the plugin parameters –
 * Installation==== Mapping Tags ===

 

And the XML will enable the mapping of the above parameters in a structure similar to this example –

Proof of Concept Plugin (March 2011)
A proof of concept of the comscore KDP plugin has already been developed (by Hila Karimov) and is available here –


 * Code – svn+ssh://{user}@kelev.kaltura.com/usr/local/kalsource/front/workspaces/kdp/branches/fox/v3.4.20/plugins/comscorePlugin
 * Demo link – http://kaldev.kaltura.com/boazapp/comscore_test/bin-release/kdp3.html

The proof of concept player properly sends events to comscore. However in this plugin all the c-parameters are configurable via the uiconf xml tag (therefore also configurable via flashvars and uivars). Example –

The plugin does not contain any of the sophisticated dynamic metadata mapping which appears above in the section ‘[#_‘C’_Parameters_(Tags) C’ Parameters (Tags)].

Remaining KDP Plugin Development Tasks -

 * Complete remaining functionality for tag mapping as described in this document.
 * Test plugin.

= Kaltura HTML5 Player Plugin = The HTML5 Player should follow the same exact implementation as the KDP plugin described above. Consider leveraging the same tag mapping XML.

= Kaltura Studio Integration = For phase 1, the comscore plugin should support the ability to enable it and configure the parameters via the ‘custom swf’ option in the KMC.



Further integration of the plugin into the KMC Studio should be determined by the Kaltura product team.

= The ComScore System =

Overview
Each comscore customer has access to a console where they are able to view the report and analytics collected by comScore. Kaltura has been provided with a test account for integration testing purposes.

Console Login and Operating Reports
To login go to – https://my.comscore.com/login/

And enter the username and password provided to you by the customer (for production testing) or for testing with the Kaltura test account enter following username and password –


 * User ID: klt_achaprak
 * Password: 9ab38



Once logged into the console go to navigate to “Direct” and then “Video” tab. Under ‘Reports’ click on ‘Tag Review’. Through the ‘Tag Review’ report you will be able to see events sent from the Kaltura player connected to this account. Note that comScore’s analytics are updated nightly and so may take up to 24 hours to appear in the console.



From the console you can also verify that each tag (metadata) is passed properly to the comscore system. Sort via the ‘Segment’ dropdown and click the ‘Run’ button –



This report will render and you will be able to see all of the tags that were passed in the selected period-



Contacts at Comscore
= Appendix 1 – Metadata Mapping for Fox.com =

Comments –


 * The Fox.com C parameter mapping file is up at http://www.fox.com/fod/videoXml.php. The show code (C5) values are near the bottom in the block.
 * Need to get from comscore the URL mapping (C4) for the Fox websites.
 * Need to get the C2 parameter from comscore for Fox as well.

= Appendix 2 – Metadata Mapping for ABC Television =

= Appendix 3 – Metadata Mapping for ABC News =

= Appendix 4 – Metadata Mapping for ABC OTV Stations =

= Appendix 5 – Metadata Mapping for Warner Bros/TMZ =

}}