Веб-аналитика: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Полный список событий)
 
(не показано 35 промежуточных версий 7 участников)
Строка 1: Строка 1:
Для отслеживания событий, которые происходят в системе {{NameSystem}} и передачи их в системы вебаналитики нужно разместить в разделе '''Управление сайтом → Настройка внешнего вида''' код, который будет отправлять данные о взаимодействии с элементами интерфейса
+
[[Категория:Плагины]][[Категория:Статистика и отчёты]]
 +
'''Веб-аналитика''' — функция системы бронирования билетов онлайн {{NameSystemLink}} для отслеживания действий пользователя во время процесса поиска и бронирования авиабилетов.
  
пример для Яндекс Метрики
+
==Описание==
 +
Для отслеживания действий пользователя во время процесса поиска и бронирования авиабилетов,
 +
в {{NameSystemLink}} используется система событий, позволяющая передавать данные в различные сервисы веб-аналитики,
 +
такие как '''Яндекс.Метрика''', '''Google Analytics''', а также обеспечивает возможность настроить передачу данных в любые другие сервисы.
  
{{Attention|Необходимо откорректировать этот код в соответствии с используемыми в вашей теме оформления классами элементов!}}
+
==Принцип работы==
  
<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>
var actions = [
+
и в объект события передаётся javascript-объект со свойством <code>value</code>, содержащим тип выбранного маршрута (''OW'', ''RT'' или ''CR'').
{
+
 
selector: '.frd-flights-carrierResults__buyButton',
+
== Отслеживание событий ==
goal: 'buy_button'
+
 
},
+
[[Файл:Идентификатор_цели.jpeg|thumb|300px|Идентификатор цели]]
{
+
 
selector: '.new-flights-passInfo__footer__button_buy',
+
Для передачи информации в сервисы веб-аналитики вызванные действиями пользователя javascript-события необходимо «отследить»,
goal: 'book_button'
+
получить из них желаемую информацию и сделать соответствующие обращения к сервисам веб-аналитики.
},
+
 
{
+
Пример достижения целей в сервисе '''Яндекс.Метрика''':
selector: '.new-flights-passInfo__checkPopup__buttons__next',
+
 
goal: 'book_continue_button'
+
<source lang="javascript" style="width: 40%">
},
+
$(document).on('analytics.checkout.booking.book', function (event, data) {
{
+
    if (typeof yaCounterXXXXXX !== 'undefined') {
selector: '.new-flights-passInfo__footer__button_buy',
+
        yaCounterXXXXXX.reachGoal('ИДЕНТИФИКАТОР_ЦЕЛИ_X');
goal: 'pay_button'
+
    }
},
 
{
 
selector: '.nemo-flights-results__summary__switch',
 
goal: 'search_change_open'
 
},
 
{
 
selector: '.new-flights-passInfo__footer__button_cancel',
 
goal: 'book_cancel'
 
}
 
];
 
 
actions.map(function (action) {
 
$(document).on('click', action.selector, function (event) {
 
event.preventDefault();
 
event.stopPropagation();
 
 
yaCounterХХХХХХХХХХХХ.reachGoal(action.goal);
 
 
return false;
 
});
 
});
 
 
});
 
});
</syntaxhighlight>
+
   
 +
$(document).on('analytics.checkout.booking.buy', function (event, data) {
 +
    if (typeof yaCounterXXXXXX !== 'undefined') {
 +
        yaCounterXXXXXX.reachGoal('ИДЕНТИФИКАТОР_ЦЕЛИ_Y', data);
 +
    }
 +
});
 +
</source>
 +
 
 +
Где ''XXXXXX'' — номер счетчика Яндекс.Метрики, ''ИДЕНТИФИКАТОР_ЦЕЛИ_X'' и ''ИДЕНТИФИКАТОР_ЦЕЛИ_Y'' —
 +
идентификаторы двух разных целей в Яндекс.Метрике, а <code>data</code> — дополнительные параметры, которые в данном случае передаются
 +
