Веб-приложения: сеансы неправильно помечены или отсутствуют метаданные

Материал из Документация Ключ-АСТРОМ

Если вы заметили, что ваши сеансы неправильно помечены или в них отсутствуют метаданные, скорее всего, это связано с настройкой конфиденциальности данных приложения под названием «Не отслеживать».

Для этого параметра опция Сбор данных анонимных сеансов пользователей для браузеров с включенной опцией «Не отслеживать» включена по умолчанию, что является важным элементом конфиденциальности данных RUM. Эта опция гарантирует, что Ключ-АСТРОМ будет собирать только анонимные сеансы, если в браузерах пользователей обнаружена опция «Не отслеживать».  

Вы можете изменить настройку «Не отслеживать» для своего приложения. Обратите внимание: если вы выберите опцию Отключить мониторинг реальных пользователей для браузеров с поддержкой «Не отслеживать» , RUM будет отключен при обнаружении настройки «Не отслеживать» в браузерах пользователей.    

Подробные инструкции см. в разделе Настройка параметров конфиденциальности данных для веб-приложений | Не отслеживать.

Проверьте следующее, если в ваших веб-приложениях отсутствуют необходимые метаданные. Также проверьте веб-приложения: сеансы случайным образом разбиваются на более короткие сеансы.

  • Проверьте, содержится ли переменная JS или элемент DOM в Frames/IFrame
  • Проверьте, неверен ли селектор DOM или недоступен ли querySelector.
  • Проверьте, используют ли файлы cookie HttpOnly
  • Убедитесь, что файлы cookie установлены на правильном домене.

В JavaScript-коде RUM есть функция dtrum.getAndEvaluateMetaData(), которая собирает все настроенные метаданные и выводит список текущих значений. Если метаданные не были собраны, функция указывает причину.

  • Если выражение метаданных не указано, возможно, страница, на которой вы сейчас находитесь, не сопоставлена ​​с правильным приложением.
  • Если выражение метаданных показывает данные, которые вы намеревались получить, эти данные могут быть недоступны во время их сбора с помощью RUM JavaScript. Данные собираются после завершения действия, поэтому, если данные доступны только после этого, RUM JavaScript не сможет получить эти значения.

Проверьте, содержится ли переменная JS или элемент DOM в Frames/IFrame

У IFrame и Frames есть собственный контекст JavaScript, поэтому невозможно получить доступ к переменным, которые доступны только в другом фрейме. Элементы DOM также должны быть доступны во Frames или IFrame, в который внедряется RUM JavaScript, поскольку у IFrame могут быть ограничения доступа.

Вы можете использовать Chrome DevTools для проверки захвата переменных JavaScript или элементов DOM. Для этого выполните необходимое действие в приложении. Затем перейдите на вкладку «Консоль» в Chrome DevTools и проверьте журнал на наличие записей DOM Element value и Variable value. Убедитесь, что эти записи имеют допустимые значения.    

На следующем рисунке показан доступ к элементу DOM в IFrame, содержащем элемент DOM.

Image4031.png

На этом изображении показан доступ к элементу DOM в IFrame, который не содержит элемента DOM.

Image4032.png

Проверьте, неверен ли селектор DOM или недоступен ли querySelector

Выполните следующие действия, чтобы проверить правильность селектора DOM:

  • Убедитесь, что параметр document.querySelector доступен, введя его в консоль Chrome DevTools. Если он недоступен, вы не сможете получать значения в этом браузере. Однако это маловероятно, так как document.querySelector поддерживается даже в более старых версиях браузеров.  
  • Убедитесь, что document.querySelector('yourselector') возвращает нужное значение. Если нет, то ваш код queryselector неверен, и RUM JavaScript не предоставляет данные. Подробнее об queryselector см. в разделе W3C Selectors API.

Чтобы проверить возвращаемое значение для document.querySelector, выполните необходимое действие в приложении. Затем в Chrome DevTools перейдите на вкладку «Элементы» , выполните поиск по строке document.querySelector и проверьте возвращаемое значение.

На следующем изображении показаны данные, правильно возвращенные из document.querySelector:

Image4033.png

Проверьте, используют ли файлы cookie HttpOnly

Если у файлов cookie установлен флаг HttpOnly, RUM JavaScript не может получить доступ к их значениям, и значение не сообщается, как показано на следующем рисунке.

Проверить, установлен ли флаг HttpOnly для файлов cookie, можно на вкладке «Приложение» в Chrome DevTools.

Image4034.png

Убедитесь, что файлы cookie установлены на правильном домене.

Иногда файлы cookie устанавливаются не в нужном домене, хотя они отображаются в Chrome DevTools. Это означает, что вы можете увидеть значение файла cookie в Chrome DevTools, но он недоступен из RUM JavaScript.

Чтобы попробовать это, вы можете выполнить поиск по строке document.cookie в консоли Chrome DevTools и проверить, содержит ли возвращаемая строка файл cookie, который вы хотите получить.

Image4035.png