Изменения

Перейти к навигации Перейти к поиску

Веб-аналитика

17 229 байт добавлено, 13:19, 5 декабря 2019
Полный список событий
Для отслеживания событий, которые происходят в системе {{NameSystem}} [[Категория:Плагины]][[Категория:Статистика и передачи их в системы вебаналитики нужно разместить в разделе отчёты]]'''Управление сайтом Веб-> настройка внешнего видааналитика''' код, который будет отправлять данные о взаимодействии с элементами интерфейса— функция системы бронирования билетов онлайн {{NameSystemLink}} для отслеживания действий пользователя во время процесса поиска и бронирования авиабилетов.
пример для ==Описание==Для отслеживания действий пользователя во время процесса поиска и бронирования авиабилетов,в {{NameSystemLink}} используется система событий, позволяющая передавать данные в различные сервисы веб-аналитики,такие как '''Яндекс Метрики.Метрика''', '''Google Analytics''', а также обеспечивает возможность настроить передачу данных в любые другие сервисы.
<syntaxhighlight lang="javascript" line enclose="div" styleПринцип работы=="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
$При совершении пользователем определённых действий, в системе вызываются специальные javascript-события на объекте <code>document</code>.В объект события также передаются дополнительные данные (documentесли имеются), которые характеризуют действия пользователя.ready(function  Например, при смене типа маршрута на форме поиска, срабатывает событие <code>analytics.searchForm.tripType.value</code>и в объект события передаётся javascript-объект со свойством <code>value</code>, содержащим тип выбранного маршрута (''OW'', ''RT'' или ''CR'') {.  var actions = [= Отслеживание событий == { selector[[Файл: 'Идентификатор_цели.frdjpeg|thumb|300px|Идентификатор цели]] Для передачи информации в сервисы веб-flightsаналитики вызванные действиями пользователя javascript-carrierResults__buyButton'события необходимо «отследить», goal: получить из них желаемую информацию и сделать соответствующие обращения к сервисам веб-аналитики. Пример достижения целей в сервисе '''Яндекс.Метрика''buy_button': }, {<source lang="javascript" style="width: 40%"> selector: $(document).on('analytics.checkout.booking.new-flights-passInfo__footer__button_buybook',function (event, data) { goal: if (typeof yaCounterXXXXXX !== 'undefined') { yaCounterXXXXXX.reachGoal('book_buttonИДЕНТИФИКАТОР_ЦЕЛИ_X'); }, {}); selector: $(document).on('analytics.new-flights-passInfo__checkPopup__buttons__nextcheckout.booking.buy',function (event, data) { goal: if (typeof yaCounterXXXXXX !== 'book_continue_buttonundefined' }, ) { selector: yaCounterXXXXXX.reachGoal('.new-flights-passInfo__footer__button_buyИДЕНТИФИКАТОР_ЦЕЛИ_Y',data); goal: 'pay_button' } },);</source> { selector: Где ''XXXXXX''— номер счетчика Яндекс.nemo-flights-results__summary__switchМетрики, ''ИДЕНТИФИКАТОР_ЦЕЛИ_X'' и '', goal: ИДЕНТИФИКАТОР_ЦЕЛИ_Y'search_change_open' }идентификаторы двух разных целей в Яндекс.Метрике, а <code>data</code> — дополнительные параметры,которые в данном случае передаются { selectorкак [https: '//yandex.newru/support/metrika/data/visit-flights-passInfo__footer__button_cancelparams.xml Параметры визита]. Пример вызова события в сервисе '''Google Analytics', goal: 'book_cancel': } ];<source lang="javascript" style="width: 40%"> actions.map(function (action) { $(action.selectordocument).on('clickanalytics.checkout.booking.book', function (event, data) { yaCounterХХХХХХХХХХХХ.reachGoal ga(action.goal);'send', { hitType: 'event', eventCategory: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_КАТЕГОРИИ_X', eventAction: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_ДЕЙСТВИЯ_X', }); eventLabel: data });
});
</syntaxhighlight>
$(document).on('analytics.checkout.booking.buy', function (event, data) {
ga('send', {
hitType: 'event',
eventCategory: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_КАТЕГОРИИ_Y',
eventAction: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_ДЕЙСТВИЯ_Y',
eventLabel: data
});
});
</source>
 
== Полный список событий ==
 
{| class="wikitable" style="width:60%"
!width="17%" style="padding: 10px;"| Код события
!width="18%" style="padding: 10px;"| Параметры
!width="11%" style="padding: 10px;"| Описание
|-
| analytics.searchForm.directFlights.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция «Только прямые» / «Без пересадок”
|-
| analytics.searchForm.tripType.value
| <code>value</code>: <code>OW</code>, <code>RT</code>, <code>CR</code>
| Выбор типа маршрута
|-
| analytics.searchForm.additionalParameters.fastFlights.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция «Только короткие (до 2 часов)”, в блоке «Еще параметры”
|-
| analytics.searchForm.additionalParameters.maxRouteTime.value
| <code>value</code>: число, количество часов
| «Время в пути”, в блоке «Еще параметры”
|-
| analytics.searchForm.additionalParameters.maxPrice.value
| <code>value</code>: число, максимальная стоимость перелёта
| Поле «Цена билетов”, в блоке «Еще параметры”
|-
| analytics.searchForm.additionalParameters.carriers.value
| <code>value</code>: строка, список авиакомпаний
| Поле «Авиакомпании”, в блоке «Еще параметры”
|-
| analytics.searchForm.serviceClass.value
| <code>value</code>: строка, класс обслуживания
| Выбор класса обслуживания
|-
| analytics.searchForm.vicinityDates.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция «Искать ±3 дня» (окружные даты)
|-
| analytics.searchForm.validationError
| -
| Ошибка валидации формы поиска
|-
| analytics.searchForm.search
| -
| Запуск поиска
|-
| analytics.searchForm.scheduleSearch
| -
| Запуск поиска по расписанию
|-
| analytics.searchResults.compareTable.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Открытие / закрытие блока со сравнительной таблицей перелётов
|-
| analytics.searchResults.fastSearchForm.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Открытие / закрытие блока с формой поиска на результатах поиска
|-
| analytics.searchResults.sort.value
| <code>value</code>: строка, тип сортировки
| Выбор типа сортировки перелётов
|-
| analytics.searchResults.displayType.value
| <code>value</code>: <code>list</code>, <code>tile</code>
| Переключатель формата отображения перелётов (список/карточки)
|-
| analytics.searchResults.flight.select
| -
| Кнопка покупки перелёта на результатах поиска
|-
| analytics.searchResults.showAllFlights
| -
| Кнопка показа всех перелётов (под поисковой выдачей)
|-
| analytics.searchResults.fareFamilies.load
| -
| Кнопка «Выбрать другой тариф”, процесс поиска семейств тарифов на результатах поиска
|-
| analytics.searchResults.fareFamilies.select
| -
| Кнопка покупки перелёта в попапе выбора семейства тарифов на результатах поиска
|-
| analytics.searchResults.filter.value
| <code>name</code>: название фильтра, <code>value</code>: значение фильтра
| Фильтры поисковой выдаче
|-
| analytics.searchResults.resultsError
| -
| При поиске произошла ошибка
|-
| analytics.searchResults.noFlights
| -
| Поиск не дал результатов (нет рейсов)
|-
| analytics.checkout.customer.needNewAccount.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция создания нового аккаунта
|-
| analytics.checkout.customer.visa.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция внесения данных о визе
|-
| analytics.checkout.customer.meal.value
| <code>value</code>: строка, код типа питания
| Выбор типа питания
|-
| analytics.checkout.customer.loyaltyCard.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция внесения карты лояльности
|-
| analytics.checkout.promocode.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Попап с внесением промокода
|-
| analytics.checkout.promocode.apply
| -
| Внесение промокода
|-
| analytics.checkout.fareRules.load
| -
| Загрузка тарифных правил
|-
| analytics.checkout.booking.book
| -
| Бронирование успешно завершено
|-
| analytics.checkout.payment.gateway.value
| <code>value</code>: число, ID платежного шлюза в Nemo
| Выбор платежного шлюза
|-
| analytics.checkout.booking.cancel
| -
| Аннуляция заказа
|-
| analytics.checkout.booking.buy
| -
| Переход к оплате заказа
|-
| analytics.checkout.booking.paid
| -
| Заказ был полностью оплачен и пользователь открыл страницу с заказом. [http://support.nemo.travel/ru/%D0%92%D0%B5%D0%B1-%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0#.D0.9E.D1.82.D1.81.D0.BB.D0.B5.D0.B6.D0.B8.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D1.81.D0.BE.D0.B1.D1.8B.D1.82.D0.B8.D1.8F_.22.D0.97.D0.B0.D0.BA.D0.B0.D0.B7_.D0.B1.D1.8B.D0.BB_.D0.BF.D0.BE.D0.BB.D0.BD.D0.BE.D1.81.D1.82.D1.8C.D1.8E_.D0.BE.D0.BF.D0.BB.D0.B0.D1.87.D0.B5.D0.BD.22 Подробнее]
|-
| analytics.checkout.services.disableExtservices.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция отказа от дополнительных услуг
|-
| analytics.checkout.services.alphaInsurance.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция активации АльфаСтрахования
|-
| analytics.checkout.services.alphaInsurance.value
| <code>value</code>: строка, коды выбранных продуктов
| Выбор продукта (-ов) АльфаСтрахования
|-
| analytics.checkout.services.ervInsurance.active
| <code>value</code>: <code>true</code> или <code>false</code>
| Опция активации ERV Страхования
|-
| analytics.checkout.services.ervInsurance.value
| <code>value</code>: строка, коды выбранных продуктов
| Выбор продукта (-ов) ERV Страхования
|-
| analytics.checkout.services.ervInsurance.supplementary.value
| <code>value</code>: строка, коды выбранных продуктов
| Выбор дополнительного (-ых) продукта (-ов) ERV Страхования
|-
| analytics.checkout.services.servicePack.value
| <code>value</code>: число, ID выбранного сервисного пакета в Nemo
| Выбор сервисного пакета
|-
| analytics.checkout.booking.returnComplete
| -
| Завершение процесса возврата
|-
| analytics.checkout.booking.exchangeComplete
| -
| Завершение процесса обмена
|}
 
== Пример интеграции с сервисом Яндекс.Метрика ==
 
[[Файл:Код_счетчика_метрики.jpeg|thumb|300px|Код счетчика]]
 
Для отслеживания действий пользователей на сайте с помощью сервиса Яндекс.Метрика, необходимо:
* Зарегистрироваться в сервисе и получить код счетчика метрики ('''флаг "Асинхронный код" должен быть отключен''').
* Полученный код необходимо поместить в код страницы между тегами <code><body></body></code>, '''как можно ближе к открывающему тегу''' <code><body></code>. В рамках Nemo CMS данный код может быть размещен в одном из шаблонов сайта, в разделе настроек ''Управление сайтом → Nemo CMS → Шаблоны''.
* В настройках счетчика в панели администрирования сервиса Яндекс.Метрика добавить необходимые цели, указав произвольное название цели. В качестве значения «Тип условия»
выбрать «JavaScript-событие» и указать произвольный «Идентификатор цели», который в дальнейшем будет использован в коде
отслеживания событий.
* Добавить в шаблон, в который ранее был добавлен счетчик Яндекс.Метрики, код отслеживания нужных событий. Код отслеживания событий при этом должен располагаться в шаблоне ниже кода счетчика Яндекс.Метрики:
<source lang="javascript" style="width: 40%">
function yandexScripts($) {
$(document).on('analytics.searchForm.tripType.value', function (event, data) {
if (typeof yaCounterXXXXXX !== 'undefined') {
yaCounterXXXXXXXX.reachGoal('идентификатор_цели_смены_типа_маршрута', data);
}
});
 
$(document).on('analytics.checkout.booking.book', function (event, data) {
if (typeof yaCounterXXXXXX !== 'undefined') {
yaCounterXXXXXXXX.reachGoal('идентификатор_цели_бронирования', data);
}
});
};
if (typeof require == 'function') {
require(['jquery'], yandexScripts);
}
else {
yandexScripts($);
}
</source>
 
=== Отслеживания события "Заказ был полностью оплачен" ===
 
Отслеживание события "Заказ был полностью оплачен" должно происходить с помощью определенного кода:
 
<source lang="javascript" style="width: 40%">
function yandexScripts($) {
$(document).on('analytics.checkout.booking.paid', function (event, data) {
if (typeof yaCounterXXXXXXXX !== "undefined") {
yaCounterXXXXXXXX.reachGoal('aидентификатор_цели_оплаты');
}
else {
var interval = setInterval(function () {
if (typeof yaCounterXXXXXXXX !== "undefined") {
clearInterval(interval);
yaCounterXXXXXXXX.reachGoal('aидентификатор_цели_оплаты');
}
}, 200);
}
});
};
if (typeof require == 'function') {
require(['jquery'], yandexScripts);
}
else {
yandexScripts($);
}
</source>
 
== Пример интеграции с сервисом Google Analytics ==
 
[[Файл:Создание_цели_google.jpeg|thumb|300px|Создание цели в сервисе Google Analytics]]
 
Для отслеживания действий пользователей на сайте с помощью сервиса Google Analytics, необходимо:
* Зарегистрироваться в сервисе и получить код аналитики.
* Полученный код необходимо поместить в код страницы между тегами <code><body></body></code>, '''как можно ближе к открывающему тегу''' <code><body></code>. В рамках Nemo CMS данный код может быть размещен в одном из шаблонов сайта, в разделе настроек ''Управление сайтом → Nemo CMS → Шаблоны''.
* В панели администрирования сервиса Google Analytics добавить необходимые цели, указав тип цели как «Событие», категорию события «analytics», а действие событие установить равным коду события из Nemo (например, <code>analytics.checkout.booking.buy</code>).
* Добавить в шаблон, в который ранее был добавлен код аналитики, код отслеживания нужных событий. Код отслеживания событий при этом должен располагаться в шаблоне ниже добавленного кода аналитики:
<source lang="javascript" style="width: 40%">
function googleScripts($) {
$(document).on('analytics.searchForm.tripType.value', function (event, data) {
ga('send', {
hitType: 'event',
eventCategory: 'analytics',
eventAction: 'analytics.searchForm.tripType.value',
eventLabel: data
});
});
 
$(document).on('analytics.checkout.booking.book', function (event, data) {
ga('send', {
hitType: 'event',
eventCategory: 'analytics',
eventAction: 'analytics.checkout.booking.book',
eventLabel: data
});
});
 
$(document).on('analytics.checkout.booking.buy', function (event, data) {
ga('send', {
hitType: 'event',
eventCategory: 'analytics',
eventAction: 'analytics.checkout.booking.buy',
eventLabel: data
});
});
};
if (typeof require == 'function') {
require(['jquery'], googleScripts);
}
else {
googleScripts($);
}
</source>
 
 
== Точность ==
В массиве перечислены классы элементовДанные в системе бронирования практически никогда полностью не совпадают с данными, клик на который будет отправлять событие, указанное учтенными в goalсистемах веб-аналитики. Системы веб-аналитики отображают приблизительную картину. Для точного учета продаж следует использовать отчеты системы бронирования.{{Attention|Замените '''ХХХХХХХХХХХХ''' на номер счетчика в Яндекс Метрике!}}
Далее в Яндекс Метрике создается цель типа Javascript-событие и для нее указывается соответствующее имя goal==См.также==* [[Модуль метрики]]

Навигация

'