Skip to main content

Client SDK — Event Tracking

Beta

This feature is in beta. Core behavior is stable, but some APIs or configuration may change before general availability.

Track custom events from client SDKs with client.analytics.track(...).

The common cross-SDK contract is intentionally small:

  • track(name, properties?)
  • flush()

Platform-specific delivery behavior differs by SDK.

Supported Client SDKs

  • JavaScript (@edgebase/web)
  • React Native (@edgebase/react-native)
  • Dart / Flutter
  • Swift
  • Kotlin
  • Java
  • C#
  • C++

Setup

import { createClient } from '@edgebase/web';

const client = createClient('https://my-app.edgebase.fun');

Track Events

await client.analytics.track('page_view');

await client.analytics.track('button_click', {
id: 'signup-cta',
variant: 'A',
annual: true,
});

Delivery Model

SDK familyDelivery behavior
WebBatched in memory, flushes on timer/batch size, uses sendBeacon on unload
React Native / mobile / desktop SDKsSends immediately, flush() is a compatibility no-op

So analytics.flush() is meaningful on the web SDK, but safe to call everywhere.

Authentication

If the client is signed in, analytics requests include the current auth token automatically. Anonymous tracking is also allowed.

Cleanup

  • client.destroy() remains the main SDK cleanup entrypoint.
  • analytics.destroy() exists for compatibility, but outside the web SDK it is currently a no-op.