← Документация

Сниппет и глобал LiveContext()

Универсальный способ установки для любого сайта без сборки. Один <script> подгружает виджет чата и открывает глобальную функцию-очередь window.LiveContext(...) для событий и идентификации.

Установка

Вставьте перед закрывающим тегом </body>, подставив свой публичный ключ pk_live_…:

<script>
  (function(w,d,s,u){w.LiveContext=w.LiveContext||function(){(w.LiveContext.q=w.LiveContext.q||[]).push(arguments)};
  var j=d.createElement(s);j.type='module';j.async=true;j.src=u;d.head.appendChild(j);
  })(window,document,'script','https://livecontext.ru/embed/embed.js');
  LiveContext('init','pk_live_ВАШ_КЛЮЧ',{apiUrl:'https://livecontext.ru'});
</script>

Сниппет асинхронный: команды, вызванные до загрузки скрипта, копятся в очереди LiveContext.q и выполняются после инициализации. Порядок вызовов сохраняется.

Команды

Все команды вызываются как LiveContext(команда, ...аргументы).

init

Инициализация. Первый аргумент — публичный ключ, второй — необязательные опции.

LiveContext('init', 'pk_live_ВАШ_КЛЮЧ', { apiUrl: 'https://livecontext.ru' });
ОпцияТипОписание
apiUrlstringБаза API. Можно опустить при same-origin установке.

page

Просмотр страницы. Отправляется автоматически при загрузке; вызывайте вручную в SPA после смены роута.

LiveContext('page');
LiveContext('page', { section: 'pricing' });

track

Произвольное событие: имя и необязательные свойства.

LiveContext('track', 'added_to_cart', { product: 'Стол Осло', price: 12990 });

identify

Связать анонимную сессию с известным пользователем. Вызывайте после логина — вся предыдущая история склеится с профилем контакта.

LiveContext('identify', 'user-42', { email: 'anna@shop.ru', name: 'Анна' });

Третий аргумент — userHash (HMAC-подпись userId секретным ключом организации) для верификации личности. Подпись считается на сервере.

set

Кастомный атрибут контакта. Значение — string | number | boolean | Date | null (Date уходит как ISO-8601, null — сброс атрибута).

LiveContext('set', 'plan', 'pro');
LiveContext('set', 'is_vip', true);
LiveContext('set', 'trial_ends', new Date('2026-08-15'));
LiveContext('set', 'plan', null); // сброс

reset

Логаут: отправляет хвост буфера и начинает новую анонимную сессию (новый anonymous_id). Вызывайте, когда пользователь выходит из аккаунта.

LiveContext('reset');

Как это работает

Приложения со сборкой

Для React / Vue / Next вместо глобала удобнее типизированный npm-пакет @livecontextapp/sdk — тот же транспорт, но с автодополнением и типами.