Migrating from Milestone to Media Analytics

Overview

The core concepts of video measurement are the same for Milestone and Media Analytics, which is taking video player events and mapping them to analytics methods, while also grabbing player metadata and values and mapping them to analytics variables. The Media Analytics solution grew out of Milestone, so many of the methods and metrics are the same, however, the configuration approach and code has changed significantly. It should be possible to update the player event code to point to the new Media Analytics methods. See SDK Overview and Tracking Overview for more details on implementing Media Analytics.

The following tables provide translations between the Milestone solution and the Media Analytics solution.

Migration guide

Variable reference

Milestone Metric Variable Type Media Analytics Metric
Content eVar
Default expiration: Visit
Content
Content Type eVar
Default expiration: Page view
Content Type
Content Time Spent Event
Type: Counter
Content Time Spent
Video Initiates Event
Type: Counter
Video Initiates
Video Completes Event
Type: Counter
Content Complete

Media Module variables

Milestone Milestone Syntax Media Analytics Media Analytics Syntax
Media.trackUsingContextData s.Media.trackUsingContextData
= true;
N/A All Media Analytics data is only sent using Context Data.
Media.contextDataMapping s.Media.contextDataMapping = {
"a.media.name":"eVar2,prop2",
"a.media.segment":"eVar3",
"a.contentType":"eVar1",
"a.media.timePlayed":"event3",
"a.media.view":"event1",
"a.media.segmentView":"event2",
"a.media.complete":"event7",
"a.media.milestones": {
25:"event4",
50:"event5",
75:"event6"
}
};
N/A Media Analytics context data is automatically populated into reserved variables. Mapping to eVars, props, and events I no longer needed within the implementation code. Customers can map context data to variables using processing rules.
Media.trackVars s.Media.trackVars =
"events,
prop2,
eVar1,
eVar2,
eVar3";
N/A No longer needed since mapping happens via reserved variables and processing rules.
Media.trackEvents s.Media.trackEvents =
"event1,
event2,
event3,
event4,
event5,
event6,
event7"
N/A No longer needed since mapping happens via reserved variables and processing rules.

Optional variables

Milestone Milestone Syntax Media Analytics Media Analytics Syntax
Media.autoTrack s.Media.autoTrack
= true;
N/A We no longer provide pre-built player mappings.
Media.autoTrackNetStreams s.Media.
autoTrackNetStreams
= true
N/A We no longer provide pre-built player mappings.
Media.completeByCloseOffset s.Media.
completeByCloseOffset
= true
N/A Content Complete only supports a 100% progress marker.
Media.completeCloseOffsetThreshold s.Media.
completeCloseOffsetThreshold
= 1
N/A Content Complete only supports a 100% progress marker.
Media.playerName s.Media.playerName
= "Custom Player Name"
SDK Key: playerName;
API Key: media.playerName
MediaHeartbeatConfig.
playerName
Media.trackSeconds s.Media.
trackSeconds
= 15
N/A Media Analytics is set to 10 seconds for content and 1 second for ads. No other options are available.
Media.trackMilestones s.Media.
trackMilestones
= "25,50,75";
N/A Media Analytics always tracks progress markers at 10%, 25%, 50%, 75%, 95%.
Media.trackOffsetMilestones s.Media.
trackOffsetMilestones
= "20,40,60";
N/A Media Analytics always tracks progress markers at 10%, 25%, 50%, 75%, 95%.
Media.segmentByMilestones s.Media.segmentByMilestones
= true;
N/A Auto track is no longer available.
Media.segmentByOffsetMilestones s.Media.
segmentByOffsetMilestones
= true;
N/A Auto track is no longer available.

Ad tracking variables

