Статьи

Интеграция аналитики «Используй лучше» с Flash-сайтом

Узнайте, как можно анализировать пользовательский опыт и производительность Flash-сайтов с помощью аналитики Use It Better . Из этого туториала вы узнаете, как интегрировать аналитическую среду с демонстрационным сайтом, чтобы записывать посещения пользователей и — с некоторой магией — воспроизводить их, как если бы они были записаны на видео!

Используйте его Лучшая аналитика не ограничивается исследованием трафика для полнофункциональных Flash-сайтов, но может быть одинаково полезна при юзабилити-тестировании или измерении показателей RIA. Давайте погрузимся в ..


Давайте посмотрим на конечный результат, к которому мы будем стремиться. Нажмите на изображение ниже, чтобы воспроизвести демонстрационный визит на демонстрационный сайт, записанный ранее с помощью Use It Better:

Пример записи посещений с использованием аналитики Use It Better для Flash

Если вы хотите записать и воспроизвести свое собственное посещение, нажмите здесь, чтобы посетить сам демонстрационный сайт , затем войдите в панель аналитики, используя:

  • проект: activetuts
  • пароль: activetuts

На вкладке «Посещения» найдите свой и нажмите «Воспроизвести».


Для целей данного руководства мы будем использовать базовый план Use It Better, но процесс интеграции такой же, как и для бесплатного плана.

После загрузки и разархивирования исходного пакета вы увидите, что внутри находятся две папки. Оба содержат источники одного и того же сайта. Во время обучения мы будем работать с исходниками из папки Demo Site . Если вы хотите предварительно просмотреть, чего мы хотим достичь, проверьте папку « Демонстрационный сайт — конечный результат », в которой содержатся источники, которые уже интегрированы с «Использовать лучше».

Внутри каждой папки вы найдете папку src, содержащую файлы * .as и * .fla, и папку bin-debug со всеми файлами, необходимыми для публикации сайта — * .swf, * .html и так далее.

Если вы хотите узнать больше по любому вопросу, который я рассмотрю в учебнике, вам следует обратиться к вики Use It Better.


Чтобы сэкономить ваше время, я уже скачал классы каркаса Use It Better и поместил их в каталог демонстрационного сайта / src / com / исходного пакета учебника. В каталоге com также есть пакет Adobe, содержащий несколько полезных библиотек, которые используются и распространяются вместе с фреймворком.

Структура исходного кода учебника

В реальном случае после того, как вы зарегистрируетесь в своем собственном плане Use It Better (бесплатном или платном), вам нужно будет загрузить платформу с панели аналитики, где ее можно найти в правом столбце раздела « Настройки ».


Прежде всего откройте UIBDemo.fla и основной класс проекта UIBDemo.as, в котором вам нужно будет инициализировать Use It Better.

Начнем с импорта основного класса фреймворка, uDash :

