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