【问题标题】:Is there an onStateChange event only for initial video play?是否有仅用于初始视频播放的 onStateChange 事件?
【发布时间】:2014-03-07 20:44:05
【问题描述】:

目前正在尝试在初始视频播放时实施 Google 跟踪。

API 给出 6 个状态,

-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]);                    
}

【问题讨论】:

    标签: javascript jquery youtube-api click-tracking


    【解决方案1】:

    最终在 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');
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 2012-12-25
      • 1970-01-01
      相关资源
      最近更新 更多