<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_DQL</id>
	<title>Анализ поведения пользователей с помощью DQL - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_DQL"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_DQL&amp;action=history"/>
	<updated>2026-09-16T14:11:41Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_DQL&amp;diff=6610&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «= Анализ поведения пользователей с помощью DQL =  &#039;&#039;&#039;RUM&#039;&#039;&#039; собирает обширные данные о поведении пользователей — клики, навигацию, потоки сессий и пользовательские свойства — в событиях пользователей и пользовательских сессиях. &#039;&#039;&#039;DQL&#039;&#039;&#039; предоставляет прямой д...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_DQL&amp;diff=6610&amp;oldid=prev"/>
		<updated>2026-08-19T18:25:36Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «= Анализ поведения пользователей с помощью DQL =  &amp;#039;&amp;#039;&amp;#039;RUM&amp;#039;&amp;#039;&amp;#039; собирает обширные данные о поведении пользователей — клики, навигацию, потоки сессий и пользовательские свойства — в событиях пользователей и пользовательских сессиях. &amp;#039;&amp;#039;&amp;#039;DQL&amp;#039;&amp;#039;&amp;#039; предоставляет прямой д...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Анализ поведения пользователей с помощью DQL =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;RUM&amp;#039;&amp;#039;&amp;#039; собирает обширные данные о поведении пользователей — клики, навигацию, потоки сессий и пользовательские свойства — в событиях пользователей и пользовательских сессиях. &amp;#039;&amp;#039;&amp;#039;DQL&amp;#039;&amp;#039;&amp;#039; предоставляет прямой доступ к этим данным, позволяя отвечать на вопросы о поведении, выходящие за рамки того, что отображается в разделе &amp;#039;&amp;#039;&amp;#039;Пользователи и сессии&amp;#039;&amp;#039;&amp;#039; по умолчанию, — например, определять, какие элементы пользовательского интерфейса обеспечивают наибольшее вовлечение, составлять карты потоков навигации или измерять показатели отказов.&lt;br /&gt;
&lt;br /&gt;
Выполните приведенные ниже запросы в блокнотах для оперативного анализа или преобразуйте любой из них в пользовательскую метрику на основе событий или сессий пользователей.&lt;br /&gt;
&lt;br /&gt;
== Взаимодействие с пользователями ==&lt;br /&gt;
&lt;br /&gt;
Взаимодействия пользователей фиксируют клики, касания и нажатия клавиш на элементах пользовательского интерфейса. Анализ этих данных помогает понять, с какими частями интерфейса пользователи взаимодействуют чаще всего и меняется ли объем взаимодействий после релизов.&lt;br /&gt;
&lt;br /&gt;
=== Взаимодействие во времени ===&lt;br /&gt;
&lt;br /&gt;
Отслеживание количества взаимодействий с течением времени помогает выявлять снижение вовлеченности или всплески, возникающие после изменения пользовательского интерфейса или внедрения новой функции.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_user_interaction&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| makeTimeseries interactions = count()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Элементы, лидирующие по количеству взаимодействий ===&lt;br /&gt;
&lt;br /&gt;
Знание того, какие элементы пользовательского интерфейса получают наибольшее количество взаимодействий, помогает выявлять области с высокой интенсивностью трафика, подтверждать правильность проектных решений и обнаруживать недоиспользуемые функции. Приведенный ниже запрос ранжирует элементы пользовательского интерфейса по количеству взаимодействий на всех интерфейсах.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_user_interaction&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| filter in(interaction.name, { &amp;quot;click&amp;quot;, &amp;quot;touch&amp;quot;, &amp;quot;key_press&amp;quot; })&lt;br /&gt;
| summarize {&lt;br /&gt;
    sessions = countDistinct(dt.rum.session.id),&lt;br /&gt;
    interactions = count()&lt;br /&gt;
  }, by: {element = ui_element.name, type = ui_element.tag_name, frontend = frontend.name}&lt;br /&gt;
| sort interactions desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы подсчитать, как часто пользователи взаимодействуют с определенным элементом, отфильтруйте данные по названию элемента и типу тега.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_user_interaction&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| filter in(interaction.name, { &amp;quot;click&amp;quot;, &amp;quot;touch&amp;quot;, &amp;quot;key_press&amp;quot; })&lt;br /&gt;
| filter ui_element.tag_name == &amp;quot;button&amp;quot;&lt;br /&gt;
| filter ui_element.name == &amp;quot;Close details&amp;quot; // Замените на имя элемента, который вы хотите проанализировать  &lt;br /&gt;
| summarize {&lt;br /&gt;
    sessions = countDistinct(dt.rum.session.id),&lt;br /&gt;
    interactions = count()&lt;br /&gt;
  }, by: {element = ui_element.name}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для веб-интерфейсов можно улучшить согласованность именования элементов и обогатить взаимодействие контекстом функций или компонентов, чтобы сделать анализ более удобным. См. разделы &amp;#039;&amp;#039;&amp;#039;Настройка именования элементов пользовательского интерфейса для взаимодействия с пользователем&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;Связывание взаимодействия пользователя с функциями и компонентами пользовательского интерфейса&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Навигационные потоки ==&lt;br /&gt;
