Drop-in (script tag)
<!-- 1. Configure (optional) -->
<script>
window.TELE_CONFIG = {
endpoint: '/telemetry',
flushInterval: 5000
};
</script>
<!-- 2. Load SDK -->
<script src="tele.umd.min.js"></script>
<!-- 3. tele is globally available -->
<script>
tele.on('click', ev => {
console.log('clicked', ev.x, ev.y);
});
</script>
ES module / bundler
import tele from 'tele-js';
tele.config({ endpoint: '/telemetry' });
// Subscribe to events
tele.on('*', ev => analytics.push(ev));
// Fire custom events
tele.track('signup_complete', {
plan: 'pro', userId: 'u_123'
});
// Custom transport (e.g. send to your own backend)
tele.config({
onFlush: events => myApi.post(events)
});
Multiple isolated instances
import tele from 'tele-js';
// Separate sessions per user role
const adminTele = tele.create({
sessionId: `admin-${user.id}`,
endpoint: '/admin-telemetry',
capture: { mousemove: false }
});
const guestTele = tele.create({
endpoint: '/guest-telemetry',
flushInterval: 10000
});
Selective capture + masking
// Disable what you don't need
tele.config({
capture: {
mousemove: false, // skip heatmap data
touchmove: false, // disable touch move tracking
keydown: false, // no keystroke logging
}
});
// Sensitive fields auto-masked:
// <input type="password"> → key: '[masked]'
// <input name="card*"> → key: '[masked]'
// autocomplete="cc-*" → key: '[masked]'
// Stop capture entirely
tele.stop();
// Resume
tele.start();