Files
2026-04-28 15:13:50 +02:00

57 lines
1.6 KiB
JavaScript

/**
* Microsoft Clarity Consent Mode V2 integration with Complianz
*/
function callClarity(method, params) {
if (typeof window.clarity === 'function') {
try {
window.clarity(method, params);
} catch (e) {
console.warn('Clarity API error:', e);
}
}
}
(function (c, l, a, r, i, t, y) {
c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); };
t = l.createElement(r);
t.async = 1;
t.src = "https://www.clarity.ms/tag/" + i;
y = l.getElementsByTagName(r)[0];
y.parentNode.insertBefore(t, y);
})(window, document, "clarity", "script", "{site_ID}");
function getConsentFromEvent(e) {
var d = e && e.detail && e.detail.categories ? e.detail.categories : [];
var categories = Array.isArray(d) ? d : [];
return {
analyticsAllowed: categories.indexOf('statistics') !== -1,
adsAllowed: categories.indexOf('marketing') !== -1
};
}
function sendClarityConsent(analyticsAllowed, adsAllowed) {
var status = function (b) { return b ? "granted" : "denied"; };
callClarity('consentv2', {
analytics_Storage: status(!!analyticsAllowed),
ad_Storage: status(!!adsAllowed)
});
}
function eraseClarityCookies() {
callClarity('consent', false);
}
document.addEventListener('cmplz_fire_categories', function (e) {
var consent = getConsentFromEvent(e);
sendClarityConsent(consent.analyticsAllowed, consent.adsAllowed);
});
document.addEventListener('cmplz_revoke', function (e) {
var consent = getConsentFromEvent(e);
sendClarityConsent(consent.analyticsAllowed, consent.adsAllowed);
if (!consent.analyticsAllowed && !consent.adsAllowed) {
eraseClarityCookies();
}
});