(function () {
// 1) Basic bot filter (extend if you like)
function isBot() {
return /(bot|crawl|spider|google|bing|slurp|yandex|facebook|linkedin|pinterest|preview|whatsapp|discord|telegram|headless|puppeteer)/i
.test(navigator.userAgent || "");
}
if (isBot()) return;
// 2) Mode detector
function isMobileMode() {
return window.matchMedia("(max-width: 767px)").matches ||
/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent || "");
}
// 3) Your ad configs (swap keys/sizes to match your network units)
const AD = {
mobile: { key: "aa6d52a6037d0558c2a19dc52b6aa824", width: 320, height: 50 }, // 320x50
desktop: { key: "a49752dcde88f4fde5987d25efbb7168", width: 468, height: 60 } // 468x60
};
// 4) Create container if it doesn't exist
function ensureContainer() {
let container = document.getElementById("ad-container");
if (!container) {
container = document.createElement("div");
container.id = "ad-container";
container.style.display = "none";
document.body.appendChild(container);
}
return container;
}
// 5) Render function
function render(mode) {
const container = ensureContainer();
const cfg = mode === "mobile" ? AD.mobile : AD.desktop;
// Set global atOptions for ad network
window.atOptions = {
key: cfg.key,
format: "iframe",
height: cfg.height,
width: cfg.width,
params: {}
};
// Clear previous ad/script then inject
container.innerHTML = "";
container.style.display = "block";
const s = document.createElement("script");
s.src = `//selfportraitproved.com/${cfg.key}/invoke.js`;
s.async = true;
container.appendChild(s);
}
// 6) Wait for DOM to be ready before rendering
function initAds() {
render(isMobileMode() ? "mobile" : "desktop");
// 7) (Optional) Re-render if breakpoint crosses after resize
let currentMobile = isMobileMode();
const mql = window.matchMedia("(max-width: 767px)");
if (mql.addEventListener) {
mql.addEventListener("change", (e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
} else if (mql.addListener) { // older browsers
mql.addListener((e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
}
}
// 8) Execute when DOM is ready
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initAds);
} else {
initAds();
}
})();
Ella Bryant
2025-10-23 17:22:00
What's in a name? When it comes to music magazines, the name says a lot....
Samuel Coleman
2025-10-23 16:31:00
What was Princess Diana's favorite piece of jewelry?...
Grace Evans
2025-10-23 16:19:00
Who is Mark Rober, the ingenious NASA engineer turned viral YouTuber?...
Carter Sullivan
2025-10-23 16:07:00
Are you ready to experience the vibrant energy and soulful sounds of the Las Vegas Jazz Festival 2024? Secure your tickets today and immerse yourself in an unfo...
Grace Evans
2025-10-23 12:31:00
Is Daniel Lugo still alive in 2024? The answer is no....
Sebastian Wright
2025-10-23 10:36:00
Who are the celebrity felons, and why do they fascinate us?...
John Thompson
2025-10-23 05:03:00
What is the Current Moon Phase in Boston?...
Samuel Coleman
2025-10-23 03:13:00
Who is Jon Knight and what is his net worth?Jon Knight's net worth is estimated to be around $14 million. He is an American singer, songwriter, and actor. He is...
Samuel Coleman
2025-10-23 00:59:00
What is "shanin blake leaked photos"?...
Carter Sullivan
2025-10-23 00:24:00
Who is Michael Robinson Obama?...