JS-трекер
Скрипт может быть запущен триггером Трекер. Блок срабатывает каждые 5 минут (параметр невозможно изменить) и собирает статистику о действиях посетителей на сайте, в код которого встроен сниппет. Информация автоматически подгружается пакетно в систему Proceset, где объединяется с данными из других систем. Количество элементов в пакете – 1 (отправка каждого события происходит сразу). На основании полученной статистики можно проводить аналитику по выделению сценариев или процессов.
Работа трекера состоит из 3 компонентов:
- Snippet — небольшой фрагмент кода, в котором содержатся настройки подключения трекера
- Трекер — блок-триггер, который осуществляет сбор данных и их передачу на сервер
- Модуль трекинга на платформе Proceset — модуль, осуществляющий прием данных от трекера
Данные с сайта копятся в локальном хранилище и передаются JS-трекером каждые 15 секунд. В случае, если сервер не принимает отправленные данные от трекера, эти и все следующие собираемые с сайта данные будут храниться в буфере размером 1 Мб до момента, пока сервер не станет вновь доступным. После того как события будут успешно переданы, буфер очищается.
В левой панели представлены параметры блока:
- имя веб-приложения
- UUID
- адрес сервера сбора аналитики
- встраиваемый код (snippet)
Если при настройке блока добавить имя веб-приложения, оно также отобразится во встраиваемом коде. Встраиваемый код можно просмотреть и скопировать, но он недоступен для редактирования. Для выполнения скрипта скопируйте встраиваемый код и вставьте его в код сайта, с которого необходимо получать события.
- В системе не может быть двух одинаковых UUID: они уникальны для каждого трекера.
- Для корректной работы скрипта имя веб-приложения и UUID должны совпадать в блоке и на сайте.
Список возвращаемых полей по умолчанию:
Поле | Тип | Описание |
---|---|---|
event | Информация о событии | |
event.name | string | Имя события |
event.props | array (string) | Словарь с пользовательскими данными |
event.time | number | Временная метка вызова метода (количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC) |
event.element | Информация о DOM-элементе, на котором сработало событие: кнопка, ссылка, поле и др. | |
event.element.id | string null | Идентификатор элемента (берется только атрибут id) |
event.element.name | string null | Имя/данные элемента. Вычисляется индивидуально для каждого типа элемента |
event.element.webctrl_selector | string null | Способ идентификации элемента на странице https://docs.uipath.com/studio/docs/about-selectors#webctrl |
person | Информация о пользователе | |
person.user_id | string null | Идентификатор зарегистрированного пользователя |
person.anonymous_id | string | Сгенерированный анонимный UUID v4 идентификатор |
person.ids | array (string) | Словарь идентификаторов, полученных из сторонних трекеров, подключенных к странице |
app | Информация о сайте, подключающем трекер | |
app.name | string | Имя приложения. Указывается в конфигурационном файле, по умолчанию используется текущий домен |
lib | Информация о трекере | |
lib.version | string | Номер версии трекера |
campaign | UTM-метки, полученные из url | |
campaign.source | string null | Источник перехода, рекламная площадка |
campaign.medium | string null | Тип рекламы |
campaign.name | string null | Название рекламной кампании |
campaign.term | string null | Ключевая фраза |
campaign.content | string null | Дополнительная информация по объявлению |
page | Информация о web-странице | |
page.title | string | Заголовок вкладки браузера |
page.referrer | string | url, с которого произошел переход на текущую страницу |
page.url | string | url текущей страницы |
page.path | string | Часть url между хостом и параметрами |
screen | Информация об экране | |
screen.width | number | Ширина экрана в пикселях |
screen.height | number | Высота экрана в пикселях |
navigator | Состояние и особенности (свойства) пользовательского агента | |
navigator.user_agent | string | Строка агента пользователя для данного браузера |
navigator.language | string | Предпочитаемый пользователем язык, как правило, это язык пользовательского интерфейса браузера |
time_zone | string | Временная зона |
Сбор кастомных событий
Кастомные события автоматически собираются с помощью параметра interceptor. В качестве значения параметра передается массив объектов.
Чтобы JS-трекер собирал кастомные события, дополните встраиваемый код:
{
action: "Click" | "FieldChange",
interceptor: (target: EventTarget) => {
eventName: string,
elementName: string,
element: Element,
eventProps: object
} | null
}
Где:
- action — тип события, по которому будет вызван interceptor
- interceptor — обработчик события. Принимает элемент, по которому произошло событие, и возвращает структуру, описывающую кастомное событие. Также в коде можно указать null, если событие следует проигнорировать
В зависимости от того, какие данные необходимо получать, у параметра могут быть указаны следующие поля:
- eventName
- elementName
- element
- eventProps
Настройка сбора активности системы Proceset
Для настройки приема данных с JS-трекера, встроенного в Proceset нужно построить скрипт и добавить uuid (сгенерированный блоком Трекер) в файл конфигурации модуля трекинга com.infomaximum.subsystem.automationwebhook.json. Файл расположен на сервере Proceset в каталоге: C:\ProgramData\Infomaximum\config\com.infomaximum.subsystem. automationwebhook.json.
Пример настройки файла com.infomaximum.subsystem.automationwebhook.json для обмена данными с JS-трекером:
{
"monitoring": {
…
"uuid": "7317172d2fca45ec890caf4127480484",
…
}
}
Параметры конфигурационного файла:
- monitoring — блок настроек, предназначенный только для передачи статистики от системы Proceset (JS-трекера, встроенного в систему). Настраивается только для передачи информации о пользователях Proceset:
- uuid (обязательный параметр) — идентификатор данных Трекера. Используется в качестве публичного ID данных. Данный uuid используется для сопоставления конфигурации Трекера и ID скрипта, в котором будут обрабатываться данные
Настройка cors_policy для междоменного обмена данным
В случаях, когда JS-трекер находится в домене отличном от того, на котором располагается Proceset, необходимо настроить политику cors, предоставляющую доступ к этому домену. Для этого необходимо в конце конфигурационного файла Proceset com.infomaximum.subsystem.frontend.json добавить перед последней фигурной скобкой:
"cors_policy": "*"
Файл расположен на сервере Proceset в каталоге: C:\ProgramData\Infomaximum\config\com.infomaximum.subsystem.frontend.json.
Несовместимость типов при получении Null в активности
При возникновении несовместимости типов при получении Null в активности, собираемой JS-трекером, необходимо привести колонки целевой таблицы в скрипте к типу Nullable. Если таблица была создана ранее, то можно воспользоваться следующим способом устранения данной проблемы:
- Создайте блок «SQL-запрос» в целевом скрипте.
- Введите SQL-запрос ALTER TABLE NAME_TABLE(название таблицы) MODIFY COLUMN person_user_id Nullable(String).
- Измените тип целевой колонки.
- Удалите блок «SQL-запрос», созданный в п. 1 и 2.
- Используйте обновленную таблицу с типом колонок Nullable и ранее созданным скриптом.
Способ подходит для решения любой подобной ситуации, связанной с несовместимостью типов.
Была ли статья полезна?