|
function clearCookie1112686(name, domain, path) { |
|
try { |
|
function Get_Cookie(check_name) { |
|
// first we'll split this cookie up into name/value pairs |
|
// note: document.cookie only returns name=value, not the other components |
|
var a_all_cookies = document.cookie.split(";"), |
|
a_temp_cookie = "", |
|
cookie_name = "", |
|
cookie_value = "", |
|
b_cookie_found = false; |
|
|
|
for (i = 0; i < a_all_cookies.length; i++) { |
|
// now we'll split apart each name=value pair |
|
a_temp_cookie = a_all_cookies[i].split("="); |
|
|
|
// and trim left/right whitespace while we're at it |
|
cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, ""); |
|
|
|
// if the extracted name matches passed check_name |
|
if (cookie_name == check_name) { |
|
b_cookie_found = true; |
|
// we need to handle case where cookie has no value but exists (no = sign, that is): |
|
if (a_temp_cookie.length > 1) { |
|
cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, "")); |
|
} |
|
// note that in cases where cookie is initialized but no value, null is returned |
|
return cookie_value; |
|
break; |
|
} |
|
a_temp_cookie = null; |
|
cookie_name = ""; |
|
} |
|
if (!b_cookie_found) { |
|
return null; |
|
} |
|
} |
|
if (Get_Cookie(name)) { |
|
var domain = domain || document.domain; |
|
var path = path || "/"; |
|
document.cookie = |
|
name + |
|
"=; expires=" + |
|
new Date() + // If Date() doesn't work hardcode this "Thu, 01 Jan 1970 00:00:00 UTC" |
|
"; domain=" + |
|
domain + |
|
"; path=" + |
|
path; |
|
} |
|
} catch (err) {} |
|
} |
|
(function () { |
|
function cleanGaCookies() { |
|
clearCookie1112686("_ga", ".YOURDOMAIN.com", "/"); // Change to your domain. |
|
clearCookie1112686("_gid", ".YOURDOMAIN.com", "/"); // Change to your domain. |
|
console.log(`Cleared GA cookies. document.cookie = ${document.cookie}`); |
|
} |
|
|
|
/* Check for Cookie Notice plugin opt-out. */ |
|
const cookieNotice = document.cookie |
|
.split("; ") |
|
.find((row) => row.startsWith("cookie_notice_accepted=")); |
|
|
|
if (!cookieNotice) { |
|
/* If no consent cookie, tell MI not to track. */ |
|
__gtagTrackerOptout(); |
|
cleanGaCookies(); |
|
console.log("MonsterInsights opt-out: no cookie"); |
|
return; |
|
} |
|
const consent = cookieNotice.split("=")[1]; |
|
|
|
console.log(`\nCookie Notice consent: ${consent}\n\n`); |
|
|
|
// MI doesn't have a way to opt back in (revoke). |
|
// So, we'll manually say it's cool to track again. |
|
if (consent === "true") { |
|
const disableStr = 'ga-disable-UA-1234567-1'; // Change to your tracking ID. |
|
document.cookie = disableStr + '=false; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; |
|
return; |
|
} |
|
|
|
/* If consent not given, tell MI not to track. */ |
|
__gtagTrackerOptout(); |
|
cleanGaCookies(); |
|
console.log("MonsterInsights opt-out: consent rejected"); |
|
})(); |