Data Types
The objects you pass to and receive from the core methods.
ErrorContext
Passed to logError. Every field is optional; providers map the fields they support.
interface ErrorContext {
severity?: 'debug' | 'info' | 'warning' | 'error' | 'fatal';
tags?: Record<string, string>;
extra?: Record<string, unknown>;
user?: { id?: string; email?: string; username?: string };
breadcrumbs?: Array<{
message: string;
category?: string;
timestamp?: number;
data?: Record<string, unknown>;
}>;
timestamp?: string;
platform?: string;
}
RevenueData
Passed to logRevenue. Only amount is required.
interface RevenueData {
amount: number;
currency?: string;
productId?: string;
productName?: string;
quantity?: number;
transactionId?: string;
items?: Array<{
itemId?: string;
itemName?: string;
itemCategory?: string;
itemVariant?: string;
itemBrand?: string;
price?: number;
quantity?: number;
currency?: string;
index?: number;
}>;
properties?: Record<string, unknown>;
}
The items array maps to ecommerce line items for providers (such as GA4) that model purchases as itemized transactions.
ConsentSettings
Passed to setConsent and settings.defaultConsent. The index signature lets you carry provider-specific categories alongside the named ones.
interface ConsentSettings {
analytics?: boolean;
errorTracking?: boolean;
marketing?: boolean;
personalization?: boolean;
advertising?: boolean;
functional?: boolean;
performance?: boolean;
[key: string]: boolean | undefined;
}
Only analytics and errorTracking gate dispatch inside the engine; the rest forward to provider-native consent APIs. See Consent and privacy.
InitializeResult
Returned by initialize.
interface InitializeResult {
success: boolean;
activeProviders: ActiveProvidersResult;
warnings?: string[];
}
ActiveProvidersResult & ProviderStatus
Returned by getActiveProviders.
interface ActiveProvidersResult {
analytics: ProviderStatus[];
errorTracking: ProviderStatus[];
}
interface ProviderStatus {
name: string;
enabled: boolean;
initialized: boolean;
version?: string;
}
TrackingEventPayload
Delivered to addListener callbacks. Which fields are populated depends on the event: trackingEvent carries event + properties (+ timestamp); error carries error + context; providerStatusChange carries provider + status.
interface TrackingEventPayload {
event?: string;
properties?: Record<string, unknown>;
error?: Error | string;
context?: ErrorContext;
provider?: string;
status?: string;
message?: string;
timestamp?: string;
}