@braze/web-sdk
Version:
Braze SDK for web sites and other JS platforms.
41 lines (40 loc) • 1.23 kB
JavaScript
import { logger as b, EventTypes as p } from "../../shared-lib/index.js";
import v from "../common/event-logger.js";
import r from "../managers/braze-instance.js";
import { keys as C } from "../util/code-utils.js";
import i from "./banner-provider-factory.js";
export function logBannerImpressions(o) {
if (!r.rr()) return;
if (!o || o.length <= 0) return !1;
const n = i.o(),
s = n.k();
if (0 === C(s).length)
return b.info("Not logging banners impression. No banners exist."), !1;
let e = n.Wt(),
t = !1;
if (Object.keys(e).some((o) => void 0 !== s[o])) {
const o = {};
for (const n of Object.keys(e)) {
const r = s[n];
r && e[n] && (o[r.id] = !0);
}
(e = o), (t = !0);
}
const a = [];
for (const n of o) {
const o = s[n];
o
? e[o.id]
? b.info(
`Not logging banners impression for ID ${n}. This ID was already logged this session.`,
)
: ((e[o.id] = !0), a.push(o.id))
: b.info(
`Not logging banners impression for ID ${n}. The placement ID did not correspond to any banner.`,
);
}
if (0 === a.length) return t && n.Mt(e), !1;
n.Mt(e);
const f = { ids: a };
return v.Dt(p.ro, f).lt;
}