0

我正在尝试在几个网站上跟踪不同的视频。这些视频都托管在 YouTube 上,我将它们嵌入到一些 Joomla 网站中。我正在尝试为视频设置事件跟踪,以便我可以看到哪些视频正在哪些网站上播放。经过大量阅读和研究,我发现我需要设置事件和 youtube api。我已经尝试了很多版本的这种混合差异的东西,但我仍然无法触发事件。(我认为)

我拼凑了以下“代码”并将其放在网站上。我将视频嵌入页面并播放,但是当我去 ganalytics 时,事件没有被触发。我错过了什么?我可能有比我需要的更多的东西,因为我正在拼凑它。我想知道的是网站上播放了哪些视频。

enter code here

<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<iframe id="player" type="text/html"width="853" height="480" src="https://www.youtube.com/embed/9dWmDOdtPO0?enablejsapi=1&origin=http://www.mywebsite.com"
  frameborder="0"></iframe>


    <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', {

          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange,
            'onError': onPlayerError
          }
        });
      }

// 4. The API will call this function when the video player is ready.
      function onPlayerReady(event) {
       console.log('player is ready');
      }


      // 5. The API calls this function when the player's state changes.
function onPlayerStateChange(event) {
    switch (event.data) {
     case YT.PlayerState.PLAYING:
      ga('send', 'event', 'Videos', 'playing', 'Home Page Video', 'Create Memories')
      })
      break;
    case YT.PlayerState.PAUSED:
      ga('send', 'event', 'Videos', 'paused', 'Home Page Video', 'Create Memories')
      })
      break;
    case YT.PlayerState.ENDED:
      ga('send', 'event', 'Videos', 'ended', 'Home Page Video', 'Create Memories')
      })
      break;

    };
};

    </script>
4

0 回答 0