UNPKG

@dotcms/analytics

Version:

Official JavaScript library for Content Analytics with DotCMS.

41 lines (40 loc) 1.61 kB
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; };