Skip to content

Analytics

Public surface (analytics): logEvent (sync; fire-and-forget)

logEvent(
category: string,
action: string,
uri: string,
data?: unknown,
method?: string, // default 'trackevent'
): void
import mobilelocker from '@mobilelocker/javascript-sdk'
mobilelocker.analytics.logEvent('product', 'view', '/slides/overview')
mobilelocker.analytics.logEvent('product', 'view', '/slides/overview', {
productId: 42,
source: 'menu',
})
// Optional 5th arg: internal tracking method (default 'trackevent')
// Other domains pass 'capturedata', 'showpdf', etc. when posting through analytics.
Argument Role
category High-level grouping (e.g. product, form, share)
action Verb (e.g. view, submit)
uri Location or resource path in the presentation
data Optional payload
method Internal host method name; defaults to 'trackevent'

Outside Mobile Locker, events are buffered locally (IndexedDB). Inside the app, they post to the host bridge.

  • Slide / asset views for engagement reports
  • Custom CTA clicks and form milestones
  • Instrumentation — not as a general-purpose data store

Prefer domain APIs for real data (crm, user, data.submitForm, …).