UNPKG

@dotcms/analytics

Version:

Official JavaScript library for Content Analytics with DotCMS.

81 lines (79 loc) 2.6 kB
import { DotCMSAnalyticsConfig, DotCMSAnalyticsHookParams } from '../../shared/dot-content-analytics.model'; /** * Identity Plugin for DotAnalytics * Handles user ID generation, session management, and activity tracking. * This plugin provides consistent identity context across all analytics events. * * Plugin execution order: * 1. Identity Plugin (this) - Injects context * 2. Enricher Plugin - Adds page/device/utm data * 3. Main Plugin - Sends to server * * @param {DotCMSAnalyticsConfig} config - Configuration object containing server URL, site key, and debug settings * @returns {Object} Plugin object with methods for initialization and event processing */ export declare const dotAnalyticsIdentityPlugin: (config: DotCMSAnalyticsConfig) => { name: string; /** * Initialize the identity plugin * Sets up activity tracking for session management */ initialize: () => Promise<void>; /** * Inject identity context into page events * This runs BEFORE the enricher plugin */ pageStart: ({ payload }: DotCMSAnalyticsHookParams) => { context: import('../../shared/dot-content-analytics.model').DotCMSAnalyticsContext; type: string; properties: { title: string; url: string; path: string; hash: string; search: string; width: number; height: number; referrer?: string | undefined; }; options: Record<string, unknown>; userId: string | null; anonymousId: string; meta: { rid: string; ts: number; hasCallback: boolean; }; }; /** * Inject identity context into track events * This runs BEFORE the enricher plugin */ trackStart: ({ payload }: DotCMSAnalyticsHookParams) => { context: import('../../shared/dot-content-analytics.model').DotCMSAnalyticsContext; type: string; properties: { title: string; url: string; path: string; hash: string; search: string; width: number; height: number; referrer?: string | undefined; }; options: Record<string, unknown>; userId: string | null; anonymousId: string; meta: { rid: string; ts: number; hasCallback: boolean; }; }; /** * Clean up on plugin unload * Sets up cleanup handlers for activity tracking */ loaded: () => boolean; };