如何使用adobe DTM跟踪brightcove html5播放器中的视频里程碑?

问题描述:

我有一个关于如何使用html5跟踪brightcove播放器中的里程碑(视频)的查询。如何使用adobe DTM跟踪brightcove html5播放器中的视频里程碑?

已经有预定义的事件可用于PLAY,PAUSE,STOP,但用于跟踪我无法跟踪的里程碑它通过DTM。

下文提到的是代码,这都是我为PLAY & PAUSE写 -

CODE -

videojs('te-brightcove-trigger-video_html5_api').on('play',function(){ 
    var myPlayer = this; 
    console.log('play'); 
    s.linkTrackVars='events,eVar21,prop21'; 
    s.linkTrackEvents='event22'; 
    s.eVar21 = myPlayer.mediainfo.name; 
    s.prop21 = myPlayer.mediainfo.name; 
    s.events = 'event22'; 
    s.tl(this, 'o'); 
}); 


videojs('te-brightcove-trigger-video_html5_api').on('pause',function(){ 
    console.log('pause'); 
    var myPlayer = this; 
    s.linkTrackVars='events,eVar21,prop21'; 
    s.linkTrackEvents='event21=6,event24'; 
    s.eVar21 = myPlayer.mediainfo.name; 
    s.prop21 = myPlayer.mediainfo.name; 
    s.events = 'event21=6'; 
    s.events = 'event24'; 
    s.tl(this, 'o'); 
}); 
+0

使用'timeupdate'事件。看到[这个答案](https://*.com/questions/20201693/html5-video-time-tracking/20202287#20202287)。 –

+0

谢谢@CrayonViolent。 当我以秒为单位记录时间时,使用上面提到的代码,它给我o/p为NaN。您能否告诉我,我如何在特定的时间间隔内以秒为单位记录时间。 赞25%50%视频播放75%? –

+0

我链接的答案显示了如何以特定的百分比间隔进行操作。至于NaN,听起来像你需要做'parseInt(value)'或'Number(value)'将其转换为数字(注意我在发布的答案中是如何做到这一点的) –

好了的样子,我不知道究竟你有什么麻烦与,但发布新的问题,要求同样的事情不会帮助你。您不断发布这些问题,要求获得关于里程碑的帮助,但我还没有看到您为与里程碑直接相关的任何代码提供支持。如果您需要实际的帮助以了解您的问题出在哪里,那么发布您实际已经尝试的相关的至您的问题。

一般来说,这里是你应该做的事情的working example

// keep track of events that are triggered to only trigger them once 
videojs('te-brightcove-trigger-video_html5_api')._isEventViewed = {}; 

videojs('te-brightcove-trigger-video_html5_api').on('play',function(){ 
    if (!this._isEventViewed.play) { 
    console.log('VIDEO: tracking PLAY event'); 
    /* tracking code here */ 
    this._isEventViewed.play=true; 
    } 
}); 

videojs('te-brightcove-trigger-video_html5_api').on('pause',function(){ 
    if (!this._isEventViewed.pause) { 
    console.log('VIDEO: tracking PAUSE event'); 
    /* tracking code here */ 
    this._isEventViewed.pause=true; 
    } 
}); 

videojs('te-brightcove-trigger-video_html5_api').on('timeupdate',function(){ 
    var currentTime = Number(this.currentTime()); 
    var duration = Number(this.duration()); 
    var percentViewed = Math.floor((currentTime/duration)*100); 
    var ev = this._isEventViewed; 
    //console.log(currentTime,'/', duration, ' - ',percentViewed); 
    //console.log('_isEventViewed:',ev); 
    switch(true) { 
    case (!ev['25'] && percentViewed >= 25) : 
     console.log('VIDEO: tracking 25% MILESTONE event'); 
     /* tracking code here */ 
     ev['25']=true; 
     break; 
    case (!ev['50'] && percentViewed >= 50) : 
     console.log('VIDEO: tracking 50% MILESTONE event'); 
     /* tracking code here */ 
     ev['50']=true; 
     break; 
    case (!ev['75'] && percentViewed >= 75) : 
     console.log('VIDEO: tracking 75% MILESTONE event'); 
     /* tracking code here */ 
     ev['75']=true; 
     break; 
    } // end switch percentViewed 
}); 

videojs('te-brightcove-trigger-video_html5_api').on('ended',function(){ 
    if (!this._isEventViewed.ended) { 
    console.log('VIDEO: tracking ENDED event'); 
    /* tracking code here */ 
    this._isEventViewed.ended=true; 
    } 
}); 
+0

非常感谢你的帮助蜡笔。 –

+0

如果用户再次达到同一视频的里程碑,并且用户将视频严重滑向特定里程碑(即25%,50%,75%),25%,50%,75%的里程碑如何再次触发? –

+0

@PayalDaryani在'ended'回调函数中,您可以执行'this._isEventViews = {}'来重置所有里程碑标志。如果访问者完成视频并再次观看,这将允许它再次跟踪。 –