DocumentationAnalyticsStreaming Media Collection Guide

Custom Link Implementation Guide

Last update: December 13, 2024
  • Topics:
  • Media Analytics

CREATED FOR:

  • User
  • Admin
  • Developer

Custom Video Tracking uses manual link tracking using custom link code within Analytics appMeasurement.
Most often, custom video link video tracking is used on platforms and devices where minimal video measurement is needed.

  • In JavaScript: the s.tl() function
  • In Mobile Apps: trackAction() Android, trackAction() iOS, trackAction() OTT
  • In the Data Insertion API: linktype tag

Requirements

  • Access to video player API events and data
  • Ability to add scripts if using Analytics SDK
  • Ability to add tracking beacons (custom scripting or hardcode) if using Data Insertion API

Metadata

  • Metadata can be added to any tracking call as part of the link data
  • Remember to update the linkTrackVars and linkTrackEvents
/* Call on video complete */

if (e.type == "ended") {
    s.linkTrackVars = 'events, prop10, eVar10, eVar12, eVar13, eVar15';
    s.linkTrackEvents = 'event3';
    s.prop10 = mediaName;
    s.eVar10 = mediaName;
    s.eVar12 = "video";
    s.eVar13 = document.title;
    s.eVar15 = mediaPlayerName;
    s.events = 'event3';
    s.tl(this,'o','Video Complete');
};

Why use Custom Link

  • Minimal prerequisites are needed
  • Works on any platform, including no-script
  • Any calculations, such as time spent or quartiles, must be calculated in a custom script
  • Very straightforward with no hidden libraries or scripts
  • Total control over every aspect of the video data

Sample JavaScript for HTML5 Player

<script type="text/javascript">
  myvideo = document.getElementById('movie');
  myvideo.addEventListener('play',myHandler,false);
  myvideo.addEventListener('seeked',myHandler,false);
  myvideo.addEventListener('seeking',myHandler,false);
  myvideo.addEventListener('pause',myHandler,false);
  myvideo.addEventListener('ended',myHandler,false);

  function myHandler(e) {
      var video = document.getElementsByTagName('video')[0];
      var mediaName="13502979:Sailing";
      var mediaLength = video.duration;
      var mediaPlayerName = "HTML5 Player";
      /*Define video offset*/
      if (video.currentTime > 0) {
          mediaOffset = Math.floor(video.currentTime);
      } else {
          mediaOffset = 0;
      };
      /*Call on video start*/
      if (e.type == "play") {
          if (mediaOffset == 0) {
              console.log(mediaPlayerName +
                ' -> start -> playhead: ' +
                Math.floor(video.currentTime));
              s.linkTrackVars='events,prop10,eVar10,eVar12,eVar13,eVar15';
              s.linkTrackEvents='event2';
              s.prop10=mediaName;
              s.eVar10=mediaName;
              s.eVar12="video";
              s.eVar13=document.title;
              s.eVar15=mediaPlayerName;
              s.events='event2';
              s.tl(this,'o','Video Start');
          }
      };

      /*Call on video pause*/
      if (e.type == "pause") {
          console.log(mediaPlayerName +' -> pause -> playhead: ' + Math.floor(video.currentTime));
          if (video.currentTime != video.duration) {
              s.linkTrackVars='events,prop10,eVar10,eVar12,eVar13,eVar15';
              s.linkTrackEvents='event7';
              s.prop10=mediaName;
              s.eVar10=mediaName;
              s.eVar12="video";
              s.eVar13=document.title;
              s.eVar15=mediaPlayerName;
              s.events='event7';
              s.tl(this,'o','Video Pause');
          }
      };

      /*Call on video complete*/
      if (e.type == "ended") {
          console.log(mediaPlayerName +
            ' -> ended -> playhead: ' +
            Math.floor(video.currentTime));
          s.linkTrackVars = 'events, prop10, eVar10, eVar12, eVar13, eVar15';
          s.linkTrackEvents = 'event3';
          s.prop10= m ediaName;
          s.eVar10=mediaName;
          s.eVar12="video";
          s.eVar13=document.title;
          s.eVar15=mediaPlayerName;
          s.events='event3';
          s.tl(this,'o','Video Complete');
      };
  };
</script>
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb