@dotcms/analytics
Version:
Official JavaScript library for Content Analytics with DotCMS.
81 lines (79 loc) • 2.6 kB
TypeScript
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;
};