как [https://yandex.ru/support/metrika/data/visit-params.xml Параметры визита].
 +
 
 +
Пример вызова события в сервисе '''Google Analytics''':
 +
 
 +
<source lang="javascript" style="width: 40%">
 +
$(document).on('analytics.checkout.booking.book', function (event, data) {
 +
    ga('send', {
 +
        hitType: 'event',
 +
        eventCategory: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_КАТЕГОРИИ_X',
 +
        eventAction: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_ДЕЙСТВИЯ_X',
 +
        eventLabel: data
 +
    });
 +
});
 +
 
 +
$(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.
+
==См. также==
 +
* [[Модуль метрики]]

Текущая версия на 13:19, 5 декабря 2019

Веб-аналитика — функция системы бронирования билетов онлайн Nemo.travel для отслеживания действий пользователя во время процесса поиска и бронирования авиабилетов.

Описание

Для отслеживания действий пользователя во время процесса поиска и бронирования авиабилетов, в Nemo.travel используется система событий, позволяющая передавать данные в различные сервисы веб-аналитики, такие как Яндекс.Метрика, Google Analytics, а также обеспечивает возможность настроить передачу данных в любые другие сервисы.

Принцип работы

При совершении пользователем определённых действий, в системе вызываются специальные javascript-события на объекте document. В объект события также передаются дополнительные данные (если имеются), которые характеризуют действия пользователя.

Например, при смене типа маршрута на форме поиска, срабатывает событие analytics.searchForm.tripType.value и в объект события передаётся javascript-объект со свойством value, содержащим тип выбранного маршрута (OW, RT или CR).

Отслеживание событий

Идентификатор цели

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

Пример достижения целей в сервисе Яндекс.Метрика:

$(document).on('analytics.checkout.booking.book', function (event, data) {
    if (typeof yaCounterXXXXXX !== 'undefined') {
        yaCounterXXXXXX.reachGoal('ИДЕНТИФИКАТОР_ЦЕЛИ_X');
    }
});
    
$(document).on('analytics.checkout.booking.buy', function (event, data) {
    if (typeof yaCounterXXXXXX !== 'undefined') {
        yaCounterXXXXXX.reachGoal('ИДЕНТИФИКАТОР_ЦЕЛИ_Y', data);
    }
});

Где XXXXXX — номер счетчика Яндекс.Метрики, ИДЕНТИФИКАТОР_ЦЕЛИ_X и ИДЕНТИФИКАТОР_ЦЕЛИ_Y — идентификаторы двух разных целей в Яндекс.Метрике, а data — дополнительные параметры, которые в данном случае передаются как Параметры визита.

Пример вызова события в сервисе Google Analytics:

$(document).on('analytics.checkout.booking.book', function (event, data) {
    ga('send', {
        hitType: 'event',
        eventCategory: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_КАТЕГОРИИ_X',
        eventAction: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_ДЕЙСТВИЯ_X',
        eventLabel: data
    });
});

$(document).on('analytics.checkout.booking.buy', function (event, data) {
    ga('send', {
        hitType: 'event',
        eventCategory: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_КАТЕГОРИИ_Y',
        eventAction: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_ДЕЙСТВИЯ_Y',
        eventLabel: data
    });
});

Полный список событий

Код события Параметры Описание
analytics.searchForm.directFlights.active value: true или false Опция «Только прямые» / «Без пересадок”
analytics.searchForm.tripType.value value: OW, RT, CR Выбор типа маршрута
analytics.searchForm.additionalParameters.fastFlights.active value: true или false Опция «Только короткие (до 2 часов)”, в блоке «Еще параметры”
analytics.searchForm.additionalParameters.maxRouteTime.value value: число, количество часов «Время в пути”, в блоке «Еще параметры”
analytics.searchForm.additionalParameters.maxPrice.value value: число, максимальная стоимость перелёта Поле «Цена билетов”, в блоке «Еще параметры”
analytics.searchForm.additionalParameters.carriers.value value: строка, список авиакомпаний Поле «Авиакомпании”, в блоке «Еще параметры”
analytics.searchForm.serviceClass.value value: строка, класс обслуживания Выбор класса обслуживания
analytics.searchForm.vicinityDates.active value: true или false Опция «Искать ±3 дня» (окружные даты)
analytics.searchForm.validationError - Ошибка валидации формы поиска
analytics.searchForm.search - Запуск поиска
analytics.searchForm.scheduleSearch - Запуск поиска по расписанию
analytics.searchResults.compareTable.active value: true или false Открытие / закрытие блока со сравнительной таблицей перелётов
analytics.searchResults.fastSearchForm.active value: true или false Открытие / закрытие блока с формой поиска на результатах поиска
analytics.searchResults.sort.value value: строка, тип сортировки Выбор типа сортировки перелётов
analytics.searchResults.displayType.value value: list, tile Переключатель формата отображения перелётов (список/карточки)
analytics.searchResults.flight.select - Кнопка покупки перелёта на результатах поиска
analytics.searchResults.showAllFlights - Кнопка показа всех перелётов (под поисковой выдачей)
analytics.searchResults.fareFamilies.load - Кнопка «Выбрать другой тариф”, процесс поиска семейств тарифов на результатах поиска
analytics.searchResults.fareFamilies.select - Кнопка покупки перелёта в попапе выбора семейства тарифов на результатах поиска
analytics.searchResults.filter.value name: название фильтра, value: значение фильтра Фильтры поисковой выдаче
analytics.searchResults.resultsError - При поиске произошла ошибка
analytics.searchResults.noFlights - Поиск не дал результатов (нет рейсов)
analytics.checkout.customer.needNewAccount.active value: true или false Опция создания нового аккаунта
analytics.checkout.customer.visa.active value: true или false Опция внесения данных о визе
analytics.checkout.customer.meal.value value: строка, код типа питания Выбор типа питания
analytics.checkout.customer.loyaltyCard.active value: true или false Опция внесения карты лояльности
analytics.checkout.promocode.active value: true или false Попап с внесением промокода
analytics.checkout.promocode.apply - Внесение промокода
analytics.checkout.fareRules.load - Загрузка тарифных правил
analytics.checkout.booking.book - Бронирование успешно завершено
analytics.checkout.payment.gateway.value value: число, ID платежного шлюза в Nemo Выбор платежного шлюза
analytics.checkout.booking.cancel - Аннуляция заказа
analytics.checkout.booking.buy - Переход к оплате заказа
analytics.checkout.booking.paid - Заказ был полностью оплачен и пользователь открыл страницу с заказом. Подробнее
analytics.checkout.services.disableExtservices.active value: true или false Опция отказа от дополнительных услуг
analytics.checkout.services.alphaInsurance.active value: true или false Опция активации АльфаСтрахования
analytics.checkout.services.alphaInsurance.value value: строка, коды выбранных продуктов Выбор продукта (-ов) АльфаСтрахования
analytics.checkout.services.ervInsurance.active value: true или false Опция активации ERV Страхования
analytics.checkout.services.ervInsurance.value value: строка, коды выбранных продуктов Выбор продукта (-ов) ERV Страхования
analytics.checkout.services.ervInsurance.supplementary.value value: строка, коды выбранных продуктов Выбор дополнительного (-ых) продукта (-ов) ERV Страхования
analytics.checkout.services.servicePack.value value: число, ID выбранного сервисного пакета в Nemo Выбор сервисного пакета
analytics.checkout.booking.returnComplete - Завершение процесса возврата
analytics.checkout.booking.exchangeComplete - Завершение процесса обмена

Пример интеграции с сервисом Яндекс.Метрика

Код счетчика

Для отслеживания действий пользователей на сайте с помощью сервиса Яндекс.Метрика, необходимо:

  • Зарегистрироваться в сервисе и получить код счетчика метрики (флаг "Асинхронный код" должен быть отключен).
  • Полученный код необходимо поместить в код страницы между тегами <body></body>, как можно ближе к открывающему тегу <body>. В рамках Nemo CMS данный код может быть размещен в одном из шаблонов сайта, в разделе настроек Управление сайтом → Nemo CMS → Шаблоны.
  • В настройках счетчика в панели администрирования сервиса Яндекс.Метрика добавить необходимые цели, указав произвольное название цели. В качестве значения «Тип условия»

выбрать «JavaScript-событие» и указать произвольный «Идентификатор цели», который в дальнейшем будет использован в коде отслеживания событий.

  • Добавить в шаблон, в который ранее был добавлен счетчик Яндекс.Метрики, код отслеживания нужных событий. Код отслеживания событий при этом должен располагаться в шаблоне ниже кода счетчика Яндекс.Метрики:
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($);
}

Отслеживания события "Заказ был полностью оплачен"

Отслеживание события "Заказ был полностью оплачен" должно происходить с помощью определенного кода:

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($);
}

Пример интеграции с сервисом Google Analytics

Создание цели в сервисе Google Analytics

Для отслеживания действий пользователей на сайте с помощью сервиса Google Analytics, необходимо:

  • Зарегистрироваться в сервисе и получить код аналитики.
  • Полученный код необходимо поместить в код страницы между тегами <body></body>, как можно ближе к открывающему тегу <body>. В рамках Nemo CMS данный код может быть размещен в одном из шаблонов сайта, в разделе настроек Управление сайтом → Nemo CMS → Шаблоны.
  • В панели администрирования сервиса Google Analytics добавить необходимые цели, указав тип цели как «Событие», категорию события «analytics», а действие событие установить равным коду события из Nemo (например, analytics.checkout.booking.buy).
  • Добавить в шаблон, в который ранее был добавлен код аналитики, код отслеживания нужных событий. Код отслеживания событий при этом должен располагаться в шаблоне ниже добавленного кода аналитики:
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($);
}


Точность

Данные в системе бронирования практически никогда полностью не совпадают с данными, учтенными в системах веб-аналитики. Системы веб-аналитики отображают приблизительную картину. Для точного учета продаж следует использовать отчеты системы бронирования.

См. также