使用 Youtube API 跟踪嵌入视频事件 - ytcfg 未定义(…)

tracking embed video events with Youtube API - ytcfg is not defined(…)

我发现这个 tutorial 关于如何跟踪嵌入 YouTube 视频的 GA 事件,并根据它编写了我的脚本:

(function ($) {
  $(document).ready(function () {

    var tag = document.createElement('script');
    tag.src = "http://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

  });

  // This code is called by the YouTube API to create the player object
  function onYouTubeIframeAPIReady(event) {
    player = new YT.Player('player', {
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
  }

  var done = false;

  function onPlayerStateChange(event) {

    // track when user clicks to Play
    if (event.data == YT.PlayerState.PLAYING && done===false) {
      ga('send', 'event', 'Video', 'Prehratie videa', 'GE', 1);
      done = true;
    }
  }

}(jQuery));

在 theme_preprocess_page() 中的每一页都添加了脚本。但是,我收到一个错误:

Uncaught ReferenceError: ytcfg is not defined(…)

你可以看到它是 youtube 方面的错误。的确,我的脚本中的一切都很好,我可以做些什么来让它工作吗?

好吧,这是 YouTube 部分的错误,现在有一个 existing bug ticket。您可以随时检查此错误票以获取有关此问题的更新。

对于解决方法,我在此 YouTube Help Forum 中发现使用对象而不是 iframe。如果适用于您的情况,您可以尝试此临时解决方案。希望对你有帮助。