Настройка воспроизведения сеансов для Android

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

Настройка воспроизведения сеансов для Android

На этой странице описано, как активировать и настроить функцию Воспроизведения сессий для ваших приложений Android.

Используйте воспроизведение сессии

Функция Воспроизведение сессий на Android позволяет записывать взаимодействие ваших клиентов с мобильным приложением и воспроизводить каждое касание, свайп и поворот экрана в режиме, напоминающем кинофильм.

Также его можно использовать для получения дополнительной информации для анализа сбоев в виде видеозаписей экрана, воспроизводящих действия пользователя, предшествовавшие обнаруженному сбою.

Предварительные требования

Убедитесь, что ваша система соответствует следующим требованиям:

  • Ключ-АСТРОМ версия 1.303.
  • ЕдиныйАгент для Android, версия 8.303.
  • Для вашего приложения активирован Мониторинг реального пользователя.
  • Действующая лицензия Ключ-АСТРОМ Мониторинг цифрового опыта.

Поддерживаемые технологии и известные ограничения

  • Поддерживается Android 6.0+ (уровень API 23+).
  • Поддерживается плагин Android Gradle версии 8.1.1 и выше.
  • Поддерживается Kotlin версии 2.1.0 и выше.
  • Начиная с версии Jetpack Compose 1.4 и выше, поддерживается следующее: ЕдиныйАгент для Android, версия 8.325.
  • Функция Воспроизведение сессий недоступна для кроссплатформенных фреймворков, таких как Cordova, React Native, Flutter, Xamarin.
  • Для гибридных приложений функция Воспроизведение сессий поддерживается только для нативной части приложения. Для браузерной части гибридного приложения функция Воспроизведение сессий не поддерживается.
  • Поддерживаются только библиотеки поддержки AndroidX. Классы, такие как Activity или Fragment из com.android.support, не поддерживаются.
  • Мы не рекомендуем использовать другие инструменты для создания отчетов о сбоях одновременно с Воспроизведением сессий Ключ-АСТРОМ.
  • Функция Воспроизведение сессий может фиксировать только определенные события. Однако, если вам необходимо отслеживать конкретное представление или событие, которое не поддерживается по умолчанию, вы можете фиксировать пользовательское событие.
  • Воспроизведение пользовательских сессий, записанных с помощью функции Воспроизведение сессий, возможно только в определенных браузерах.
  • Воспроизведение сессии — это видеоподобная реконструкция взаимодействия пользователя с мобильным приложением, использующая захваченные события и данные. Из-за такого подхода воспроизведенная сессия может отличаться от реального пользовательского опыта. Известные проблемы:
    • Фрагменты с анимацией появления и исчезновения могут вызывать проблемы, особенно если анимация короткая.
    • Плавающие кнопки действий могут вызывать проблемы с маскированием данных.
    • Использование атрибута inputType внутри компонента Button может привести к тому, что кнопки будут отображаться без текста при захвате.

Активируйте функцию воспроизведения сессий на Android и отрегулируйте количество записанных сессий

Если вы еще этого не сделали, выполните все шаги, описанные в разделе первоначальной настройки интерфейсов Android.

  1. Перейдите в раздел Ключевые показатели опыта > Обзор.
  2. Выберите Мобильные устройства, чтобы просмотреть все мобильные версии сайта.
  3. Выберите интерфейс, который хотите настроить.
  4. Перейдите во вкладку Настройки.
  5. В рамках обеспечения возможностей и контроля затрат:
    • Включите классический режим мониторинга реальных пользователей или оба режима: классический и мониторинг реальных пользователей.
    • Выберите Воспроизведение сессий Classic или оба варианта: Воспроизведение сессий Classic и Воспроизведение сессий, а затем введите новое значение коэффициента захвата для ценности воспроизведения сессии:
      • 100 процентов для учета всех сессий.
      • Процент, меньший чем 100 процентов, необходимый для захвата случайно выбранных сессий.
  6. Чтобы записывать все сессии со сбоями независимо от частоты записи, выберите Воспроизведение сессий для классических сбоев или оба варианта: Воспроизведение сессий для классических сбоев и Воспроизведение сессий для сбоев.
  7. В настройках приложения выберите Мастер инструментов, а затем выберите Android.
  8. Следуйте инструкциям мастера настройки приборов.

Для версий плагина Android Gradle 4.0 и 4.1 необходимо изменить параметр компиляции на Java 8. Это можно сделать на этапе мастера инструментирования, называемом Применить плагин Ключ-АСТРОМ и добавить конфигурацию плагина. Добавьте следующий код в главный файл сборки:

compileOptions {
    sourceCompatibility 1.8
    targetCompatibility 1.8
}

Для плагина Android Gradle версии 4.2 и выше по умолчанию используется Java 8, поэтому никаких изменений в конфигурации не требуется.

Скрыть конфиденциальные данные

Уровни маскирования данных

