Skip to main content

Vidyard GTM Event Listener

Track Vidyard video interactions in GTM. Monitor play, pause, seek, milestones, and completion with videoAction, videoLabel, and videoDuration variables.

vidyardvideogtmga4b2b-salescontent-marketing

Event fired

vidyardInteraction

Key variable

videoAction

Vidyard

Overview

Vidyard is a video platform built for B2B sales and marketing, with features like personalized videos, viewer identification, and CRM integrations. This listener uses Vidyard's Player API to track comprehensive video engagement events.

Event fired: vidyardInteraction Variables: videoAction, videoLabel, videoDuration, videoCurrentTime, videoId

Common Use Cases

  • Track sales video engagement (demos, proposals)
  • Fire lead events when prospects watch 75%+ of a sales video
  • Build Google Ads audiences of video viewers for follow-up campaigns
  • Combine with Calendly for full demo-to-booking funnel tracking

Tracked Events

videoActionDescription
playVideo starts
pauseVideo paused
seekViewer jumps to position
endVideo completes
25%25% watched
50%50% watched
75%75% watched
90%90% watched

Installation

html
<!-- GTM Custom HTML Tag: Vidyard Listener -->
<script>
(function() {
  var milestonesHit = {};
  
  function vidyardPush(action, player) {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'vidyardInteraction',
      'videoAction': action,
      'videoLabel': player.metadata && player.metadata.chapters_attributes
        ? player.metadata.chapters_attributes[0].video_attributes.title
        : player.uuid,
      'videoDuration': player.metadata && player.metadata.duration_in_seconds,
      'videoId': player.uuid
    });
  }

  var initVidyard = function() {
    if (typeof window.VidyardV4 === 'undefined') return;
    
    VidyardV4.api.getPlayersByUUID('*').forEach(function(player) {
      var key = player.uuid;
      milestonesHit[key] = {};
      
      player.on('play', function() { vidyardPush('play', player); });
      player.on('pause', function() { vidyardPush('pause', player); });
      player.on('seek', function() { vidyardPush('seek', player); });
      player.on('playerComplete', function() { vidyardPush('end', player); });
      player.on('timeupdate', function(currentTime) {
        var duration = player.metadata && player.metadata.duration_in_seconds;
        if (!duration) return;
        var pct = Math.round((currentTime / duration) * 100);
        [25, 50, 75, 90].forEach(function(m) {
          if (pct >= m && !milestonesHit[key][m]) {
            milestonesHit[key][m] = true;
            vidyardPush(m + '%', player);
          }
        });
      });
    });
  };

  if (window.VidyardV4) {
    VidyardV4.api.addReadyListener(initVidyard);
  }
})();
</script>

Data Layer Output

json
{
  "event": "vidyardInteraction",
  "videoAction": "75%",
  "videoLabel": "Enterprise Demo 2024",
  "videoDuration": 240,
  "videoId": "abc123-uuid"
}

Trigger Configuration

Trigger: Custom Event | vidyardInteraction

Variables to Capture

Variable NameDL KeyExample
DLV – Vidyard ActionvideoAction"75%"
DLV – Vidyard LabelvideoLabel"Enterprise Demo 2024"
DLV – Vidyard DurationvideoDuration240
DLV – Vidyard IDvideoId"abc123-uuid"

GA4 Mapping

GA4 EventConditionParameters
video_startvideoAction = playvideo_title, video_provider: "vidyard"
video_progressvideoAction matches 25|50|75%video_percent
video_completevideoAction = endvideo_title

Best Practices

  1. Use Vidyard's own viewer identification (email capture) alongside this listener for full funnel view
  2. 75% completion is the standard B2B high-intent threshold, fire conversion events here
  3. Cross-reference videoId with Vidyard's dashboard for viewer-level analytics

Related Listeners

More Video Players