@trackmind-work/sdk-web
v0.1.2
Published
TrackMind browser analytics SDK (autocapture, queue, flush)
Readme
@trackmind-work/sdk-web
Браузерний SDK. Публічний API — документ 05; envelope і HTTP — документ 21.
npm install @trackmind-work/sdk-webimport { analytics } from '@trackmind-work/sdk-web';
analytics.init({
projectKey: '<browser key з Settings → API keys, не pk_live_xxx з git>',
environment: 'production',
release: '4.31.0',
endpoint: 'https://collect.trackmind.work',
});
analytics.track('signup_completed');
analytics.identify('user_42');
analytics.debug(true);
analytics.flush();flushIntervalMs optional: дефолт 10 000 мс (док. 25 §6, target 6 req/min). 0 вимикає періодичний flush. Черга пишеться в localStorage (__tm_queue:<projectKey>); на pagehide — sendBeacon + fetch keepalive, тіло ≤ 64 KiB.
Локально: endpoint: 'http://localhost:3001'. Production: https://collect.trackmind.work (не www).
endpoint — base URL collector (без /v1/batch). Хост залежить від деплою; у прикладі документа 05 його немає, бо це не частина envelope.
allowed_origins browser-ключа — точний Origin tracked-продукту (схема+хост+порт); при створенні обовʼязковий хоча б один. https://www.trackmind.work ≠ https://trackmind.work. Для dogfood TrackMind UI додайте https://www.trackmind.work.
Опублікований пакет бандлить потрібні константи з contracts (limits / HTTP status / reserved properties). У монорепо джерело істини лишається @trackmind/contracts під час збірки. Ajv у runtime SDK не входить.
Після init() працює базовий autocapture: page_view, SPA history, delegated click / form_start / form_submit. Значення password/payment полів і auth query-параметри не збираються. Visible element.text (el_text) кладеться лише якщо на елементі (або предку) є data-analytics-id — інакше кнопки з іменами/адресами не потрапляють у БД. setConsent('denied') зупиняє збір і флаш уже зібраної черги (очищає persist). Повторний init() ігнорується. Якщо navigator.webdriver === true, init() no-op (мінімальний захист від ботів). Rage/dead click — пізніше.
