Skip to content
(function () {
var STORAGE_KEY = "ezRewardedSiteUnlocked";
var SCROLL_TRIGGER_PX = 600;
if (document.readyState === "interactive" || document.readyState === "complete") {
init();
} else {
document.addEventListener("DOMContentLoaded", init);
}
function init() {
try {
if (sessionStorage.getItem(STORAGE_KEY) === "1") {
console.log("Ezoic Rewarded Ads: Site already unlocked this session");
return;
}
} catch (e) {}
var container = document.querySelector("#content .ast-container");
if (!container) {
console.error("Ezoic Rewarded Ads: Content container not found: #content .ast-container");
return;
}
var ezoicAdSelectors =
'[id^="ezoic-pub-ad-placeholder-"], .ezoic-ad, [data-ez-name], [data-ez-ph-id]';
var blurredWrappers = [];
var adRequested = false;
var unlocked = false;
function isAd(node) {
return node.nodeType === 1 && node.matches && node.matches(ezoicAdSelectors);
}
function hasAdDescendant(node) {
return (
node.nodeType === 1 &&
node.querySelector &&
node.querySelector(ezoicAdSelectors) !== null
);
}
function wrapElement(child) {
var wrapper = document.createElement("div");
wrapper.className = "ez-rewarded-blur-wrapper";
wrapper.style.cssText =
"filter: blur(8px); pointer-events: none; user-select: none;";
child.parentNode.insertBefore(wrapper, child);
wrapper.appendChild(child);
blurredWrappers.push(wrapper);
}
function blurChildren(parent) {
var children = Array.prototype.slice.call(parent.children);
for (var i = 0; i < children.length; i++) {
var child = children[i];
if (isAd(child)) {
continue;
}
if (hasAdDescendant(child)) {
blurChildren(child);
} else {
wrapElement(child);
}
}
}
function unblurContent() {
for (var i = 0; i < blurredWrappers.length; i++) {
var wrapper = blurredWrappers[i];
while (wrapper.firstChild) {
wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);
}
if (wrapper.parentNode) {
wrapper.parentNode.removeChild(wrapper);
}
}
blurredWrappers = [];
}
function unlockSite() {
if (unlocked) return;
unlocked = true;
unblurContent();
try {
sessionStorage.setItem(STORAGE_KEY, "1");
} catch (e) {}
console.log("Ezoic Rewarded Ads: Site unlocked, content revealed");
}
function triggerRewardedAd() {
if (adRequested || unlocked) return;
adRequested = true;
try {
window.ezRewardedAds = window.ezRewardedAds || {};
window.ezRewardedAds.cmd = window.ezRewardedAds.cmd || [];
window.ezRewardedAds.cmd.push(function () {
window.ezRewardedAds.requestWithOverlay(
function (result) {
if (result.status && result.reward) {
console.log("Ezoic Rewarded Ads: Ad completed, unlocking site");
unlockSite();
} else if (!result.status) {
console.warn("Ezoic Rewarded Ads: Ad error, no access granted");
adRequested = false;
window.addEventListener("scroll", onScroll, { passive: true });
} else {
console.log("Ezoic Rewarded Ads: User did not complete ad, no access");
adRequested = false;
window.addEventListener("scroll", onScroll, { passive: true });
}
},
{
header: "Watch Ad to Continue?",
body: ["Watch a short ad to unlock this content."],
accept: "Watch ad",
cancel: "Cancel"
},
{
rewardName: "Site-Wide Content Unlock",
lockScroll: true,
rewardOnNoFill: false,
alwaysCallback: true
}
);
});
} catch (err) {
console.error("Ezoic Rewarded Ads: Error triggering ad:", err);
adRequested = false;
}
}
function onScroll() {
if (adRequested || unlocked) return;
var scrolled = window.pageYOffset || document.documentElement.scrollTop;
if (scrolled >= SCROLL_TRIGGER_PX) {
window.removeEventListener("scroll", onScroll);
triggerRewardedAd();
}
}
blurChildren(container);
window.addEventListener("scroll", onScroll, { passive: true });
console.log("Ezoic Rewarded Ads: Scroll-triggered site unlock initialized");
}
})();