JavaScript SDK - Инициализация SDK
Установка
Section titled УстановкаСледующая строка установит трекер и SDK, позволяя вам использовать все функции трекера.
npm i @openreplay/tracker
Инициализация
Section titled ИнициализацияПри создании экземпляра трекера OpenReplay, вы можете предоставить несколько настроек конфигурации для настройки многих аспектов записи и процесса записи.
Вы должны установить опцию projectKey в конструкторе. Это значение можно получить в вашей панели управления OpenReplay в разделе ‘Настройки > Проекты’.
Одностраничные приложения (SPA)
Section titled Одностраничные приложения (SPA)Если ваш сайт является Одностраничным приложением (SPA), используйте следующий код:
import OpenReplay from '@openreplay/tracker';
//...
const tracker = new OpenReplay({
projectKey: PROJECT_KEY
});
tracker.start(); // возвращает промис с информацией о сессии (sessionID, sessionHash, userUUID)
Серверный рендеринг (SSR)
Section titled Серверный рендеринг (SSR)В противном случае, если ваше веб-приложение Рендерится на сервере (SSR) (например, NextJS, NuxtJS), используйте следующий фрагмент кода. Убедитесь, что tracker.start() вызывается после запуска приложения (в useEffect или componentDidMount).
import OpenReplay from '@openreplay/tracker/cjs';
//...
const tracker = new OpenReplay({
projectKey: PROJECT_KEY,
});
//...
function MyApp() {
useEffect(() => { // используйте componentDidMount в случае React Классового Компонента
tracker.start(); // возвращает промис с информацией о сессии (sessionID, sessionHash, userUUID)
}, [])
}
Пример
Section titled Примерimport OpenReplay from '@openreplay/tracker/cjs';
//...
const tracker = new OpenReplay({
projectKey: PROJECT_KEY,
ingestPoint: "https://openreplay.mydomain.com/ingest", // при работе с самостоятельно размещаемой версией OpenReplay
capturePerformance: true,
__DISABLE_SECURE_MODE: true // для локального тестирования
});
Опции Инициализации
Section titled Опции ИнициализацииСуществует набор опций, которые вы можете передать конструктору. Только projectKey является обязательным.
Общего Назначения
Section titled Общего НазначенияprojectKey: stringID проекта, который вы отслеживаете.sessionHash?: stringХеш первоначальной сессии. Это полезно, когда сессии переходят через разные поддомены вашего веб-приложения, но вы хотите объединить их в одну запись. Если продолжение сессии невозможно (она не существует или завершена), трекер автоматически начнет новую. Также возвращается при вызовеstop(). Больше деталей здесь.ingestPoint?: stringВаш домен OpenReplay (например, https://openreplay.mydomain.com/ingest), на который трекер будет отправлять события. Это необязательно для пользователей OpenReplay Cloud. По умолчанию:https://api.openreplay.com/ingest(указывает на OpenReplay Cloud).revID?: stringID ревизии вашего веб-приложения. Полезно при поиске проблем, возникающих в конкретной версии релиза.resourceBaseHref?: stringОтносится к публично доступному домену, откуда активы (стили, шрифты и иконки) могут быть загружены OpenReplay. Поскольку они необходимы для корректного воспроизведения сессии, этот параметр полезен для обхода ограничений, связанных с размещением вашего сайта (и, следовательно, активов) в частном домене. Пример:https://mysitepublic.com/assets/.captureIFrames?: booleanДля захвата всех iFrames одного домена в вашем веб-приложении. Если вы хотите отслеживать конкретный iFrame, просто добавьте HTML-атрибутdata-openreplay-captureк тегу<iframe>. По умолчанию:true.disableClickmaps?: booleanДля отключения карт кликов. По умолчанию:true.verbose?: booleanДля включения логирования. По умолчанию:false.autoResetOnWindowOpen?: booleanВключите эту опцию для сброса ID сессии при открытии новой вкладки из вашего приложения. Это перезаписывает методwindow.open, чтобы избежать дублирования ID сессий из-за общего хранения сессий между вкладками браузера. По умолчанию:false.forceSingleTab: booleanОтключает возможности записи в нескольких вкладках. По умолчанию:false.disableStringDict: booleanОтключает логику словаря строк (для оптимизации хранения) в записях. По умолчанию:false.
Конфиденциальность
Section titled КонфиденциальностьrespectDoNotTrack?: booleanНе запускать трекер, если в браузере пользователя включен флаг “не отслеживать”. По умолчанию:false.obscureTextEmails?: booleanЗатемняет электронные адреса в текстовых элементах. Электронные адреса будут преобразованы в случайную цепочку звездочек. По умолчанию:true.obscureTextNumbers?: booleanЗатемняет числа в текстовых элементах. Числа будут преобразованы в случайную цепочку звездочек. По умолчанию:false.obscureInputEmails?: booleanЗатемняет электронные адреса в полях ввода. Значения электронной почты будут преобразованы в случайную цепочку звездочек. По умолчанию:true.obscureInputNumbers?: booleanЗатемняет числа в полях ввода. Значения чисел будут преобразованы в случайную цепочку звездочек. По умолчанию:false.obscureInputDates?: booleanЗатемняет даты в полях ввода. Значения дат будут преобразованы в случайную цепочку звездочек. По умолчанию:false.defaultInputMode?: 0 | 1 | 2Стандартный режим захвата значений ввода. Соответственно: явный, затемненный или игнорируемый. По умолчанию:1(затемненный).
Обратите внимание, что исключенные данные затемняются или подавляются перед отправкой на серверы OpenReplay. Изменения, внесенные в вышеупомянутые опции, не могут быть ретроактивными и будут применяться только к вновь собираемым данным. См. Санитизация Данных для получения дополнительной информации.
Консоль
Section titled КонсольconsoleMethods?: Array<'log' | 'info' | 'warn' | 'error' 'debug' | 'assert'> | nullУказывает список методов консоли для захвата. По умолчанию:['log', 'info', 'warn', 'error', 'debug', 'assert']consoleThrottling?: numberМаксимальное количество захватываемых записей консоли в секунду. По умолчанию:30.
Исключения
Section titled ИсключенияcaptureExceptions?: booleanЗахват исключений JavaScript и трассировок стека. По умолчанию:true.
Тайминги
Section titled ТаймингиcaptureResourceTimings?: booleanЗаписывает временные показатели ресурсов. По умолчанию:true.capturePageLoadTimings?: booleanЗаписывает временные показатели загрузки страницы. По умолчанию:true.capturePageRenderTimings?: booleanРассчитывает метрики рендеринга страницы, такие как индекс скорости, визуально полное или время до интерактивности. ТребуетcaptureResourceTimings = true. По умолчанию:true.
Производительность
Section titled ПроизводительностьcapturePerformance?: booleanДля захвата метрик производительности, таких как частота кадров, потребление ЦП и памяти. По умолчанию:true.
Опция network относится к захвату сетевых запросов и полезной нагрузки для fetch и XHR.
network?: {
failuresOnly: boolean;
sessionTokenHeader: string;
ignoreHeaders: Array<string> | boolean;
capturePayload: boolean; // убедитесь, что вы санировали данные перед включением
sanitizer: (RequestResponseData) => RequestResponseData | null;
captureInIframes: boolean;
axiosInstances: AxiosInstance[];
useProxy?: boolean;
tokenUrlMatcher?: (url: string) => boolean;
}
Смотрите Сетевые Опции для примеров и подробностей о том, как редактировать конфиденциальные данные.
Указатель Мыши
Section titled Указатель МышиОпция mouse относится к захвату селекторов для кликов для создания карт кликов.
mouse?:
{
disableClickmaps?: boolean
minSelectorDepth?: number
nthThreshold?: number
maxOptimiseTries?: number
}
disableClickmaps?: booleanПолностью отключает вычисление селекторов. По умолчанию:false.minSelectorDepth?: numberМинимальная длина оптимизированного селектора (по умолчанию 2). Пример:body > div > div > p => body > pnthThreshold?: numberКоличество попыток селектора перед переходом к селекторам nth-child. Это дорогостоящая операция и может привести к значительным накладным расходам, не устанавливайте выше 2000. По умолчанию:1000.maxOptimiseTries?: numberКоличество попыток оптимизации и укорочения селектора. По умолчанию:10 000.
Переподключения
Section titled ПереподключенияconnAttemptCount?: numberМаксимальное количество попыток повторного подключения, когда HTTP-запросы трекера не могут достичь бэкенда. По умолчанию:10.connAttemptGap?: numberПродолжительность между каждой попыткой повторного подключения (выраженная в мс). По умолчанию:8000.
Безопасность
Section titled Безопасность__DISABLE_SECURE_MODE?: booleanДля разрешения небезопасного соединения между трекером и бэкендом на сайтах без SSL. Это должно использоваться только в целях разработки. По умолчанию:false.