Проблема отслеживания видео Google Analytics с JWPlayer 6

Я новичок во всем этом и просто не понимаю, как отслеживать видео, которое можно воспроизвести на моем сайте. Я только что установил код GA на свою страницу, поэтому предположу, что использую новое асинхронное отслеживание. проблема в том, что я не могу отследить это видео на панели GA. Спасибо

Мой код выглядит так.

   <script type='text/javascript' src='js/jwplayer.js'></script>
    <script type='text/javascript' src='js/jwplayer.html5.js'></script>   

   (function (i, s, o, g, r, a, m) {
       i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
           (i[r].q = i[r].q || []).push(arguments)
       }, i[r].l = 1 * new Date(); a = s.createElement(o),
  m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
   })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
   ga('create', 'UA-40700489-1', 'epcint.com');
   ga('send', 'pageview');


 <script type="text/javascript">jwplayer.key = "myplayerkey=";</script> 
<script type="text/javascript">
    $(document).ready(function () {
        jwplayer('mediaplayer').setup({
            file: 'video.mp4',
            width: "100%",
            height: "480",
            autostart: true,
            ga: {


            }
        });
    });
</script>

<div id="mediaplayer">
 </div>

Любая помощь будет очень признательна. Спасибо.

Спасибо за ваш отзыв, я обновил и отладил код в отладчике GA, я получил ошибку, что это значит?

Инициализация Google Analytics. analytics_debug.js:9 Зарегистрирован новый подключаемый модуль: ga(provide, "linker", Function) analytics_debug.js:9 Зарегистрирован новый подключаемый модуль: ga(provide, "displayfeatures", Function) analytics_debug.js:9 Выполняется команда: ga(create, UA-40700489-2, infopav.com) analytics_debug.js:9 Создание нового трекера: t0 analytics_debug.js:9 Выполнение команды: ga(send, pageview) analytics_debug.js:9

Отправлен маяк: v=1&_v=j16d&a=686083534&t=pageview&_s=1&dl=http%3A%2F%2Fdev.www.infopave.com%2FPage%2FIndex%2FHOW_TO_ACCESS_LTPP_DATA&ul=en-us&de=UTF-8…30201944&_u=MCCC5~&cid=91901348 &tid=UA-40700489-2&z=1727898794

analytics_debug.js:9 adSenseId (&a) 686083534 analytics_debug.js:9 apiVersion (&v) 1 analytics_debug.js:9 clientId (&cid) 2101349279.1393503811 analytics_debug.js:9 encoding (&de) UTF-8 analytics_debug.js:9 flashVersion:9 > (&fl) 12.0 r0 analytics_debug.js:9 hitType (&t) pageview analytics_debug.js:9 javaEnabled (&je) 1 analytics_debug.js:9 язык (&ul) en-us analytics_debug.js:9 location
(&dl) http://dev.www.infopave.com/Page/Index/HOW_TO_ACCESS_LTPP_DATA analytics_debug.js:9 screenColors (&sd) 24-bit analytics_debug.js:9 screenResolution (&sr) 1680x1050 analytics_debug.js:9 title (&dt) LTPP InfoPave — как получить доступ к данным LTPP? analytics_debug.js:9 trackingId (&tid) UA-40700489-2 analytics_debug.js:9 viewportSize (&vp) 1665x429 analytics_debug.js:9

There was an error while handling a listener: TypeError: Cannot read property 'id' of null function

(){if("массив"==a.typeOf(m.playlist)&&2>m.playlist.length&&(0==m.playlist.length|| !m.playlist[0].sources||0== m.playlist[0].sources.length))g();else if(s.getStatus()==a.loaderstatus.COMPLETE){for(var e=0;em.modes[e].type;if (r.supportsConfig())return r.addEventListener(l.ERROR,d),r.embed(),c(b,f.events),b}m.fallback?(a.log("Подходящие игроки не найдены и резервное копирование включено"), new j.download(n,m,g)):(a.log("Подходящие игроки не найдены, резервное копирование отключено"),n.parentNode.replaceChild(h, n))}} jwplayer. js:3

event.returnValue устарело. Вместо этого используйте стандартный метод event.preventDefault(). jquery-1.8.2.min.js:2 9 Не удалось добавить внутреннего прослушивателя jwplayer.js:3 Произошла ошибка при обратном вызове обработчика событий

Обновленный код

 $(document).ready(function () {

        jwplayer("mediaplayer").setup({
            file: 'rtmp://s1nu7pjztotbeg.cloudfront.net/cfx/st/mp4:Help/How_To/GettingStarted_V2-Sm_x264.mp4',
            width: "100%",
            height: "480",
            autostart: true,
            events: {
                onComplete: function (evt) {

                },

                onReady: function (event) {

                    ga('send', 'event', 'Video Played', 'action', { 'page': 'http://dev.www.infopave.com/Page/Index/HOW_TO_ACCESS_LTPP_DATA' });

                },
                onPlay: function (evt) {

                },
                onVolume: function (evt) {
                    alert("the new volume is: " + evt.volume);
                }


            },


            ga: {

            }


        });

    });

я хочу отправить это, когда кто-то нажмет кнопку воспроизведения, я хочу отправить только этот код

               ga('send', 'event', 'Video Played', 'action', { 'page': 'http://dev.www.infopave.com/Page/Index/HOW_TO_ACCESS_LTPP_DATA' });

