SDK API Reference

Exports from @realanalytics/sdk

Core exports

import {
  createClient,
  defineEvents,
  p,
  defineDashboard,
  widget,
  controls,
  defineCohorts,
  palettes,
  chartColors,
  resolveColor,
  getPaletteColor,
  getColorScale,
  validateDashboard,
  validateWidget,
  isBuiltinEvent,
} from '@realanalytics/sdk'

createClient(config)

const analytics = createClient({
  publicKey: 'pk_live_xxx',
  endpoint: 'https://ingest.realanalytics.dev',
  autocapture: true,
})

Client methods

  • track(event, properties?)
  • identify(userId, traits?)
  • setUserProperties(properties)
  • reset()
  • flush()
  • getDistinctId()
  • getSessionId()
  • getQueueSize()
  • shutdown()

defineEvents()

const events = defineEvents({
  signup_completed: {
    properties: {
      plan: p.enum(['free', 'pro', 'enterprise'] as const).required(),
      source: p.string(),
      seats: p.number(),
      invited: p.boolean(),
    },
    isConversion: true,
  },
})

Property builders (p)

  • p.string()
  • p.number()
  • p.boolean()
  • p.enum([...])
  • .required() on any property builder

defineDashboard()

export default defineDashboard({
  id: 'overview',
  title: 'Overview',
  defaultDateRange: 'last_30_days',
  controls: [
    controls.dateRange({ editable: true }),
    controls.filter({ editable: true }),
  ],
  widgets: [
    widget.metric({
      id: 'signups',
      label: 'Signups',
      event: 'signup_completed',
      aggregation: 'count',
    }),
  ],
})

Widget builders

  • widget.metric()
  • widget.timeSeries()
  • widget.breakdown()
  • widget.barChart()
  • widget.pieChart()
  • widget.funnel()

defineCohorts()

const cohorts = defineCohorts({
  paid_users: {
    name: 'Paid Users',
    filter: { plan: { $in: ['pro', 'enterprise'] } },
  },
})

Color helpers

const first = getPaletteColor(palettes.default, 0)
const scale = getColorScale('accessible', 6)
const resolved = resolveColor(chartColors.positive, false)

Schema validators

const result = validateDashboard(dashboardConfig)
if (!result.success) {
  console.error(result.error)
}

Type exports

import type {
  ClientConfig,
  ClientEventPayload,
  AutocaptureOptions,
  RetryConfig,
  DashboardConfig,
  WidgetConfig,
  BuiltinEvents,
  BuiltinEventName,
} from '@realanalytics/sdk'

Next Steps