Migrating from Milestone to Custom Link migrating-from-milestone-to-custom-link
Overview overview
The core concepts of video measurement are the same for Milestone and Custom Link tracking, 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 Custom Link approach should be considered as a slimming down and simplifying of both the implementation and the data collected. With the Custom Link solution, no variables or methods are pre-defined for video measurement, it requires a full custom set-up. It should be possible to update the player event code to point to the custom link tracking calls for basic player events such as start and complete. See Custom Link implementation guide for more details.
The following tables provide translations between the Milestone solution and the Custom Link solution.
Migration guide migration-guide
Video Variable Reference
Default expiration: Visit
Default expiration: Page view
Type: Counter
Type: Counter
Type: Counter
Media Module variables
s.Media.trackUsingContextData
= true;
s.linkTrackVars
= 'events,
contextData.video.name’;
s.contextData["video.name"]
= mediaName;
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"
}
};
s.Media.trackVars =
"events,
prop2,
eVar1,
eVar2,
eVar3";
s.linkTrackVars
= 'events,
prop10,
eVar10,
eVar12,
eVar13,
eVar15,
contextData.
video.name,
contextData.
video.view';
s.Media.trackEvents =
"event1,
event2,
event3,
event4,
event5,
event6,
event7"
s.linkTrackEvents
= 'event2';
Optional variables
s.Media.autoTrack
= true;
s.Media.
autoTrackNetStreams
= true
s.Media.
completeByCloseOffset
= true
s.Media.
completeCloseOffsetThreshold
= 1
s.Media.playerName
= "Custom Player Name"
s.contextData['video.player']
= "CustomPlayer Name";
s.Media.
trackSeconds
= 15
s.Media.
trackMilestones
= "25,50,75";
s.Media.
trackOffsetMilestones
= "20,40,60";
s.Media.segmentByMilestones
= true;
s.Media.
segmentByOffsetMilestones
= true;
Ad tracking variables
s.Media.
adTrackSeconds
= 15
s.Media.
adTrackMilestones
= "25,50,75";
s.Media.
adTrackOffsetMilestones
= "20,40,60";
s.Media.
adSegmentByMilestones
= true;
s.Media.
adSegmentByOffsetMilestones
= true;
Media Module methods
s.Media.open(
mediaName,
mediaLength,
mediaPlayerName)
s.tl()
s.linkTrackVars
= 'events,
prop10,
eVar10,
eVar12,
eVar15,
contextData.video.name,
contextData.video.view';
s.linkTrackEvents
= 'event2';
s.prop10
= mediaName;
s.eVar10
= mediaName;
s.eVar12
= "video";
s.eVar15
= mediaPlayerName;
s.events
= 'event2';
s.contextData['video.name']
= mediaName;
s.contextData['video.view']
= 'true';
s.tl(this,'o','Video Start');
mediaName
: (required) The name of the video as you want it to appear in video reports.s.prop10 = mediaName;
s.eVar10 = mediaName;
s.contextData['video.name']
= mediaName;
mediaLength
: (required) The length of the video in seconds.s.contextData['video.length']
= "90";
mediaPlayerName
: (required) The name of the media player used to view the video, as you want it to appear in video reports.s.contextData['video.player']
= "CustomPlayer Name";
s.Media.openAd(
name,
length,
playerName,
parentName,
parentPod,
parentPodPosition,
CPM)
name
: (required) The name or ID of the ad.length
: (required) The length of the ad.playerName
: (required) The name of the media player used to view the ad.parentName
: The name or ID of the primary content where the ad is embedded.parentPod
: The position in the primary content the ad was played.parentPodPosition
: The position within the pod where the ad is played.CPM
: The CPM or encrypted CPM (prefixed with a “~”) that applies to this playback.s.Media.click(name, offset)
s.tl()
s.Media.close(mediaName)
s.Media.complete(
name,
offset)
s.tl()
s.linkTrackVars
= 'events,
prop10,
eVar10,
eVar12,
eVar15,
contextData.video.name,
contextData.video.complete';
s.linkTrackEvents
= 'event3';
s.prop10
= mediaName;
s.eVar10
= mediaName;
s.eVar12
= "video";
s.eVar15
= mediaPlayerName;
s.events
= 'event3';
s.contextData['video.name']
= mediaName;
s.contextData['video.complete']
= 'true';
s.tl(this,'o','Video Complete');
s.Media.play(
name,
offset,
segmentNum,
segment,
segmentLength)
s.Media.stop(
mediaName,
mediaOffset)
s.Media.monitor(s, media)
s.linkTrackVars
= 'events,
prop10,
eVar10,
eVar12,
eVar15,
contextData.
video.name,
contextData.
video.view';
s.linkTrackEvents = 'event2';
s.Media.track(
mediaName)