# Пользовательские параметры клиента
# Что такое пользовательский параметр клиента?
Помимо общих данных, которые Sales Ninja собирает для каждой страницы автоматически — вы можете передавать дополнительные данные о странице вручную.
Например, если пользователь авторизирован в вашей системе и вы знаете его пол и возраст, то вы можете указывать эти дополнительные данные как параметры клиента.
# Как поможет указание параметров клиента?
Во-первых, вы сможете использовать указанные параметры в условиях показа.
Во-вторых, далее эти данные будут использоваться в обучении.
# Сколько хранится параметр пользователя?
Параметр пользователя сохраняется в local storage (opens new window) текущего пользователя и будет храниться там до удаления или перезаписи.
Достаточно один раз записать параметр пользователя - и он будет доступен на всех страницах сайта в текущей и последующих сессиях данного пользователя.
# Какие есть ограничения на количество параметров пользователя?
Значение параметра пользователя может иметь максимум 512 символов. Если передано более длинное значение - оно будет обрезано до первых 512 символов.
Вы можете указывать сколько угодно параметров пользователя, однако необходимо помнить, что размер local storage во многих браузерах имеет ограниченный размер (обычно 5 или 10 Мб, но лучше ориентироваться на 5 Мб).
Sales Ninja (как и большинство других приложений) использует local storage для полноценной работы многих функций. Соответственно для хранения параметров пользователя будет доступна еще меньшая память.
Для хранения данных в local storage браузеры используют кодировку UTF-16 (opens new window), а значит каждый символ занимает 2 байта.
А значит, даже указав 1000 пользовательских параметров максимального размера (512 символов) вы займете лишь 20% от доступного объема local storage.
Поэтому на практике можно не беспокоиться об ограничениях на количество параметров пользователя.
# Методы работы с пользовательскими параметрами
# Записать параметр
Для записи параметра пользователя внутри скрипта подключения используйте:
<script>
/** INIT_SCRIPT */
ninja('init','здесь будет ваш уникальный код проекта');
ninja('setUserParam', 'ключ', значение) // "значение" может быть строкой или числом
ninja('start');
</script>
Для записи параметра пользователя вне скрипта подключения используйте:
ninja('setUserParam', 'ключ', значение)
Записанный параметр пользователя начинает учитываться при передаче данных только после самой записи.
Если часть данных уже успело передаться на сервер и только потом был указан параметр пользователя - то в уже переданных данных параметр пользователя указан не будет.
Поэтому, мы рекомендуем указывать все параметры визита внутри скрипта подключения до вызова ninja('start');
# Удалить параметр
Для удаления параметра используйте функцию:
ninja('deleteUserParam', 'ключ')
# Получить параметр
Для получения одного параметра используйте функцию:
window.SalesNinja.getUserParam("ключ") // Это синхронная функция, будет работать только при window.SalesNinja.ready == true
# Получить все параметры
Для получения всех параметров используйте функцию:
window.SalesNinja.getUserParams() // Это синхронная функция, будет работать только при window.SalesNinja.ready == true