如何使用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');
});
好了的样子,我不知道究竟你有什么麻烦与,但发布新的问题,要求同样的事情不会帮助你。您不断发布这些问题,要求获得关于里程碑的帮助,但我还没有看到您为与里程碑直接相关的任何代码提供支持。如果您需要实际的帮助以了解您的问题出在哪里,那么发布您实际已经尝试的即相关的至您的问题。
一般来说,这里是你应该做的事情的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;
}
});
非常感谢你的帮助蜡笔。 –
如果用户再次达到同一视频的里程碑,并且用户将视频严重滑向特定里程碑(即25%,50%,75%),25%,50%,75%的里程碑如何再次触发? –
@PayalDaryani在'ended'回调函数中,您可以执行'this._isEventViews = {}'来重置所有里程碑标志。如果访问者完成视频并再次观看,这将允许它再次跟踪。 –
使用'timeupdate'事件。看到[这个答案](https://stackoverflow.com/questions/20201693/html5-video-time-tracking/20202287#20202287)。 –
谢谢@CrayonViolent。 当我以秒为单位记录时间时,使用上面提到的代码,它给我o/p为NaN。您能否告诉我,我如何在特定的时间间隔内以秒为单位记录时间。 赞25%50%视频播放75%? –
我链接的答案显示了如何以特定的百分比间隔进行操作。至于NaN,听起来像你需要做'parseInt(value)'或'Number(value)'将其转换为数字(注意我在发布的答案中是如何做到这一点的) –