UNPKG

@dotcms/analytics

Version:

Official JavaScript library for Content Analytics with DotCMS.

28 lines (27 loc) 1.2 kB
import { DotCMSImpressionTracker as t } from "./dot-analytics.impression-tracker.js"; import { createPluginLogger as a, isBrowser as p, setupPluginCleanup as u } from "../../shared/utils/dot-analytics.utils.js"; const g = (n) => { let i = null, e = null; const r = a("Impression", n); return { name: "dot-analytics-impression", /** * Initialize impression tracking * Called when Analytics.js initializes the plugin with instance context * @param instance - Analytics.js instance with track method */ initialize: ({ instance: s }) => n.impressions ? (i = new t(n), i.initialize(), e = i.onImpression((o, l) => { s.track(o, l); }), r.info("Impression tracking plugin initialized"), Promise.resolve()) : (r.info("Impression tracking disabled (config.impressions not set)"), Promise.resolve()), /** * Setup cleanup handlers when plugin is loaded * Called after Analytics.js completes plugin loading */ loaded: () => (p() && i && u(() => { e && (e.unsubscribe(), e = null), i && (i.cleanup(), i = null, r.info("Impression tracking cleaned up on page unload")); }), !0) }; }; export { g as dotAnalyticsImpressionPlugin };