Configuration Types
These interfaces describe the object passed to initialize. The Configuration guide walks through them with examples; this page is the type-level reference.
UnifiedTrackingConfig
interface UnifiedTrackingConfig {
analytics?: AnalyticsConfig;
errorTracking?: ErrorTrackingConfig;
settings?: GlobalSettings;
autoDetect?: boolean;
}
AnalyticsConfig
interface AnalyticsConfig {
providers?: AnalyticsProvider[];
google?: GoogleAnalyticsConfig;
firebase?: FirebaseAnalyticsConfig;
amplitude?: AmplitudeConfig;
mixpanel?: MixpanelConfig;
segment?: SegmentConfig;
posthog?: PostHogConfig;
heap?: HeapConfig;
matomo?: MatomoConfig;
}
type AnalyticsProvider =
| 'google' | 'firebase' | 'amplitude' | 'mixpanel'
| 'segment' | 'posthog' | 'heap' | 'matomo';
Per-provider config blocks are documented under Analytics providers.
ErrorTrackingConfig
interface ErrorTrackingConfig {
providers?: ErrorProvider[];
sentry?: SentryConfig;
crashlytics?: CrashlyticsConfig;
datadog?: DataDogConfig;
bugsnag?: BugsnagConfig;
rollbar?: RollbarConfig;
logrocket?: LogRocketConfig;
raygun?: RaygunConfig;
appcenter?: AppCenterConfig;
}
type ErrorProvider =
| 'sentry' | 'crashlytics' | 'datadog' | 'bugsnag'
| 'rollbar' | 'logrocket' | 'raygun' | 'appcenter';
Per-provider config blocks are documented under Error-tracking providers.
GlobalSettings
interface GlobalSettings {
debug?: boolean;
defaultConsent?: ConsentSettings;
sessionTimeout?: number; // milliseconds
autoTrackScreens?: boolean;
autoTrackErrors?: boolean;
userIdGenerator?: () => string;
batching?: BatchingSettings;
privacy?: PrivacySettings;
}
BatchingSettings
interface BatchingSettings {
enabled: boolean;
maxSize?: number; // events per batch
timeout?: number; // flush interval in ms
}
PrivacySettings
interface PrivacySettings {
anonymizeIp?: boolean;
excludedProperties?: string[]; // stripped from every event/trait/context
dataRetentionDays?: number;
}
See Consent and privacy for how excludedProperties and anonymizeIp are enforced inside the engine.