&lt;br /&gt;
Навигация связывает последовательность просмотров, которые пользователь посещает в течение сессии. Анализ шаблонов навигации позволяет выявить наиболее посещаемый контент и то, как пользователи перемещаются по вашему интерфейсу.&lt;br /&gt;
&lt;br /&gt;
=== Навигация во времени ===&lt;br /&gt;
&lt;br /&gt;
Отслеживание переходов по ссылкам с течением времени помогает выявить снижение вовлеченности или подтвердить, что новая функция или изменение контента привлекают больше трафика. События навигации срабатывают при каждой загрузке страницы и переходе между представлениями &amp;#039;&amp;#039;&amp;#039;SPA&amp;#039;&amp;#039;&amp;#039;, поэтому их количество отражает общую активность просмотра.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_navigation&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| makeTimeseries navigations = count()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Главные страницы и просмотры ===&lt;br /&gt;
&lt;br /&gt;
Знание того, какие страницы или разделы привлекают наибольшее количество посетителей, помогает сосредоточить усилия на оптимизации и измерить охват ключевого контента. Приведенный ниже запрос ранжирует их по количеству уникальных сессий, посетивших их.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_navigation&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| summarize sessions = countDistinct(dt.rum.session.id), by: {view = view.url.path}&lt;br /&gt;
| sort sessions desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для измерения вовлеченности пользователей в разных контекстах используйте следующий запрос.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_user_interaction&lt;br /&gt;
| filter interaction.name == &amp;quot;click&amp;quot;&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| summarize {&lt;br /&gt;
    sessions = countDistinct(dt.rum.session.id),&lt;br /&gt;
    clicks = count()&lt;br /&gt;
  }, by: {view = view.url.path}&lt;br /&gt;
| sort clicks desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Виды с посадки ===&lt;br /&gt;
&lt;br /&gt;
Знание того, с чего начинаются сессии, помогает определить наиболее распространенные точки входа и расставить приоритеты в отношении опыта участников.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_navigation&lt;br /&gt;
| filter view.sequence_number == 1&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| summarize sessions = countDistinct(dt.rum.session.id), by: {landing_view = view.url.path}&lt;br /&gt;
| sort sessions desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Входящие потоки ===&lt;br /&gt;
&lt;br /&gt;
Понимание того, откуда пользователи попадают на определенный сайт, помогает оценить пути перехода и оптимизировать их взаимодействие с ключевым контентом.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_navigation&lt;br /&gt;
| filter view.url.path == &amp;quot;/overview&amp;quot; // Замените на путь к целевому URL-адресу представления  &lt;br /&gt;
| filter view.source.url.path != &amp;quot;/overview&amp;quot; // Замените на то же значение, что и выше, чтобы исключить самостоятельную навигацию  &lt;br /&gt;
| summarize sessions = countDistinct(dt.rum.session.id), by: {source_view = view.source.name}&lt;br /&gt;
| sort sessions desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Исходящие потоки ===&lt;br /&gt;
&lt;br /&gt;
Понимание того, куда пользователи переходят после того, как покидают определенную страницу, помогает определить, следуют ли они ожидаемому пути или уходят. Используйте это для проверки воронок конверсии и выявления тупиковых ситуаций.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_navigation&lt;br /&gt;
| filter view.source.url.path == &amp;quot;/login&amp;quot; // Замените на путь URL исходного кода представления  &lt;br /&gt;
| filter view.url.path != &amp;quot;/login&amp;quot; // Замените на то же значение, что и выше, чтобы исключить самостоятельную навигацию  &lt;br /&gt;
| summarize sessions = countDistinct(dt.rum.session.id), by: {next_view = view.name}&lt;br /&gt;
| sort sessions desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сегментация свойств событий и сессий ==&lt;br /&gt;
&lt;br /&gt;
Свойства событий и сессий позволяют привязывать бизнес-контекст к событиям и сессиям пользователей — например, уровень клиента, состояние флага функции или результат оформления заказа. После определения эти свойства можно использовать в качестве фильтров &amp;#039;&amp;#039;&amp;#039;DQL&amp;#039;&amp;#039;&amp;#039; и параметров группировки для сегментации любого поведенческого анализа по вашим собственным бизнес-критериям.&lt;br /&gt;
&lt;br /&gt;
Для отслеживания перемещений по объекту недвижимости с течением времени используйте следующий пример.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_navigation&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| filter isNotNull(event_properties.customer_tier) // Замените на имя свойства, которое вы настроили&lt;br /&gt;
| makeTimeseries sessions = countDistinct(dt.rum.session.id), by: {event_properties.customer_tier} // Замените на то же имя свойства&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сравнения распределения свойства по всем сессиям используйте следующий пример.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.sessions&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| filter isNotNull(session_properties.payment_provider) // Замените на имя свойства, которое вы настроили&lt;br /&gt;
| summarize by: {session_properties.payment_provider}, sessions = count() // Замените на то же имя свойства&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Показатель отказов ==&lt;br /&gt;
&lt;br /&gt;
Высокий показатель отказов может указывать на несоответствие контента и намерений пользователей — когда пользователи попадают на страницу, которая не соответствует их ожиданиям, — или на сложности в процессе регистрации или оформления заказа. Приведенные ниже запросы, лучше всего подходящие для исторических периодов, используют пример пользовательского определения, которое вы можете настроить в соответствии с определением вашего продукта.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.sessions&lt;br /&gt;
| fieldsAdd bounced = navigation_count &amp;lt;= 1&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| summarize by: {bounced}, count = count()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сравнения показателей отказов на разных сайтах добавьте дополнительный параметр `by`.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.sessions&lt;br /&gt;
| fieldsAdd bounced = navigation_count &amp;lt;= 1&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| summarize {&lt;br /&gt;
    total = count(),&lt;br /&gt;
    bounced = countIf(bounced == true)&lt;br /&gt;
  }, by: {frontend.name}&lt;br /&gt;
