(function () { const ONCLICKA_SPOT_ID = "6108187"; const SDK_SRC = "https://js.onclckvd.com/in-stream-ad-admanager/tma.js"; function loadOnClickaSDK() { if (window.__onclickaSDK) return window.__onclickaSDK; window.__onclickaSDK = new Promise((resolve, reject) => { if (document.querySelector(`script[src="${SDK_SRC}"]`)) return resolve(); const s = document.createElement("script"); s.src = SDK_SRC; s.async = true; s.onload = resolve; s.onerror = () => reject(new Error("Failed to load OnClicka SDK")); document.head.appendChild(s); }); return window.__onclickaSDK; } loadOnClickaSDK(); window.showOnClickaAd = function () { return new Promise((resolve, reject) => { loadOnClickaSDK() .then(() => { if (!window.initCdTma) throw new Error("OnClicka SDK not initialized"); return window.initCdTma({ id: ONCLICKA_SPOT_ID }); }) .then(show => { if (typeof show !== "function") throw new Error("Invalid show function from OnClicka"); return show(); }) .then(() => { if (!window.__onclickaResolved) { window.__onclickaResolved = true; resolve({ network: "onclicka", event: "completed" }); } }) .catch(err => { if (!window.__onclickaResolved) { window.__onclickaResolved = false; reject(err); } }); }); }; })(); /* ======================== Adexora Manager ======================== */ window._adexoraProviders = window._adexoraProviders || []; window._adexoraProviders.push(window.showOnClickaAd); window.showAdexora = function () { return new Promise((resolve, reject) => { const providers = (window._adexoraProviders || []).slice(); if (!providers.length) return reject(new Error("No ad networks available")); const onclickaFn = window.showOnClickaAd; const otherProviders = providers.filter(fn => fn !== onclickaFn); const shuffled = otherProviders.sort(() => Math.random() - 0.5); let idx = 0; function tryNext() { if (idx >= shuffled.length) return showOnClickaIfEnabled(); const fn = shuffled[idx++]; if (typeof fn !== "function") return tryNext(); // Wrap provider call with a timeout fallback const providerPromise = fn(); const timeout = new Promise(res => setTimeout(() => res({ error: "Timeout" }), 15000)); // 15s fallback Promise.race([providerPromise, timeout]) .then(result => showOnClickaIfEnabled(result)) .catch(() => tryNext()); } function showOnClickaIfEnabled(prevResult) { if (typeof onclickaFn !== "function") return resolve(prevResult); // Wrap OnClicka call with a timeout fallback const onclickaPromise = onclickaFn(); const timeout = new Promise(res => setTimeout(() => res({ error: "OnClicka Timeout" }), 15000)); Promise.race([onclickaPromise, timeout]) .then(res => resolve([prevResult, res])) .catch(err => resolve([prevResult, { error: err }])); } tryNext(); }); };