Функция Воспроизведение сессий имеет три предустановленных уровня маскировки:

  • Наиболее безопасный вариант — все редактируемые текстовые поля, изображения, метки, веб-представления и переключатели скрыты.
  • Безопасно — все редактируемые текстовые поля замаскированы.
  • Пользовательский режим — по умолчанию маскирует те же элементы, что и Наиболее безопасный режим, но вы можете точно определить, какие компоненты или представления приложения следует маскировать. Подробнее см. раздел «Настройка пользовательского маскирования».

Изменить уровень маскировки

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

Пример 1: Измените уровень маскирования на «Безопасный»

Используйте следующий код, чтобы установить уровень маскирования на «Безопасный».

MaskingConfiguration config = new MaskingConfiguration.Safe();
// .Safest или .Custom
AstromkeySessionReplay.setConfiguration(Configuration.builder()
    .withMaskingConfiguration(config)
    .build());

Пример 2: Измените уровень маскирования на «Пользовательский»

Используйте следующий код, чтобы установить уровень маскирования на «Пользовательский». Дополнительные параметры см. в разделе «Настройка пользовательского маскирования».

MaskingConfiguration config = new MaskingConfiguration.Custom();
// .Safest или .Safe
AstromkeySessionReplay.setConfiguration(Configuration.builder()
    .withMaskingConfiguration(config)
    .build());

Пример 3: Измените уровень маскирования на «Пользовательский» и удалите все замаскированные представления

Используйте следующий код, чтобы установить уровень маскирования на «Пользовательский» и удалить все замаскированные представления (removeAllMaskedViews). Дополнительные параметры см. в разделе «Настройка пользовательского маскирования».

MaskingConfiguration config = new MaskingConfiguration.Custom().removeAllMaskedViews();
AstromkeySessionReplay.setConfiguration(Configuration.builder()
    .withMaskingConfiguration(config)
    .build());

Настройка пользовательского маскирования

Если вы установите уровень маскирования данных на «Пользовательский», вы сможете использовать дополнительные методы API для определения того, какие компоненты или представления приложения следует маскировать. Вы сможете:

  • Маскировать изображения.
  • Маскировать представления с помощью android:tag.
  • Маскировать изображения с помощью тега маскирования.
  • Маскировать Jetpack Compose composables.

Виды масок

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

Set<Class<? extends View>> set = new HashSet<Class<? extends View>>() {
    add(ImageView.class);
    add(WebView.class);
};
new MaskingConfiguration.Custom().addMaskedView(ImageView.class); // Добавляет одно маскированное представление
new MaskingConfiguration.Custom().addMaskedViews(set); // Добавляет все замаскированные представления
new MaskingConfiguration.Custom().removeMaskedView(ImageView.class); // Удаляет один замаскированный элемент
new MaskingConfiguration.Custom().removeAllMaskedViews(); // Удаляет все замаскированные представления

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

Маскирование изображений с помощью android:tag

Вы также можете активировать или деактивировать маскирование выбранных представлений в зависимости от их параметров android:tag.

Set<Integer> set = new HashSet<Integer>() {
    add(R.id.view_id1);
    add(R.id.view_id2);
};
new MaskingConfiguration.Custom().addMaskedIds(set);
new MaskingConfiguration.Custom().addNonMaskedIds(set);
new MaskingConfiguration.Custom().removeMaskedIds(set);
new MaskingConfiguration.Custom().removeNonMaskedIds(set);

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

Маскируйте изображения с помощью тега маскирования

Также можно замаскировать представление, добавив тег data-dtrum-mask к его содержимому android:tag. Представление с этим тегом всегда будет замаскировано.

Mask Jetpack Compose composables

Jetpack Compose предоставляет функцию ручного маскирования, позволяющую управлять тем, какие элементы композиции будут замаскированы в режиме воспроизведения сессии. Для маскирования элемента композиции используйте модификатор dtMask.

import com.astromkey.agent.compose.api.dtMask

@Composable
fun MyScreen() {
    Column {
        Text(
            text = "Этот текст будет замаскирован",
            modifier = Modifier.dtMask()
        )
    }
}

Активировать журналы воспроизведения сеансов

Вы можете активировать ведение журналов воспроизведения сессий так же, как и для ЕдиногоАгента. Подробности см. в разделе «Включение отладочного логирования для плагина Ключ-АСТРОМ Android Gradle или SDK ЕдиногоАгента».

Захват пользовательских событий

Функция Воспроизведение сессий записывает только определенные события. Однако вы можете отслеживать события, которые не поддерживаются по умолчанию.

AstromkeySessionReplay.trackCustomEvent("Пользователь вошел в систему")

Измените режим передачи изображений на Wi-Fi

По умолчанию все данные — информация о зафиксированных событиях и изображения — передаются по любому соединению. Однако вы можете выбрать передачу изображений только тогда, когда пользователи подключены к Wi-Fi, чтобы сэкономить мобильный трафик.

AstromkeySessionReplay.setConfiguration(
    Configuration.builder()
        .withDataTransmissionMode(DataTransmissionMode.NOT_METERED_NETWORK)
        .build()
)

Поиск неисправностей

  • Пользовательские сессии вообще не записываются.
  • Пользовательские сессии записываются, но функция воспроизведения сессии недоступна.

Связанные темы

  • Повтор сессии