Как я могу получить нажатие этой кнопки в jquery, спасибо за вашу помощь...

Спасибо, любая помощь будет очень признательна


person Noor Rahman    schedule 28.02.2014    source источник


Ответы (3)


Я бы порекомендовал вам изучить отслеживание событий. Вы можете добавить тег в onclick, чтобы, когда пользователь нажимал для просмотра вашего видео, вы регистрировали событие, которое вы можете найти в своей Google Analytics в разделе Behavior -> events.

Я не проверял это, но вы должны сделать что-то вроде:

<div id="mediaplayer" onclick="ga('send', 'event', 'video', 'click', 'videoname');">
</div>

Примечание. События впервые появятся в стандартном отчете через 24 часа. Вы также можете увидеть их в отчетах в реальном времени.

person DaImTo    schedule 28.02.2014
comment
Спасибо DaImTo за вашу помощь. я обновил код о нажатии кнопки гиперссылки, но как я могу это сделать, когда кто-то нажимает кнопку воспроизведения или кнопку паузы и т. д. ‹a href=#PurchasePanelLink onclick=ga('отправить', 'событие', 'категория', 'действие ', {'page': '/my-new-page'});›Просмотреть сведения об отслеживании‹/a› - person Noor Rahman; 03.03.2014

и, наконец, мне удалось решить мою проблему!

 <div id="mediaplayer">
</div>
<ul>
    <li>State: <span id="stateText">IDLE</span></li>
    <li>time: <span id="elapsedText">0</span></li>
</ul>
<script type="text/javascript">        jwplayer.key = "mykeyeasdfasdf2132131=";</script>
<script type="text/javascript">

    jwplayer("mediaplayer").setup({
        file: 'rtmp://s1nu7pjztotbeg.cloudfront.net/cfx/st/mp4:Help/How_To/GettingStarted_V2-Sm_x264.mp4',
        width: 465,
        height: 300,
        autostart: true,
        events: {
            onComplete: function (event) {


                var elapsedTime = jwplayer("mediaplayer").getPosition();
                var timedurationvalue = ((elapsedTime / 60).toFixed(2));
                updateValues();
                //ga('send', 'event', 'Video Completes', 'ULR of video or Title', 'Page URL', timedurationvalue);
            },
            onReady: function (event) {
                var elapsedTime = jwplayer("mediaplayer").getPosition();
                var timedurationvalue = ((elapsedTime / 60).toFixed(2));
                updateValues();
                //  ga('send', 'event', 'Video Plays', 'ULR of video or Title', 'Page URL', timedurationvalue);
            },
            onPlay: function (event) {
                var elapsedTime = jwplayer("mediaplayer").getPosition();
                var timedurationvalue = ((elapsedTime / 60).toFixed(2));
                //  ga('send', 'event', 'Video Plays', 'ULR of video or Title', 'Page URL', timedurationvalue);

                //                    ga('send', 'event', 'category', 'action', 'label', value);
            },
            onVolume: function (event) {
                updateValues();
                alert("onvolume called!");
            },
            onPause: function (event) {


                var elapsedTime = jwplayer("mediaplayer").getPosition();
                var timedurationvalue = ((elapsedTime / 60).toFixed(2));
                //  ga('send', 'event', 'Video Paused', 'ULR of video or Title', 'Page URL', timedurationvalue);

                alert("onpause called!");
            }
        }
    });
    function setText(id, messageText) {
        document.getElementById(id).innerHTML = messageText;
    }

            function updateValues() {
                var state = jwplayer("mediaplayer").getState();
                var elapsed = jwplayer("mediaplayer").getPosition();
                setText("stateText", state);
                setText("elapsedText", (elapsed / 60).toFixed(2));
            }
</script>
person Noor Rahman    schedule 06.03.2014
comment
В комментариях к stackoverflow.com/questions/26170231/ Сотрудники JWPlayer говорят, что статистика сыгранных секунд ненадежна при использовании их реализации по умолчанию. Нашли ли вы собственное решение для надежной статистики сыгранного времени? Говорят проблема связана с HTML5 плеером. - person Justin; 26.02.2015

JW Player пока поддерживает только ga.js. Новая универсальная аналитика пока не работает. Поэтому.

person emaxsaun    schedule 28.02.2014
comment
Спасибо, я обновил код для нажатия кнопки гиперссылки, но как я могу это сделать, когда кто-то нажимает кнопку воспроизведения или кнопку паузы и т. д. ‹a href=#PurchasePanelLink onclick=ga('send', 'event', 'category', ' action', {'page': '/my-new-page'});›Просмотреть сведения об отслеживании‹/a› - person Noor Rahman; 03.03.2014
comment
Я не уверен, код, о котором я говорю, предназначен только для JW Player. - person emaxsaun; 03.03.2014
comment
Итан, спасибо, я обновил свой код, вы можете видеть, как он работает нормально, когда видео запускается при загрузке страницы, то есть я вызываю его в document.ready, он работает нормально, вы можете помочь мне, как я могу это сделать, когда некоторые нажимают кнопку воспроизведения, кнопка паузы, которую я хочу отслеживать в это время, пожалуйста, посмотрите мой код, я хочу получить нажатие кнопки воспроизведения jquery этого плейера. - person Noor Rahman; 04.03.2014
comment
Ну, это потому, что при загрузке страницы доступен вызов ga: {}. - person emaxsaun; 04.03.2014