@inserra/sdk-web
v1.5.0
Published
Inserra Web SDK — event tracking, identity, consent, in-app messaging.
Readme
@inserra/sdk-web
Inserra Web SDK — event tracking, identity, consent, push, in-app messaging, link-click tracking.
Installation
npm (for bundled apps)
npm install @inserra/sdk-webimport { InserraClient, InAppRuntime, subscribePush, installClickTracking } from '@inserra/sdk-web';
const client = new InserraClient({ writeKey: 'wk_...' });
client.setConsent({ version: '1', grantedAt: new Date().toISOString(), purposes: ['marketing', 'analytics'] });
client.track({ name: 'page_viewed' });Script tag (no bundler)
The workspace serves a pre-built UMD bundle at /sdk/inserra.js:
<script src="https://<your-workspace>.inserra.ai/sdk/inserra.js"></script>
<script>
const client = new Inserra.InserraClient({ writeKey: 'wk_...' });
client.setConsent({ version: '1', grantedAt: new Date().toISOString(), purposes: ['marketing', 'analytics'] });
client.track({ name: 'page_viewed' });
</script>Modules
| Import | Purpose |
|---|---|
| InserraClient | Event queue + identify + track + page + consent |
| subscribePush / unsubscribePush / requestPushPermission | Browser Push API wrapper |
| InAppRuntime | In-app banner/modal/inline renderer |
| installClickTracking | Optional auto-capture of outbound link clicks |
Push subscription
const registration = await navigator.serviceWorker.register('/sw.js');
await subscribePush(
{ endpoint: 'https://api.inserra.ai', writeKey: 'wk_...' },
{
registration,
vapidPublicKey: 'B...',
anonymousId: '<stable-device-uuid>',
appIdentifier: 'shop.example.com',
},
);In-app messages
// Server mints an inbox token via POST /v1/inbox/tokens and hands it to the SDK.
const runtime = new InAppRuntime({ endpoint: 'https://api.inserra.ai', writeKey: 'wk_...' });
runtime.start({ inboxToken, pollIntervalMs: 60_000, currentScreen: 'home' });
// After a trigger event, re-check immediately:
await runtime.evaluate({ currentEvent: { name: 'added_to_cart' } });Build
pnpm build # tsc + UMD bundle
pnpm build:types # tsc only
pnpm build:umd # UMD bundle only
pnpm test
pnpm typecheck