| fieldsAdd bounce_rate_pct = toDouble(bounced) / total * 100&lt;br /&gt;
| sort bounce_rate_pct desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Атрибуция кампании UTM ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;UTM&amp;#039;&amp;#039;&amp;#039;-параметры — это теги, добавляемые маркетинговыми командами к &amp;#039;&amp;#039;&amp;#039;URL&amp;#039;&amp;#039;&amp;#039;-адресам для определения того, какие кампании, каналы или рекламные креативы привлекают трафик на ваш сайт. Приведенный ниже запрос извлекает значения &amp;#039;&amp;#039;&amp;#039;UTM&amp;#039;&amp;#039;&amp;#039; из &amp;#039;&amp;#039;&amp;#039;URL&amp;#039;&amp;#039;&amp;#039;-адресов событий навигации и ранжирует их по количеству сессий, показывая, какие кампании обеспечивают наибольшее количество посещений. Используйте это для сопоставления эффективности кампаний с поведением пользователей на ваших веб-сайтах.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch user.events&lt;br /&gt;
| filter characteristics.has_navigation&lt;br /&gt;
// | filter frontend.name == &amp;quot;FRONTEND-NAME&amp;quot; // Необязательно: фильтрация по конкретному интерфейсу  &lt;br /&gt;
| fields view.url.path, view.url.query, dt.rum.session.id&lt;br /&gt;
| filterOut isNull(view.url.query)&lt;br /&gt;
| parse view.url.query, &amp;quot;ARRAY{LD:key(&amp;#039;&amp;amp;&amp;#039;| EOF)}*:params&amp;quot;&lt;br /&gt;
| expand params&lt;br /&gt;
| parse decodeUrl(params), &amp;quot;LD:key &amp;#039;=&amp;#039; LD:value&amp;quot;&lt;br /&gt;
| filter in(key, array(&amp;quot;utm_campaign&amp;quot;, &amp;quot;utm_content&amp;quot;, &amp;quot;utm_medium&amp;quot;, &amp;quot;utm_source&amp;quot;, &amp;quot;utm_term&amp;quot;))&lt;br /&gt;
| summarize by: {key, value}, count = countDistinct(dt.rum.session.id)&lt;br /&gt;
| sort count desc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Связанные темы ==&lt;br /&gt;
&lt;br /&gt;
* Встроенные метрики &amp;#039;&amp;#039;&amp;#039;RUM&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Извлечение метрик из пользовательских сессий&lt;br /&gt;
* Отслеживайте производительность веб-сайта с помощью &amp;#039;&amp;#039;&amp;#039;DQL&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>