Отслеживание видео с помощью отслеживания событий GA
Я пытаюсь настроить отслеживание событий GA на своем сайте для встраивания видео IFRAME
Vimeo. Однако я не могу понять, где / как объект отслеживания должен быть размещен в моем коде IFRAME
.
Вот мой код для вставки IFRAME
:
<iframe src="http://player.vimeo.com/video/51447433" width="500"
height="281"frameborder="0" webkitAllowFullScreen
mozallowfullscreen allowFullScreen></iframe>
Вот что я думаю GA Event Tracking code должен выглядеть так:
<a href="#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Title']);">Play</a>
Куда это идет в моем коде встраивания? Может кто-нибудь показать мне, как это должно выглядеть/работать?
2 ответа:
Вам нужно использовать API плеера, потому что вы не можете вводить код внутри iframe на стороннем домене, как это.
Основываясь на документах, предоставленных для player API t должен выглядеть примерно так.
<html> <head> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXX-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <script> var f = document.getElementsByTagName('iframe')[0], url = f.src.split('?')[0]; // Listen for messages from the player if (window.addEventListener){ window.addEventListener('message', onMessageReceived, false); } else { window.attachEvent('onmessage', onMessageReceived, false); } // Handle messages received from the player function onMessageReceived(e) { var data = JSON.parse(e.data); switch (data.event) { case 'ready': onReady(); break; case 'play': onPlay(); break; case 'finish': onFinish(); break; } } // Helper function for sending a message to the player function post(action, value) { var data = { method: action }; if (value) { data.value = value; } f.contentWindow.postMessage(JSON.stringify(data), url); } function onReady() { post('addEventListener', 'finish'); post('addEventListener', 'play'); } function onFinish() { _gaq.push(['_trackEvent', 'Vimeo Video', 'finish', url]); } function onPlay() { _gaq.push(['_trackEvent', 'Vimeo Video', 'play', url]); } </script> </head> <body> <iframe src="http://player.vimeo.com/video/27855315?api=1" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> </body> </html>
Приведенный выше код можно упростить, используя api Vimeo Mogaloop, который абстрагирует API передачи сообщений для вас, за счет загрузки Javascript с библиотекой.
Плагины готовы к работе используйте
Обратите внимание, что приведенный выше код будет работать только в качестве примера, и если у вас есть несколько видео на странице, это может быть сложнее сделать правильно. В качестве альтернативы вы можете также использовать библиотекуGAS (я там главный разработчик), которая имеет плагиндля отслеживания видео Vimeo .
Предупреждение о совместимости
Обратите внимание на предупреждение о совместимости, я думаю, что если вы вставляете плеер с помощью метода flash, вы можете получить более широкий спектр браузеров поддерживается, но полностью убивает плеер для устройств iOS:
С универсальным кодом встраивания, единственным способом взаимодействия с игрок находится с помощью окна.метод postMessage. postMessage является относительно новым разработка, поэтому он доступен только в Internet Explorer 8+, Firefox 3+, Safari 4+, Chrome и Opera 9+.
Google Analytics on Steroids имеет функцию отслеживания Vimeo. Стоит проверить в