IOS
!Добавление SDK UserX
Инициализация
Пользовательские атрибуты
Определение клавиатуры
Перехват ошибок
Отправка событий
Регистрация экрана
Скрытие "секретных" полей
Ручное управление записью
Запись при скролле
Android
Добавление SDK UserX
Инициализация
Пользовательские атрибуты
Определение клавиатуры
Перехват ошибок
Отправка событий
Регистрация экрана
Скрытие "секретных" полей
Запись WebView
Отрисовка GoogleMaps
Отрисовка Yandex MapKit
Ручное управление записью
Запись при скролле

Unity IOS
new!Добавление плагина UserX
Инициализация
Пользовательские атрибуты
Ручное управление записью
Отправка событий
Регистрация экрана

Unity Android
new!Добавление плагина UserX
Инициализация
Пользовательские атрибуты
Определение клавиатуры
Перехват ошибок
Отправка событий
Регистрация экрана
Ручное управление записью
Запись при скролле

Xamarin IOS
new!Добавление UserX
Инициализация
Пользовательские атрибуты
Ручное управление записью
Отправка событий
Перехват ошибок

Flutter
new!Добавление плагина UserX
Инициализация
Пользовательские атрибуты
Отправка событий
Ручное управление записью

React Native
Добавление SDK UserX
Инициализация
Отправка событий
Скрытие "секретных" полей
Сторонние сервисы
Slack
Crashlytics
Google Analytics
AppsFlyer
FAQ
Добавление SDK UserX
Инструкция по интеграции через Swift Package Manager (для Xcode 12+):
В меню Xcode выбрать: File -> Swift Packages -> Add Package Dependency...
В открывшемся окне указать ссылку на репозиторий UserXKit: https://github.com/UserXMetrica/UserX/ Нажать Далее
На следующем шаге подтвердить текущую актуальную версию UserXKit, нажав Далее
В итоговом окне подтвердить добавление UserXKit в выбранный таргет, нажав Финиш
Установка SDK с помощью Cocoapods:
Добавьте (в зависимости от установленной версии xCode и swift)
pod 'UserX', '2.1.3'
к соответствующему объекту в вашем подфайле и запустить pod install.
Рекомендуем обновить версию библиотеки командой
pod update
Ручная установка SDK:
Скачайте последнюю версию UserX SDK для IOS проекта.
Распакуйте файл и перетащите UserX.framework
в секцию "Embedded Binaries" на вкладке "General" в вашем проекте XCode.
Инструкция по интеграции в проекты на Objective-C:
В "Build settings" вашего проекта установите флаг "Always Embed Swift Standard Libraries" в "YES".
Интеграция через Carthage
Добавьте в Cartfile соответствующую инструкцию:
binary "https://raw.githubusercontent.com/UserXMetrica/UserX/master/UserX.json"
В терминале по адресу папки проекта выполните команду:
carthage update UserX --platform iOS
Затем добавьте UserX.framework в свой проект.
Инициализация
В UserX предусмотрено 3 режима работы. Для каждого из них - разные методы инициализации (указаны ниже).
Используйте только один метод инициализации.
По умолчанию вам доступен только автоматический режим работы. Остальные режимы доступны только на индивидуальных тарифах.
В AppDelegate
вашего приложения добавьте:
import UserXKit
Режим 1 (основной): автоматический
В метод application:didFinishLaunchingWithOptions
добавьте строку:
UserX.start("YOUR_API_KEY")
Режим 2: ручной режим работы SDK
В метод application:didFinishLaunchingWithOptions
добавьте строку:
UserX.configure(YOUR_API_KEY")
В ручном режиме сессия и все ее события начнут записываться только после вызова метода начала сессии. Запись закончится после вызова метода остановки записи, либо после сворачивания приложения пользователем.
// оба эти метода работают только после ручной инициализации UserX
UserX.startSession(); // start recording
UserX.stopSession(); // stop recording
Режим 3: режим работы с ручным управлением отправки сессии
В метод application:didFinishLaunchingWithOptions
добавьте строку:
UserX.start("YOUR_API_KEY", uploadIfMarked: true)
В этом режиме сессия будет записываться также как и в автоматическом, но отправлена на сервер она будет только если в время сессии был вызван метод:
UserX.markSessionToUpload();
UserX автоматически прекращает запись видео при низком уровне свободной оперативной памяти на устройсте. Вы можете отключить эту функцию вызвав метод ниже до вызова UserX.start:
UserX.ignoreLowMemory = true // default is false (edited)
Запишите первую сессию
После интеграции SDK:
- Запустите приложение на несколько секунд и попользуйтесь им;
- Нажмите кнопку "Домой" и подождите 20-30 секунд. Не выгружайте приложение из памяти после первого запуска.
- Обновите консоль и посмотрите видео, загруженное в USERX.
Пользовательские атрибуты
Вы можете передать id пользователя, своего приложения с помощью строки кода:
UserX.userId = "YOUR_INTERNAL_USER_ID"
Для получения идентификатора пользователя, сгенерированного в UserX, вызовите метод
UserX.userIndex // String?
Определение клавиатуры
Вы можете разрешить или запретить вывод клавиатуры с помощью параметра (отключение снижает нагрузку):
UserX.isKeyboardRenderingEnabled // default = false
Перехват ошибок
Для запрета сбора crash-логов выполните:
UserX.catchExceptions true / false // default = false
Отправка событий
Отправка произвольных событий. Вы можете отправлять произвольные события вашей сессии, по этим событиям вы сможете искать сессии. Для отправки событий воспользуйтесь следующими методами:
UserX.addEvent("Name")
UserX.addEvent(_ name: String, with parameters: [String: Any]? = nil)
Регистрация экрана
UserX автоматически регистрирует все экраны вашего приложения, включая модальные окна.
Если у вас есть собственная реализация экранов, которую не распознает наша библиотека UserX - вы можете использовать один из этих методов для ручной регистрации экранов (вызывать в момент начала показа экрана):
UserX.startScreen(screenControllerObject)
UserX.startScreen(screenControllerObject, screenName: "Your screen name", parentController: parentObject, parentName: "Screen container")
UserX.startScreen(screenControllerObject, screenName: "Your screen name")
Скрытие "секретных" полей
Для скрытия любого элемента интерфейса, содержание которого не должно отображаться в сессии:
view.isSensitive = true
Ручное управление записью
UserX.startScreenRecording() // start video recording
UserX.stopScreenRecording() // stop video recording
Вызовите метод startScreenRecord, чтобы запустить запись видео в ручном режиме. Автоматическая запись видео также будет действовать, в соответствии с выбранными настройками записи. Чтобы остановить запись видео, вызовите метод stopScreenRecord. Запись видео в любом случае будет остановлена при сворачивании приложения.
Запись при скролле
Запись видео во время скрола
По умолчанию UserX не записывает видео во время прокрутки элементов на экране. Вы можете включить запись вызвав метод ниже, но это может снизить производительность.
UserX.isScrollRenderingEnabled = true // default = false
Код для получения ссылки на текущую сессию:
UserX.sessionUrl
Код для получения ссылки на все сессии этого устройства:
UserX.externalAnalyticsUrl
Добавление SDK UserX
Ручная установка SDK:
Скачайте последнюю версию UserX SDK для Android проекта.
Распакуйте скачанный файл.
Откройте свой проект в Android Studio.
Добавьте новый модуль File -> New -> New Module
- выберите Import .JAR/.AAR Package
, где указываем путь к скачанному userx.aar
.
Проверяем что в settings.gradle
добавилась библиотека: include ..., ':userx'
В build.gradle
своего проекта в раздел dependencies
добавьте:
implementation project(":UserX-4.2.2")
Импорт библиотеки из репозитория:
В build.gradle
уровня приложения в раздел repositories
добавьте:
maven { url 'https://github.com/userxpro/userx/raw/maven/' }
В build.gradle
своего проекта в раздел dependencies
добавьте:
implementation "pro.userx:UserX:4.2.2@aar"
Инициализация
В UserX предусмотрено 3 режима работы. Для каждого из них - разные методы инициализации (указаны ниже).
Используйте только один метод инициализации.
По умолчанию вам доступен только автоматический режим работы. Остальные режимы доступны только на индивидуальных тарифах.
Режим 1 (основной): автоматический
Активация UserX происходит вызовом следующего кода (необходимо вызвать один раз, мы настоятельно рекомендуем инициализировать UserX в переопределенном классе Application в методе onCreate):
UserX.init("YOUR_API_KEY");
Режим 2: ручной режим работы SDK
UserX.manualMode("YOUR_API_KEY");
В ручном режиме сессия и все ее события начнут записываться только после вызова метода начала сессии. Запись закончится после вызова метода остановки записи, либо после сворачивания приложения пользователем.
// оба эти метода работают только после ручной инициализации UserX
UserX.startSession(); // start recording
UserX.stopSession(); // stop recording
Режим 3: режим работы с ручным управлением отправки сессии
UserX.init(String apiKey, boolean uploadIfMarked); // если uploadIfMarked = true - то включается режим ручного управления отправки сессии
В этом режиме сессия будет записываться также как и в автоматическом, но отправлена на сервер она будет только если в время сессии был вызван метод:
UserX.markSessionToUpload();
Запишите первую сессию
После интеграции SDK:
- Запустите приложение на несколько секунд и попользуйтесь им;
- Нажмите кнопку "Домой" и подождите 20-30 секунд. Не выгружайте приложение из памяти после первого запуска.
- Обновите консоль и посмотрите видео, загруженное в USERX.
Пользовательские атрибуты
Чтобы разделять видео от разных пользователей, можно использовать параметр userId,
который устанавливается вызовом следующего метода:
UserX.setUserId("YOUR_INTERNAL_USER_ID");
Вы можете передать свои собственные атрибуты пользователя, например имя, фамилию, возраст. Затем вы сможете искать пользователей по атрибутам. Значения атрибутов пользователей перезаписываются, но вы сможете найти пользователя по его предыдущему значению атрибута. Предусмотрены 2 типа атрибутов - простой и счетчик. Простой атрибут может быть строкой, числом или boolean. По простому атрибуту возможен поиск по полному совпадению. Для атрибута типа счетчик имеется возможность установить значение, уменьшить или увеличить. Поиск пользователей можно вести по полному совпадению значения счетчика либо по больше/меньше.
Для установки пользовательских атрибутов воспользуйтесь следующим методом:
UserX.applyUserAttributes(Attribute... attributes);
// Simple attribute:
Attribute.stringAttribute(String name).set(String value);
Attribute.numberAttribute(String name).set(long value);
Attribute.numberAttribute(String name).set(double value);
Attribute.booleanAttribute(String name).set(boolean value);
// Counter attribute:
Attribute.counterAttribute(String name).set(long value); // set counter value
Attribute.counterAttribute(String name).increment(); // increment by 1
Attribute.counterAttribute(String name).increment(long delta); // increment by delta
Attribute.counterAttribute(String name).decrement(); // decrement by 1
Attribute.counterAttribute(String name).decrement(long delta); // decrement by delta
Примеры использования:
// example 1 - set attributes after user registration
UserX.applyUserAttributes(
Attribute.stringAttribute("phone number").set("8800000900"),
Attribute.stringAttribute("first name").set("Ivan"),
Attribute.numberAttribute("age").set(45),
Attribute.booleanAttribute("vip account").set(true),
Attribute.counterAttribute("friends count").set(0)
);
// example 2 - user wrote a message in the chat
UserX.applyUserAttributes(
Attribute.counterAttribute("messages written").increment()
);
// example 3 - user made a purchase
UserX.applyUserAttributes(
Attribute.counterAttribute("purchases").increment(),
Attribute.counterAttribute("spent money").increment(3650)
);
Определение клавиатуры
Вы можете разрешить или запретить вывод клавиатуры с помощью параметра (отключение снижает нагрузку):
UserX.setKeyboardRenderingEnabled(boolean isKeyboardRenderingEnabled) // default - true
Перехват ошибок
Включение/выключение перехвата ошибок (по умолчанию включено, при интеграции с Crashlytics должно быть включено)
UserX.setCatchExceptions(boolean catchExceptions)
Отправка событий
Отправка произвольных событий. Вы можете отправлять произвольные события вашей сессии, по этим событиям вы сможете искать сессии. Для отправки событий воспользуйтесь следующими методами:
UserX.addEvent(String firstArg);
UserX.addEvent(String firstArg, String attributeName, String attributeValue);
UserX.addEvent(String name, HashMap attributes);
Регистрация экрана
UserX автоматически регистрирует экраны Activity, Fragment, диалоговые окна и выпадающие меню. Для Fragment поддерживается как вывод фрагмента с использованием FragmentManager, так и ViewPager и ViewPager2. При переключении Fragment с одинаковыми классами, например внутри ViewPager, они будут зарегистрированы как один экран.
Вы можете отключить автоматическую регистрацию фрагментов или модальных окон и меню вызвав соответствующий метод:
UserX.setAutodetectFragments(false); // default - true
UserX.setAutodetectDialogsAndMenus(false); // default - false
Если вам необходимо зарегистрировать экран с собственным именем или при необходимых вам условиях используйте метод:
/**
* @param title - screen title
*/
UserX.addScreenName(String title)
Если вы используете proguard - возможна некорректная регистрация названий классов экранов, чтобы исправить это добавьте следующие правила в proguard-rules вашего проекта:
-keep class * extends android.app.Fragment
-keep class * extends androidx.fragment.app.Fragment
-keep class * extends android.support.v4.app.Fragment
Скрытие "секретных" полей
Для скрытия любого элемента интерфейса, содержание которого не должно отображаться в сессии
UserX.addSensitiveView(view); // hide
UserX.removeSensitiveView(view); // unhide
Также вы можете запретить запись кликов:
UserX.setCatchUserTaps(boolean catchUserTaps)
Начиная с Android 8 UserX записывает контент с видео плейеров. Если вам необходимо отключить запись видео с плейеров - вызовите UserX.addSensitiveView(view) - в этом случае окно с плейером будет скрыто от записи, включая все эелементы управления воспроизведением видео. Если же вам необходимо скрыть видео и оставить возможность отслеживания элементов управления, размещенных поверх плейера - на экране, где выводится плейер вызовите:
UserX.useOldRenderer(true)
и после выхода с этого экрана:
UserX.useOldRenderer(false)
Запись WebView
UserX записывает весь контент с WebView. Если на страницах, отображаемых в WebView, имеются поля, которые необходимо скрыть от записи - вызовите:
UserX.setWebView(WebView webView);
Автоматически будут скрыты элементы "input", "textarea", "button" и элементы с классом "userx-mask". Если вы хотите скрыть другие элементы, вызовите:
UserX.setWebView(WebView webView, String... selectorsToHide);
в selectorsToHide перечислите все CSS селекторы, которые вы хотите скрыть от записи.
Также вы можете указать все CSS селекторы, которые необходимо скрыть от записи во всех регистрируемых WebView вызвав метод:
UserX.setGlobalWebViewCssSelectorsToHide(String... selectorsToHide);
Отрисовка GoogleMaps
Вы можете разрешить UserX выполнять рендеринг GoogleMap (снижает производительность при работе с картой). Для этого воспользуйтесь одним из методов:
/**
* @param mapContainerId MapFragment layout id
* @param googleMap GoogleMap
*/
UserX.setGoogleMap(int mapContainerId, com.google.android.gms.maps.GoogleMap googleMap);
/**
* @param mapContainerId MapFragment layout id
* @param googleMap GoogleMap
* @param googleMapSnapshotPeriod milliseconds, default = 1000ms
*/
UserX.setGoogleMap(int mapContainerId, com.google.android.gms.maps.GoogleMap googleMap, long googleMapSnapshotPeriod);
Отрисовка Yandex MapKit
Для отрисовки Yandex карты необходимо в XML файл вашего макета в элемент com.yandex.mapkit.mapview.MapView добавить yandex:movable="true". И также вызвать в коде:
UserX.setYandexMap(Object yandexMapView)
Ручное управление записью
UserX.startScreenRecording(); // start video recording
UserX.stopScreenRecording(); // stop video recording
Вызовите метод startScreenRecord, чтобы запустить запись видео в ручном режиме. Автоматическая запись видео также будет действовать, в соответствии с выбранными настройками записи. Чтобы остановить запись видео, вызовите метод stopScreenRecord. Запись видео в любом случае будет остановлена при сворачивании приложения.
Запись при скролле
Если в вашем приложении при использовании UserX наблюдаются проблемы производительности при прокрутке списков, вызовите этот метод сразу после инициализации UserX:
UserX.setScrollRenderingEnabled(false);
Код для получения ссылки на текущую сессию:
UserX.getSessionUrl();
Код для получения ссылки на все сессии этого устройства:
UserX.getExternalAnalyticsUrl();
Добавление плагина UserX
Загрузите
последнюю версию плагина UserX для проекта Unity.
Распакуйте загруженный файл.
Добавьте UserXPlugin в Assets
Инициализация
В коде, вызываемом при старте приложения, выполните:
UserXKitExtension.Init("API_KEY");
Запишите первую сессию
После интеграции SDK:
- Запустите приложение на несколько секунд и попользуйтесь им;
- Нажмите кнопку "Домой" и подождите 20-30 секунд. Не выгружайте приложение из памяти после первого запуска.
- Обновите консоль и посмотрите видео, загруженное в USERX.
Пользовательские атрибуты
Вы можете передать id пользователя, своего приложения с помощью строки кода:
UserXKitExtension.SetUserId("YOUR_INTERNAL_USER_ID");
Ручное управление записью
UserXKitExtension.StartRecording(); // start video recording
UserXKitExtension.StopRecording(); // stop video recording
Вызовите метод startScreenRecord, чтобы запустить запись видео в ручном режиме. Автоматическая запись видео также будет действовать, в соответствии с выбранными настройками записи. Чтобы остановить запись видео, вызовите метод stopScreenRecord. Запись видео в любом случае будет остановлена при сворачивании приложения.
Отправка событий
Отправка произвольных событий. Вы можете отправлять произвольные события вашей сессии, по этим событиям вы сможете искать сессии. Для отправки событий воспользуйтесь следующими методами:
UserXKitExtension.AddEvent("YOUR_EVENT");
Регистрация экрана
UserX автоматически регистрирует все экраны вашего приложения, включая модальные окна.
Если у вас есть собственная реализация экранов, которую не распознает наша библиотека UserX - вы можете использовать один из этих методов для ручной регистрации экранов (вызывать в момент начала показа экрана):
UserXKitExtension.StartScreen("SCREEN_NAME");
UserXKitExtension.StartScreen("SCREEN_NAME", "PARENT_SCREEN_NAME");
Добавление плагина UserX
Загрузите Unity Android Plugin
В Unity Editor выполните: Assets / Import Package / Custom Package... и выберите загруженный файл.
Инициализация
В коде, вызываемом при старте приложения, выполните:
UserXUnityAndroid.UserX.init("API_KEY");
Запишите первую сессию
После интеграции SDK:
- Запустите приложение на несколько секунд и попользуйтесь им;
- Нажмите кнопку "Домой" и подождите 20-30 секунд. Не выгружайте приложение из памяти после первого запуска.
- Обновите консоль и посмотрите видео, загруженное в USERX.
Пользовательские атрибуты
Чтобы разделять видео от разных пользователей, можно использовать параметр userId,
который устанавливается вызовом следующего метода:
UserXUnityAndroid.UserX.setUserId("YOUR_INTERNAL_USER_ID");
Определение клавиатуры
Вы можете разрешить или запретить вывод клавиатуры с помощью параметра (отключение снижает нагрузку):
UserXUnityAndroid.UserX.setKeyboardRenderingEnabled(boolean isKeyboardRenderingEnabled) // default - true
Перехват ошибок
Включение/выключение перехвата ошибок (по умолчанию включено, при интеграции с Crashlytics должно быть включено)
UserX.setCatchExceptions(boolean catchExceptions)
Отправка событий
Отправка произвольных событий. Вы можете отправлять произвольные события вашей сессии, по этим событиям вы сможете искать сессии. Для отправки событий воспользуйтесь следующими методами:
UserXUnityAndroid.UserX.addEvent(String firstArg);
UserXUnityAndroid.UserX.addEvent(String name, Dictionary attributes);
Регистрация экрана
Если вам необходимо зарегистрировать экран с собственным именем или при необходимых вам условиях используйте метод:
UserXUnityAndroid.UserX.addScreenName(String title)
Ручное управление записью
UserXUnityAndroid.UserX.startScreenRecording(); // start video recording
UserXUnityAndroid.UserX.stopScreenRecording(); // stop video recording
Вызовите метод startScreenRecord, чтобы запустить запись видео в ручном режиме. Автоматическая запись видео также будет действовать, в соответствии с выбранными настройками записи. Чтобы остановить запись видео, вызовите метод stopScreenRecord. Запись видео в любом случае будет остановлена при сворачивании приложения.
Запись при скролле
Если в вашем приложении при использовании UserX наблюдаются проблемы производительности при прокрутке списков, вызовите этот метод сразу после инициализации UserX:
UserXUnityAndroid.UserX.setScrollRenderingEnabled(false);
Добавление UserX
Загрузите
последнюю версию плагина UserX для проекта Xamarin IOS.
Распакуйте загруженный файл.
Добавьте UserX в свой проект:
Depedencies -> Add reference -> .Net Assembly -> Browse -> UserX.dll
Инициализация
В AppDelegate.cs в методе FinishedLaunching:
using UserXBinding;
UserX.Start("USERX_KEY");
Запишите первую сессию
После интеграции SDK:
- Запустите приложение на несколько секунд и попользуйтесь им;
- Нажмите кнопку "Домой" и подождите 20-30 секунд. Не выгружайте приложение из памяти после первого запуска.
- Обновите консоль и посмотрите видео, загруженное в USERX.
Пользовательские атрибуты
Вы можете передать id пользователя, своего приложения с помощью строки кода:
UserX.UserId = "YOUR_INTERNAL_USER_ID";
Ручное управление записью
UserX.StartScreenRecording(); // start video recording
UserX.StopScreenRecording(); // stop video recording
Вызовите метод startScreenRecord, чтобы запустить запись видео в ручном режиме. Автоматическая запись видео также будет действовать, в соответствии с выбранными настройками записи. Чтобы остановить запись видео, вызовите метод stopScreenRecord. Запись видео в любом случае будет остановлена при сворачивании приложения.
Отправка событий
Отправка произвольных событий. Вы можете отправлять произвольные события вашей сессии, по этим событиям вы сможете искать сессии. Для отправки событий воспользуйтесь следующими методами:
UserX.AddEvent("YOUR_EVENT", null);
Перехват ошибок
Чтобы включить сбор crash логов:
UserX.CatchExceptions = true;
Добавление плагина UserX
Добавьте зависимость в ваш pubspec.yaml
dependencies:
userx_flutter: ^1.0.9
Импортируйте в свой код Dart (main.dart):
import 'package:userx_flutter/userx_flutter.dart';
Инициализация
Инициализируйте UserX в main.dart:
@override
void initState() {
super.initState();
UserX.start("YOUR_API_KEY");
}
Запишите первую сессию
После интеграции SDK:
- Запустите приложение на несколько секунд и попользуйтесь им;
- Нажмите кнопку "Домой" и подождите 20-30 секунд. Не выгружайте приложение из памяти после первого запуска.
- Обновите консоль и посмотрите видео, загруженное в USERX.
Пользовательские атрибуты
Вы можете передать id пользователя, своего приложения с помощью строки кода:
UserX.setUserId("USER_ID");
Отправка событий
Отправка произвольных событий. Вы можете отправлять произвольные события вашей сессии, по этим событиям вы сможете искать сессии. Для отправки событий воспользуйтесь следующими методами:
UserX.addEvent("EVENT_NAME", {"EVENT_PARAM" : "PARAM_VALUE"});
Ручное управление записью
UserX.stopScreenRecording();
UserX.startScreenRecording();
Вызовите метод startScreenRecord, чтобы запустить запись видео в ручном режиме. Автоматическая запись видео также будет действовать, в соответствии с выбранными настройками записи. Чтобы остановить запись видео, вызовите метод stopScreenRecord. Запись видео в любом случае будет остановлена при сворачивании приложения.
Добавление SDK UserX
Android
В директории вашего проекта выполните:
yarn add react-native-userx
react-native link react-native-userx
В папке Android вашего проекта в файле build.gradle в секцию allprojects repositories добавьте:
maven { url 'https://github.com/userxpro/userx/raw/maven/' }
Должно получиться примерно так:
...
allprojects {
repositories {
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
google()
jcenter()
maven { url 'https://www.jitpack.io' }
maven { url 'https://github.com/userxpro/userx/raw/maven/' }
}
}
IOS
Теперь работает автолинковка. Если ранее пытались интегрировать и линковали вручную, то надо предварительно выполнить разлинковку:
react-native unlink react-native-userx
Далее интеграция следующими инструкциями, выполняемыми из директории проекта:
yarn add react-native-userx
cd ios && pod install && cd ..
Инициализация
В вашем App.js добавьте код:
let UserX = require('react-native-userx');
UserX.start('YOUR_API_KEY');
Запишите первую сессию
После интеграции SDK:
- Запустите приложение на несколько секунд и попользуйтесь им;
- Нажмите кнопку "Домой" и подождите 20-30 секунд. Не выгружайте приложение из памяти после первого запуска.
- Обновите консоль и посмотрите видео, загруженное в USERX.
Отправка событий
Отправка произвольных событий. Вы можете отправлять произвольные события вашей сессии, по этим событиям вы сможете искать сессии. Для отправки событий воспользуйтесь следующими методами:
UserX.addEvent('Your Event Name');
UserX.addEvent('Your Event Name', associativeArrayWithParameters) ;
Скрытие "секретных" полей
Для скрытия любого элемента интерфейса, содержание которого не должно отображаться в сессии
<View ref={ x => UserX.hideSensitiveView(x) } />
Интеграция со сторонними сервисами
UserX позволяет интегрироваться с известными сервисами аналитики для более лучшего анализа ваших приложений и поведений пользователей.

Slack
Подключите Slack и UserX будет отправлять в ваш канал уведомления о событиях и отчеты.
Войдите в свой аккаунт для подключения
AppMetrica
Загружайте свои отчеты из AppMetrica прямо в UserX для получения ссылок на видео-сессии.
Войдите в свой аккаунт для подключения
Crashlytics
Настройте Crashlytics с UserX для просмотра сессий с крашем по ссылке из вашего проекта Crashlytics.
Войдите в свой аккаунт для подключения
Google Analytics
Интегрируйте свой проект Google Analytics в UserX для возможности просмотра видео сессий по ссылкам из консоли Google Analytics.
Войдите в свой аккаунт для подключенияAppsFlyer
Подключите Userxpro к своему приложению в AppsFlyer чтобы искать сессии пользователей по рекламным кампаниям.
Войдите в свой аккаунт для подключенияИнтегрировал SDK, но сессии не отображаются в консоли UserX
Сессия выгружается на сервера UserX после сворачивания приложения. Если по каким-либо причинам выгрузка сессии не удалась (отсутствует либо плохое подключение к интернет) - сессия будет выгружена при следующем запуске приложения.
Если приложение не было свернуто, а принудительно выгружено из памяти - сессия будет отправлена при следующем запуске. К этой же ситуации относится принудительное завершение приложения через среду разработки (XCode, Android Studio и т.п.). Но также в этой ситуации есть вероятность того, что сессия будет повреждена, то есть не полностью соответствовать реальным данным на экране устройства. Поэтому, если вы записываете вашу первую сессиию крайне желательно чтобы процесс завершения работы с приложением максимально соответствовал реальному взаимодействию обычного пользователя с вашим приложением - работа с приложением была завершена нажатием кнопки "домой", либо "смахнуто" из списка активных приложений. Сессия будет доступна в консоли UserX через пару минут.
Также обратите внимание на параметр "таймаут сессии", который вы можете задать в настройках вашего приложения в консоли UserX. Если время между запусками приложения будет меньше его значения - то сессии будут объединены в одну. Это сделано для того, чтобы не разрывать логически единую сессии в том случае, если пользователь покинул ваше приложение на короткий промежуток времени, например для принятия входящего звонка, или перехода в другое приложение на короткое время.
Длительность хранения данных
Длительность хранения каждой сессий на сервере составляет 90 дней с момента сохранения сессии. После истечения этого срока сессия будет полностью удалена с сервера, при этом на сервере останется небольшая информация о сессии для правильного учета количества сессий пользователя и возможности просмотра истории сессий. Эта информация будет отображена в списке сессий пользователя при просмотре сессии.
Видео из сессии будет удалено через 60 дней. Сама сессия останется доступной, пока не истечет срок ее хранения.
Если вам необходимо изменить длительность хранения данных - сообщите нам об этом в форме обратной связи.
Ограничения на запись сессий
Пользователи вашего приложения могут записывать сессии неограниченной длины.
Ограничение на количество сессий вашего приложения соответствуют ограничениям вашего тарифного плана и настроенным вами параметрам записи.
Список устройств, на которых отключена запись видео
На платформе Android мы не вводим никаких ограничений. Для записи сессий доступны все устройства.
Если вам необходимо исключить запись на каких-либо устройствах - сообщите нам. Также мы можем снизить количество записываемых кадров в секунду у конкретного устройства с целью повышения производительности.
На платформе IOS мы исключили запись видео на некоторых устройствах из-за того, что на них замечено снижение производительности работы приложений с включенным UserX. При этом запись сессии на них ведется - длительность, клики, свайпы, и все параметры.
- iPod Touch 5
- iPod Touch 4
- iPod Touch 3
- iPod Touch 2
- iPod Touch 1
- Apple TV
- Apple TV 4
- iPhone 4
- iPad 2
- iPad 3
- iPad 4
- iPad 5
- iPad Air 1
- iPad Air 2
- iPad Mini 1
- iPad Mini 2
- iPad Mini 3
Если вам необходимо исключить запись на каких-либо устройствах - сообщите нам. Также мы можем снизить количество записываемых кадров в секунду у конкретного устройства с целью повышения производительности.