@dotcms/analytics
Version:
Official JavaScript library for Content Analytics with DotCMS.
62 lines (61 loc) • 2.2 kB
TypeScript
import { AnalyticsBaseParams, DotCMSAnalyticsConfig } from '../../shared/models';
/**
* 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 and updates session activity for session management
* This runs BEFORE the enricher plugin
*/
pageStart: ({ payload }: AnalyticsBaseParams) => {
context: import('../../shared/models').DotCMSAnalyticsEventContext;
type: "page" | "track";
properties: Record<string, unknown>;
options: Record<string, unknown>;
userId: string;
anonymousId: string;
meta: {
rid: string;
ts: number;
hasCallback: boolean;
};
};
/**
* Inject identity context into track events and updates session activity for session management
* This runs BEFORE the enricher plugin
*/
trackStart: ({ payload }: AnalyticsBaseParams) => {
context: import('../../shared/models').DotCMSAnalyticsEventContext;
type: "page" | "track";
properties: Record<string, unknown>;
options: Record<string, unknown>;
userId: string;
anonymousId: string;
meta: {
rid: string;
ts: number;
hasCallback: boolean;
};
};
/**
* Clean up on plugin unload
* Sets up cleanup handlers for activity tracking
*/
loaded: () => boolean;
};