跟踪嵌入视频事件与YouTube API - ytcfg没有定义(...)

问题描述:

我发现这个tutorial有关如何跟踪的嵌入YouTube视频GA事件,并做了我的剧本由它:跟踪嵌入视频事件与YouTube API - ytcfg没有定义(...)

(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(…)

Here你可以读它在YouTube的侧错误。确实,我的脚本中的一切都可以,我能做些什么才能使其发挥作用?

嗯,这是YouTube上的一个bug,现在有一个existing bug ticket。您可以随时查看此故障单以获取有关此问题的更新。

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