Отслеживаете видео вехи от пользовательского HTML5-плеера до Omniture Media Module? - PullRequest
8 голосов
/ 14 ноября 2011

У меня есть мобильное приложение Javascript, которое иногда динамически создает элемент <video> на экране. Мне нужно отслеживать воспроизведение видео с Omniture. Я связал события play, pause, ended, seeking и seeked, чтобы отслеживать, что пользователь запустил видео, сделал паузу, возобновил и остановил (или завершил просмотр видео). Это все реализовано с помощью вызовов типа

s.Media.play("some_video_name", timePosition);

и

s.Media.stop("some_video_name");

Etc. Это все в настоящее время работает.

Теперь я хочу отслеживать позиционные вехи 0, 25, 75 и 100% с помощью опции trackMilestones, но я не понимаю, как какой-либо из примеров, которые я нашел в Интернете, на самом деле сообщает Omniture s.Media объект, где они находятся. Omniture не сможет волшебным образом узнать, где находится мое видео, если только он не прикрепит обработчики событий к моему элементу видео. Это то, что они делают?

Есть ли какой-нибудь метод, который я могу вызвать для объекта s.Media, чтобы сообщить ему о моей позиции, когда мой проигрыватель воспроизводит видео?

Ответы [ 3 ]

4 голосов
/ 07 сентября 2012

Вот рабочий пример, который отслеживает 1/4 вехи (25,50,75,100).

1. Убедитесь, что в вашем файле s_code.js есть следующее:

s.loadModule("Media");
s.Media.autoTrack=false;
s.Media.trackWhilePlaying=true;
s.Media.trackMilestones="25,50,75,100";

В s_code также необходим коммуникационный модульВот отрывок того, что вам нужно

0 голосов
/ 11 апреля 2012

Вы, кажется, пропускаете звонок, который сообщает s.Media о продолжительности:

    s.Media.open("some_video_name", videoDuration, videoSrc);

Это, в сочетании с событиями воспроизведения / паузы / поиска, должно дать им приблизительно понять, где видео находится в процентах от общего воспроизведения.

Я говорю примерно, потому что подозреваю, что они в основном работают со своим собственным внутренним секундомером, который все еще может дрейфовать от головки воспроизведения видео. Например, в видео HTML5 вам нужно перехватить событие «ожидания» в дополнение к паузе. Секундомер будет предполагать скорость воспроизведения в режиме реального времени и не обрабатывать другие, не связанные с событием, причины запуска, по которым видео может воспроизводиться, но не продвигается во времени (браузер может отказаться от воспроизведения из-за видео, уже воспроизводимого в другом месте страницы / сайт). Предположительно, их секундомер достаточно хорош для их целей отслеживания.

0 голосов
/ 17 января 2012

Я не уверен, что вы уже нашли решение для этого.Но для отслеживания Milestone вы можете добавить следующий фрагмент кода в код монитора Media вашего scode.

var tracked10=false; //Variables used as "flags" to prevent the same code from running
var tracked90=false; //twice in the same video play.
s.Media.monitor = function (s,media) {

//Use this code with either JavaScript or Flash.
// eVar1 = Media Name
// event1 = Video Begins
// event2 = Reached 10%
// event3 = Reached 90%
// event4 = Reached 100%
if (media.event == "Open") { //Executes when the video opens.
s.Media.trackVars = "eVar1,events";
s.Media.trackEvents = "event1";
s.events="event1";
s.eVar1 = media.name;
s.Media.track(media.name);
}
if ((!tracked10) && (media.percent >= 10) { //Executes at 10% complete.
s.Media.trackVars = "eVar1,events";
s.Media.trackEvents = "event2";
s.events="event2"
s.eVar1 = media.name;
s.Media.track(media.name);
tracked10 = true;
}
if ((!tracked90) && (media.percent >= 90)) { //Executes at 90% complete.
s.Media.trackVars = "eVar1,events";
s.Media.trackEvents = "event3";
s.events="event3"
s.eVar1 = media.name;
s.Media.track(media.name);
tracked90 = true;
}
if (media.event == "CLOSE") { //Executes when the video completes.
s.Media.trackVars = "eVar1,events";
s.Media.trackEvents = "event4";
s.events="event4"
s.eVar1 = media.name;
s.Media.track(media.name);
var tracked10=false; //Reset flags values at Media.close if visitors can play
var tracked90=false; //additional videos without reloading the page.
}
};
...