@braze/web-sdk
Version:
Braze SDK for web sites and other JS platforms.
29 lines (28 loc) • 845 B
JavaScript
import {
impressOnBottom as $,
impressOnTop as B,
detectImpression as I,
} from "../../common/detect-impression.js";
import { topIsInView as k, bottomIsInView as q } from "../../util/dom-utils.js";
import { logBannerImpressions } from "../log-banner-impressions.js";
import {
BANNER_HTML_CLASS as w,
BANNER_PLACEMENT_ID as y,
CONTROL_BANNER_HTML_CLASS as z,
} from "./banner-to-html.js";
export function detectBannerImpressions() {
const o = document.querySelectorAll(`.${w}, .${z}`),
t = [];
for (let n = 0; n < o.length; n++) {
const s = o[n],
i = s.getAttribute(y);
if (!i) continue;
const m = I.oo(s),
r = I.no(s);
if (m && r) continue;
const e = k(s),
c = q(s);
e && !m && B(s), c && !r && $(s), I.oo(s) && I.no(s) && t.push(i);
}
t.length > 0 && logBannerImpressions(t);
}