@dotcms/analytics
Version:
Official JavaScript library for Content Analytics with DotCMS.
41 lines (40 loc) • 1.61 kB
TypeScript
import { AnalyticsInstance } from 'analytics';
import { DotCMSAnalyticsConfig } from '../../shared/models';
/**
* Impression Plugin for DotAnalytics
* Handles automatic tracking of content visibility and impressions.
*
* This plugin initializes the impression tracker which:
* - Uses IntersectionObserver to detect when contentlets are visible
* - Tracks dwell time (how long elements are visible)
* - Fires 'content-impression' events via instance.track()
* - Deduplicates impressions per session
*
* Plugin execution in Analytics.js pipeline:
* 1. Identity Plugin - Injects context
* 2. Enricher Plugin - Enriches event data
* 3. Main Plugin - Sends to queue/server
* 4. Impression Plugin - Runs independently, fires events via instance.track()
*
* Note: This plugin is only registered if config.impressions is enabled.
* See getEnhancedTrackingPlugins() for conditional loading logic.
*
* @param {DotCMSAnalyticsConfig} config - Configuration with impressions settings
* @returns {Object} Plugin object with lifecycle methods
*/
export declare const dotAnalyticsImpressionPlugin: (config: DotCMSAnalyticsConfig) => {
name: string;
/**
* Initialize impression tracking
* Called when Analytics.js initializes the plugin with instance context
* @param instance - Analytics.js instance with track method
*/
initialize: ({ instance }: {
instance: AnalyticsInstance;
}) => Promise<void>;
/**
* Setup cleanup handlers when plugin is loaded
* Called after Analytics.js completes plugin loading
*/
loaded: () => boolean;
};