Javascript 是否只有初始视频播放才有onStateChange事件?
正在尝试在最初的视频播放中实现谷歌跟踪 该报告给出了6个州Javascript 是否只有初始视频播放才有onStateChange事件?,javascript,jquery,youtube-api,click-tracking,Javascript,Jquery,Youtube Api,Click Tracking,正在尝试在最初的视频播放中实现谷歌跟踪 该报告给出了6个州 -1 (unstarted) 0 (ended) 1 (playing) 2 (paused) 3 (buffering) 5 (video cued). 但每次视频点击时,我使用的状态(1:播放)都会触发。我只想追踪最初的比赛项目 这就是我目前所拥有的 asyncYouTubeApiLoad(); getVideoTrackingValues(); function getVideoTrackingValues() {
-1 (unstarted)
0 (ended)
1 (playing)
2 (paused)
3 (buffering)
5 (video cued).
但每次视频点击时,我使用的状态(1:播放)都会触发。我只想追踪最初的比赛项目
这就是我目前所拥有的
asyncYouTubeApiLoad();
getVideoTrackingValues();
function getVideoTrackingValues() {
$player = $('#player'),
$yt_trackValue = $player.data('tracking-value');
}
executeYouTubeReady();
function executeYouTubeReady() {
// Wait for API
setTimeout(function() {
onYouTubeIframeAPIReady();
}, 200);
}
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
events: {
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerStateChange(event) {
// On Play
if (event.data = 1) {
fireVideoEventTracking('video_play');
}
// On End
else if (event.data = 0) {
fireVideoEventTracking('video_complete');
}
}
function fireVideoEventTracking(eventType) {
_gaq.push(['_trackEvent', 'video', eventType, $yt_trackValue]);
}
最后在onReady方法中添加了一个布尔值并进行了检查
var initialLoad = false;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady() {
initialLoad = true;
}
function onPlayerStateChange(event) {
console.log(event.data);
// On Play
if (event.data == 1 && initialLoad) {
fireVideoEventTracking('video_play');
initialLoad = false;
} else if (event.data == 0) {
fireVideoEventTracking('video_complete');
}
}