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

时间:2016-11-21 13:31:38

标签: iframe google-analytics youtube-api embed

我发现这个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()的每个页面上。但是,我收到了错误:

  

未捕获的ReferenceError:未定义ytcfg(...)

Here你可以在youtube方面看到这是一个错误。确实,我的脚本中的所有内容都可以,并且我可以做些什么才能让它工作?

1 个答案:

答案 0 :(得分:0)

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

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