1
2
3
4
5
package
{
  import com.useitbetter.uDash;
   
  // … the rest of the package body

Найти функцию init которая выполняется при добавлении основного фильма на сцену. Инициализируйте uDash , добавив следующую строку кода:

1
2
3
4
5
6
private function init(e:Event) : void
{
  stage.addChild( uDash.init() );
   
  // … the rest of the function body
}

Сохраните отредактированный файл и протестируйте UIBdemo.fla (Ctrl + Enter). Веб-сайт будет выглядеть так же, как и раньше, но вы увидите новое сообщение в окне вывода:

1
2
3
u MESSAGE: Welcome to uDash!
u MESSAGE: uDash connection to socket server 59873.s.useitbetter.com:59873 OK.
u MESSAGE: uDash connection to socket server 59873.s.useitbetter.com:59873 is valid.

Это означает, что веб-сайт установил соединение с серверами Use It Better и теперь регистрирует вашу активность.

Попробуйте перемещаться по сайту — заполните и отправьте контактную форму, поиграйте с машиной. Мы попытаемся повторить это посещение на следующем шаге, чтобы увидеть, работает ли запись нормально.


Если вы еще этого не сделали, самое время посетить http://panel.useitbetter.com и войти в проект, используя следующие учетные данные:

  • проект: activetuts
  • пароль: activetuts

После входа вы увидите отчет об активности, но я рекомендую перейти на вкладку «Посещения». В левом столбце вы увидите все записанные посещения, отсортированные по времени — ваш последний записанный визит будет наверху.

Важно: имейте в виду, что вы не единственный, кто использует этот учебник, и может быть зарегистрировано несколько других посещений.

В правой части страницы вы можете увидеть детали посещения. Нажмите кнопку воспроизведения , чтобы повторить визит.


Как только вы нажмете кнопку «Воспроизвести», откроется новая страница с инструкциями по воспроизведению посещения, записанного во Flash IDE. Просто скопируйте команду воспроизведения, прокомментируйте исходную init и вставьте ее из буфера обмена под ней:

1
2
// stage.addChild( uDash.init() );
stage.addChild( uDash.init(‘uTestSessionUrl@@http://panel.useitbetter.com/play/691d7f123f5d9780e613223e67ee8a22/ses/c5a72002ab439aaba2f9189718833035||uTimezoneOffset@@-120||uLocalDateTime@@Sun May 15 19:57:29 GMT+0200 2011||uSessionDateTime@@2011-05-15 18:57:30||uApiUrl@@http://api.useitbetter.com/||uSessionHash@@c5a72002ab439aaba2f9189718833035||uProjectHash@@691d7f123f5d9780e613223e67ee8a22’) )

Теперь сохраните файл AS и снова протестируйте Flash-ролик, чтобы увидеть повтор.


Ну, разве это не волшебство? Вы могли видеть движение мыши, щелчки и даже нажатия клавиш из записанного посещения. И вы сделали это всего за две строки кода!

Однако вращение машины вообще не работало. Но не волнуйся. Все, что нам нужно сделать, это просто сделать несколько небольших настроек, о которых я расскажу на следующих шагах. Но прежде чем двигаться вперед, удалите init воспроизведения и раскомментируйте оригинальный:

1
stage.addChild( uDash.init() );

В противном случае вы бы снова увидели повтор.


Как вы могли видеть, все ваши взаимодействия с сайтом с помощью мыши и клавиатуры записывались автоматически. Однако все слушатели, добавленные к объекту stage должны быть записаны вручную.

В CarInfo.as есть один такой слушатель из папки Demo Site \ src \ core \ section \ car . Проверьте номер строки. 272:

1
UIBDemo.instance.stage.addEventListener( MouseEvent.MOUSE_UP, stageMouseUpHandler );

Начните с добавления инструкции импорта:

1
2
3
4
5
6
package core.sections.car
{
  import caurina.transitions.Tweener;
  import caurina.transitions.properties.DisplayShortcuts;
   
  import com.useitbetter.uDash;

Теперь найдите функцию stageMouseUpHandler которая вызывается событием MOUSE_UP . Он отвечает за отключение вращения автомобиля после того, как пользователь отпустит кнопку мыши. Используйте метод recordMe для записи вручную:

1
2
3
4
5
private function stageMouseUpHandler( e:MouseEvent ) : void
{
    uDash.recorder.recordMe(e);
    this.removeEventListener( Event.ENTER_FRAME, thisEnterFrameHandler );
}

Еще одна вещь, которую вы должны изменить, это код, отвечающий за 360-градусный обзор автомобиля. Вращение машины зависит от положения мыши, и, конечно, вы хотите, чтобы во время воспроизведения она следовала за мышью посетителя, а не за вами.

Ищите mouseX в CarInfo.as и замените все его вхождения (их шесть) на uMouseX() , как здесь:

1
lastX = carHolder.uMouseX() // mapping cursor position

Это абсолютно безопасно — uMouseX() возвращает реальную позицию мыши во время записи, но мышь посетителя во время воспроизведения.

СОВЕТ: При интеграции большого проекта рассмотрите возможность использования редактора кода, который поддерживает поиск по нескольким файлам (например, FlashDevelop ). Это поможет вам найти все случаи в вашем проекте


На демонстрационном сайте есть только один предварительно загруженный ресурс, и это автомобиль. Если у вас более медленное интернет-соединение, чем у посетителя, чей визит вы воспроизводите, автомобиль загрузится с задержкой. В большинстве случаев вы даже не заметите разницу, но в этом уроке я покажу вам, как использовать контрольные точки для идеальной синхронизации воспроизведения.

В CarInfo.as найдите onCarLoadCompleteHandler() которая запускается событием COMPLETE после завершения предварительной загрузки автомобиля. Добавьте контрольную точку, чтобы убедиться, что повтор будет ждать, пока автомобиль не загрузится.

1
2
3
4
5
private function onCarLoadCompleteHandler( e:Event ) : void
{
  uDash.checkpoints.place(«car loaded»);
   
  // the rest of the function body

СОВЕТ: Контрольные точки полезны для синхронизации всех связанных со временем событий, таких как анимация.


Теперь снова выполните шаги 3-5, чтобы проверить запись и воспроизведение посещения — воспроизведение должно выглядеть точно так, как вы его записали. Если это произойдет — давайте двигаться вперед!


Лучше использовать это больше, чем просто повторять посещения. На самом деле, он имеет несколько мощных аналитических отчетов для работы как с отдельными посещениями, так и с агрегированными данными. На следующих шагах вы узнаете, как записывать важные мета-события: разделы и действия, которые будут подавать эти отчеты.

Примечание. Если вас интересует только повторное посещение, перейдите к шагу 14.


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

Демо-сайт использует SWFAddress для глубоких ссылок и может использовать его для автоматической записи части URL-адреса после # в качестве раздела. Т.е. посещая такой URL:

1
http://mywebsite.com/#/car

будет записано как посещение автомобильной секции.

Снова откройте основной класс проекта UIBDemo.as, расположенный в папке Demo Site \ src . Найдите initSWFAddress() и инициализируйте поддержку SWFAddress перед прослушиванием события CHANGE :

1
2
3
4
5
6
private function initSWFAddress() : void
{
  uSWFAddress.init();
  SWFAddress.setHistory( true );
  SWFAddress.addEventListener( SWFAddressEvent.CHANGE, swfAddressChangeListener );
}

Да, и не забудьте импортировать модуль Use It Better, отвечающий за интеграцию с SWFAddress:

1
2
3
4
5
6
package
{
  import com.useitbetter.uDash;
  import com.useitbetter.modules.uSWFAddress;
   
  // … the rest of the package body

Примечание. Если на сайте нет SWFAddress, вы все равно можете записывать разделы вручную.


Есть определенные желаемые действия, которые посетители могут выполнять на демо-сайте, которые порадуют владельца сайта. Например: отправка контактной формы. Давайте запишем это.

Откройте ContactInfo.as из папки Демо-сайт \ src \ core \ section \ contact . Как всегда, начнем с импорта:

1
import com.useitbetter.uDash;

Теперь найдите функцию messageSent которая вызывается после успешно отправленной формы, и добавьте Action:

1
2
3
4
5
private function messageSent() : void
{
  uDash.recorder.saveMeta(uDash.metaevents.ACTION, «User submitted form»);
 
  // the rest of the function body

Действия являются важной частью всех отчетов «Используйте это лучше» и являются одним из ключевых показателей эффективности (KPI), который поможет вам оценить ваш веб-сайт.

СОВЕТ: Вы можете записать столько действий, сколько хотите, но старайтесь быть разумными — не все действия одинаково желательны.


Хорошо, теперь есть последнее, но очень важное. Демонстрационный сайт был встроен в HTML-страницу с использованием SWFObject, чтобы соответствовать 100% окна браузера. Это означает, что размер фильма будет отличаться при разных разрешениях экрана и может быть изменен во время посещения путем изменения размера окна браузера. Мы должны записать это.

Перейдите в папку Demo Site \ bin-debug, где вы можете найти index.html . Откройте его в текстовом редакторе и найдите идентификатор объекта HTML, который содержит наш Flash-фильм. Звучит сложно, но легко найти:

1
swfobject.embedSWF(«UIBDemo.swf», «UIBDemo», «100%», «100%», «9», «expressInstall.swf», flashvars, params, attributes);

Видите второй аргумент, переданный в embedSWF ? UIBDemo ? Вот что мы искали!

СОВЕТ: Обычно при экспорте HTML из Flash IDE идентификатор совпадает с именем файла SWF.

Теперь вернитесь к Flash на UIBDemo.as . Нажмите Ctrl + F и найдите uDash.init() . Объявите ссылку на объект HTML перед этим:

1
2
3
4
5
6
7
private function init(e:Event) : void
{
  uDash.settings.uHtmlFlashObjectId = «UIBDemo»;
  stage.addChild( uDash.init() );
   
  // the rest of the function body
}

Теперь мы закончили. Нет больше кодирования. Все, что вам нужно сделать сейчас, это экспортировать Flash-фильм и опубликовать все файлы из папки Demo Site \ bin-debug на сервер (или локальный хост), где вы можете протестировать его в браузере.


Откройте веб-сайт в браузере, дурачитесь, попробуйте изменить размер браузера. По завершении закройте веб-сайт и проверьте отчет о посещениях на панели аналитики . Найдите свой визит в списке и повторите его, чтобы убедиться, что все работает нормально.


Это оно! Работать над кодом сайта, который вы сами не написали, сложно, но я надеюсь, что вы нашли этот урок интересным. Использование It Better имеет огромный потенциал, и вы можете использовать повторные посещения не только для повышения удобства использования и удобства пользователей, но и для измерения эффективности кампаний или даже для определения того, кто обманывает в вашей Flash-игре.

Несмотря на то, что демонстрационный сайт довольно прост, я думаю, что вы сможете интегрировать с Use It Better свой собственный сайт, независимо от его размера.