Извлечение метрики из событий пользователя
Извлечение метрики из событий пользователя
OpenPipeline упрощает преобразование пользовательских событий в пользовательские метрики, предоставляя возможность анализировать закономерности, влияющие на ваши цели, в блокнотах и дашбордах, обеспечивая при этом полезность данных для долгосрочного анализа. Возможность извлечения метрик из стандартных атрибутов пользовательских событий в специальные поля упрощает этот процесс.
Для иллюстрации процесса в данном руководстве в качестве примера используется сайт бронирования путешествий — количество просмотров каждой поездки преобразуется в специальную метрику, помогающую выявлять тенденции.
Пример сценария
В этом уроке мы будем использовать демонстрационное приложение Ключ-АСТРОМ easyTravel в качестве примера. easyTravel отображает список доступных маршрутов, и когда пользователь выбирает маршрут, отображаются его подробные сведения.
Приложение использует JavaScript-код RUM, а собранные данные сопоставляются с интерфейсом пользователя easytravel. Каждый раз, когда пользователь переходит с одной страницы на другую — например, с главной страницы на определенный этап — регистрируется событие навигации.
События навигации предоставляют информацию, необходимую для анализа количества просмотров по каждому маршруту. Каждый маршрут имеет уникальный идентификатор. При переходе к определенному маршруту путь URL обновляется, включая этот идентификатор маршрута — например, /easytravel/journeys/24859438. Это значение фиксируется в поле view.url.path события навигации.
Таким образом, вы можете проанализировать количество просмотров за одно путешествие, выполнив следующий DQL-запрос:
fetch user.events
| filter matchesPhrase(frontend.name, "easytravel") AND
characteristics.has_navigation == true AND
matchesPhrase(view.url.path, "/easytravel/journeys/*") AND
not matchesPhrase(view.url.path, "*book")
| parse view.url.path, "'/'LD'/'LD'/'LD:journey_id"
| summarize by: {journey_id}, count()
| sort `count()` desc
Хотя этот запрос хорошо подходит для краткосрочного анализа, он не идеален для мониторинга долгосрочных тенденций. Для этой цели более подходящим подходом будет создание пользовательской метрики, полученной из запроса, с помощью OpenPipeline.
Прежде чем начать
Предварительные знания
- Язык запросов Ключ-АСТРОМ
- Обработка в OpenPipeline
Предварительные требования
Убедитесь, что у вас есть права доступа, описанные в разделе «Права доступа RUM».
Инструкция
1. Создайте конвейер для анализа и извлечения метрик
- Перейдите в Настройки > Обработка и контекстуализация > OpenPipeline > Пользовательские события > Конвейеры.
- Чтобы создать новый конвейер, выберите Конвейер и введите имя (например,
easyTravel). - Чтобы настроить вывод идентификатора маршрута в отдельное поле, перейдите в раздел Обработка > DQL и определите обработчик, введя:
- Описательное название (например,
Add journey_id). - Условие соответствия. В нашем примере условием соответствия является:
- Описательное название (например,
characteristics.has_navigation == true AND matchesPhrase(view.url.path, "/easytravel/journeys/*") AND not matchesPhrase(view.url.path, "*book")
- Определение процессора. В нашем примере определение процессора выглядит следующим образом:
parse view.url.path, "'/'LD'/'LD'/'LD:journey_id" | fieldsAdd journey_id
- Для настройки извлечения метрик перейдите в раздел Извлечение метрик > Метрика счетчика и укажите обработчик, введя:
- Описательное название (например,
Viewed journeys). - Условие соответствия (
isNotNull(journey_id)). - Ключ метрики (
easytravel.journey_view_count). - Метрический размер. В разделе Размеры выберите Добавить поле и введите название поля (
journey_id) и целевое поле (journey_id).
- Описательное название (например,
- Выберите Сохранить.
2. Передача данных в конвейер
В OpenPipeline перейдите в раздел Динамическая маршрутизация > Динамический маршрут и укажите:
- Описательное название (например,
easyTravel route). - Условие соответствия. В нашем примере условием соответствия является:
matchesValue(frontend.name, "easytravel")
- Конвейер обработки, содержащий инструкции по обработке (
easyTravel). - Выберите Сохранить.
Заключение
Вы успешно создали конвейер для анализа событий пользователя и извлечения метрики. Теперь вы можете перейти в Блокноты и просмотреть его, например, используя следующий запрос:
timeseries count = sum(easytravel.journey_view_count), by: {journey_id}, interval: 3h
| sort arraysum(count) desc
| limit 5
Пользовательская метрика, извлеченная из событий пользователя, отображает наиболее просматриваемые маршруты в easyTravel.
Связанные темы
- Язык запросов Ключ-АСТРОМ
- Обработка в OpenPipeline