使用Universal Analytics跟踪嵌入的youtube视频

使用Universal Analytics跟踪嵌入的youtube视频,youtube,analytics,tracking,universal,Youtube,Analytics,Tracking,Universal,我正在升级到Universal Analytics,并希望跟踪tumblr博客中嵌入的youtube视频。有人能帮我调整以下代码以使用Universal Analytics吗 //此代码异步加载IFrame播放器API代码。 var tag=document.createElement('script'); tag.src=”https://www.youtube.com/iframe_api"; var firstScriptTag=document.getElementsByTagNam

我正在升级到Universal Analytics,并希望跟踪tumblr博客中嵌入的youtube视频。有人能帮我调整以下代码以使用Universal Analytics吗



//此代码异步加载IFrame播放器API代码。
var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
//此函数用于创建(和YouTube播放器)
//API代码下载后。
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
高度:'289',
宽度:“428”,
videoId:“视频ID”,
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
//当视频播放器准备就绪时,API将调用此函数。取消注释以下代码,以便在准备就绪时启动视频
函数onPlayerReady(事件){
//event.target.playVideo();
}
函数onPlayerStateChange(事件){
var lastAction=“”;
开关(事件数据){
案例YT.PlayerState.PLAYING:
如果(上次操作!=“暂停”){
_gaq.push([''u trackEvent','video','Playing',getPercentage()]);
}
否则{
lastAction='';
}
打破
案例YT.PlayerState.ENDED:
_gaq.push([''u trackEvent','video','Completed',getPercentage()]);
打破
案例YT.PlayerState.PAUSED:
如果(上次操作!=“暂停”){
_gaq.push([''u trackEvent','video','Paused',getPercentage()]);
lastAction=“暂停”;
}
打破
}
}
函数getPercentage()
{
var pecentage=((player.getCurrentTime()/player.getDuration())*100.toFixed();
如果(百分比>0&&百分比25&&百分比50&&百分比75){
返回“75-100%”;}
}
函数stopVideo(){
_gaq.push([''u trackEvent','video','Stopped',player.getDuration()]);
player.stopVideo();
}

我尝试直接使用您的代码,但遇到了一些问题,但在播放/完成使用此代码时,它至少可以用于基本通知:

<div id="player"></div>

<script>
  // 2. This code loads the IFrame Player API code asynchronously.
  var tag = document.createElement('script');

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

  // 3. This function creates an <iframe> (and YouTube player)
  //    after the API code downloads.
  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '360',
      width: '640',
      videoId: 'VIDEOID HERE',
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
  }

  // 4. The API will call this function when the video player is ready.
  //    Uncomment the event to have video start automatically.
  function onPlayerReady(event) {
    // event.target.playVideo();
  }

  // 5. The API calls this function when the player's state changes.
  //    The function indicates that when playing a video,
  //    the player should send to Google Analytics.
  function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
      ga('send', 'event', 'YouTube', 'Watched', 'Promo from Main Page');
    }
    if (event.data == YT.PlayerState.ENDED) {
      ga('send', 'event', 'YouTube', 'Finished', 'Promo from Main Page');
    }
  }
</script>        

// 2. 此代码异步加载IFrame播放器API代码。
var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
// 3. 此函数用于创建(和YouTube播放器)
//API代码下载后。
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
高度:'360',
宽度:“640”,
videoId:“此处为videoId”,
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
// 4. 当视频播放器准备就绪时,API将调用此函数。
//取消对事件的注释以自动启动视频。
函数onPlayerReady(事件){
//event.target.playVideo();
}
// 5. 当播放器的状态改变时,API调用此函数。
//该功能指示播放视频时,
//玩家应该发送到谷歌分析。
函数onPlayerStateChange(事件){
if(event.data==YT.PlayerState.PLAYING){
ga(‘发送’、‘活动’、‘YouTube’、‘观看’、‘主页宣传片’);
}
如果(event.data==YT.PlayerState.end){
ga(“发送”、“事件”、“YouTube”、“完成”、“主页促销”);
}
}

这在旧的分析上对您有用吗?我现在正试图这样做,但没有任何作为出发点。如果这起作用,那么它可能只是改变了
\u gaq。将…
推到新的
ga('send'…
,通过感谢Ryan的回复。虽然了解视频是播放还是停止是有用的,但真正有用的是了解播放的持续时间(以25%的增量).关于如何在UA中编写代码有什么建议吗?@Art您是否尝试将您的代码与我的代码(或我在评论中留下的谷歌链接)结合使用?我计划在这个周末进行测试。工作太疯狂了,我还没能尝试。完成后,我会告诉你结果。谢谢你!伙计!@Art,我现在也可以在这方面做更多的工作了,我上周参加了一个贸易展,没有时间修改它。更棒的东西@Ryan,非常感谢。另一个主要的兴趣点,我是如前所述,理解游戏持续时间(增加25%的工作量)
<div id="player"></div>

<script>
  // 2. This code loads the IFrame Player API code asynchronously.
  var tag = document.createElement('script');

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

  // 3. This function creates an <iframe> (and YouTube player)
  //    after the API code downloads.
  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '360',
      width: '640',
      videoId: 'VIDEOID HERE',
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
  }

  // 4. The API will call this function when the video player is ready.
  //    Uncomment the event to have video start automatically.
  function onPlayerReady(event) {
    // event.target.playVideo();
  }

  // 5. The API calls this function when the player's state changes.
  //    The function indicates that when playing a video,
  //    the player should send to Google Analytics.
  function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
      ga('send', 'event', 'YouTube', 'Watched', 'Promo from Main Page');
    }
    if (event.data == YT.PlayerState.ENDED) {
      ga('send', 'event', 'YouTube', 'Finished', 'Promo from Main Page');
    }
  }
</script>