Skip to content

@gluonjs/core / src/analytics / AnalyticsOptions

Interface: AnalyticsOptions ​

Properties ​

adapters? ​

readonly optional adapters?: readonly AnalyticsAdapter[]


readonly optional consent?: () => boolean | "granted" | "denied"

Returns ​

boolean | "granted" | "denied"


debug? ​

readonly optional debug?: (event) => void

Parameters ​

event ​

AnalyticsEvent

Returns ​

void


enrich? ​

readonly optional enrich?: (event) => Readonly<Record<string, unknown>>

Parameters ​

event ​

AnalyticsEvent

Returns ​

Readonly<Record<string, unknown>>


environment? ​

readonly optional environment?: "browser" | "server"


now? ​

readonly optional now?: () => number

Returns ​

number

Example ​

Configure adapters, consent, enrichment, and environment ownership:

ts
import { Analytics, createAnalytics, createGa4Adapter, createServerAnalytics, semanticAnalyticsEvents, trackEvent, trackImpression, type AnalyticsAdapter, type AnalyticsEvent, type AnalyticsEventName, type AnalyticsEventOptions, type AnalyticsOptions, type AnalyticsScope, type AnalyticsDirectiveOptions, type SemanticAnalyticsEvent } from '@gluonjs/core/analytics';
const adapter: AnalyticsAdapter = createGa4Adapter((event) => console.log(event));
const options: AnalyticsOptions = { adapters: [adapter], consent: () => 'granted' };
const analytics: Analytics = createAnalytics(options);
const scope: AnalyticsScope = analytics.scope({ locale: 'en-GB' });
const eventName: AnalyticsEventName = semanticAnalyticsEvents[0];
const semanticEvent: SemanticAnalyticsEvent = 'view_item';
const eventOptions: AnalyticsEventOptions = { context: { currency: 'EUR' } };
const event: AnalyticsEvent = scope.track(eventName, { item_id: 'lamp' }, eventOptions)!;
const directiveOptions: AnalyticsDirectiveOptions = { emitOnUpdate: true };
const server = createServerAnalytics();
console.log(event, semanticEvent, directiveOptions, server, trackEvent, trackImpression);

Version-matched documentation. Examples are checked against the public package contracts.