Milestone Milestone Syntax Media Analytics Media Analytics Syntax
Media.adTrackSeconds s.Media.
adTrackSeconds
= 15
N/A Media Analytics is set to 10 seconds for content and 1 second for ads. No other options are available.
Media.adTrackMilestones s.Media.
adTrackMilestones
= "25,50,75";
N/A Progress markers are not provided by default for ads. Use calculated metrics to build ad progress markers.
Media.adTrackOffsetMilestones s.Media.
adTrackOffsetMilestones
= "20,40,60";
N/A Media Analytics is set to 1 second for ads. No other options are available.
Media.adSegmentByMilestones s.Media.
adSegmentByMilestones
= true;
N/A Auto track is no longer available.
Media.adSegmentByOffsetMilestones s.Media.
adSegmentByOffsetMilestones
= true;
N/A Auto track is no longer available.

Media Module methods

Milestone Milestone Syntax Media Analytics Media Analytics Syntax
Media.open s.Media.open(
mediaName,
mediaLength,
mediaPlayerName)
trackSessionStart trackSessionStart(
mediaObject,
contextData)
mediaName mediaName: (required) The name of the video as you want it to appear in video reports. name createMediaObject(
name,
mediaId,
length,
streamType)
mediaLength mediaLength: (required) The length of the video in seconds. length createMediaObject(
name,
mediaId,
length,
streamType)
mediaPlayerName mediaPlayerName: (required) The name of the media player used to view the video, as you want it to appear in video reports. playerName MediaHeartbeatConfig.
playerName
Media.openAd s.Media.openAd(
name,
length,
playerName,
parentName,
parentPod,
parentPodPosition,
CPM)
trackEvent mediaHeartbeat.trackEvent(
MediaHeartbeat.
Event.
AdBreakStart,
adBreakObject);
...
trackEvent(
MediaHeartbeat.
Event.
AdStart,
adObject,
adCustomMetadata);
name name: (required) The name or ID of the ad. name createAdObject(
name,
adId,
position,
length)
length length: (required) The length of the ad. length createAdObject(
name,
adId,
position,
length)
playerName playerName: (required) The name of the media player used to view the ad. playerName MediaHeartbeatConfig.
playerName
parentName parentName: The name or ID of the primary content where the ad is embedded. N/A Automatically inherited.
parentPod parentPod: The position in the primary content the ad was played. position createAdBreakObject(
name,
position,
startTime)
parentPodPosition parentPodPosition: The position within the pod where the ad is played. position createAdObject(
name,
adId,
position,
length)
CPM CPM: The CPM or encrypted CPM (prefixed with a “~”) that applies to this playback. N/A Not available by default in Media Analytics.
Media.click s.Media.click(name, offset) N/A Use a custom link analytics call to track clicks.
Media.close s.Media.close(mediaName) trackSessionEnd trackSessionEnd()
Media.complete s.Media.complete(name, offset) trackComplete trackComplete()
Media.play s.Media.play(
name,
offset,
segmentNum,
segment,
segmentLength)
trackPlay trackPlay()
Media.stop s.Media.stop(mediaName, mediaOffset) trackPause
or
trackEvent
trackPause()
or trackEvent(
MediaHeartbeat.
Event.
SeekStart)
or
trackEvent(
MediaHeartbeat.
Event.
BufferStart);
Media.monitor s.Media.monitor(s, media) Use custom or standard metadata to set additional variables. var customVideoMetadata =
{
isUserLoggedIn:
"false",
tvStation:
"Sample TV station",
programmer:
"Sample programmer"
};
...
var standardVideoMetadata
= {};
standardVideoMetadata
[MediaHeartbeat.
VideoMetadataKeys.
EPISODE] =
"Sample Episode";
standardVideoMetadata
[MediaHeartbeat.
VideoMetadataKeys.
SHOW] = "Sample Show";
...
mediaObject.setValue(
MediaHeartbeat.
MediaObjectKey.
StandardVideoMetadata,
standardVideoMetadata);
Media.track s.Media.track(mediaName) N/A Tracking call frequency is automatically set.

On this page