(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();
}
})();
James Sullivan
2025-10-22 17:35:00
Debbie Osmond is the wife of Donny Osmond, an American singer, dancer, actor, and television personality. She is also a former school teacher. Debbie and Donny...
Amelia Brooks
2025-10-22 16:56:00
Cecilia Vega Wikipedia is the online encyclopedia article about the American journalist and television correspondent, Cecilia Vega....
James Sullivan
2025-10-22 15:10:00
Katherine Johnson, a pioneering mathematician whose work on NASA's early space missions helped launch humans into orbit and onto the Moon, passed away on Februa...
Carter Sullivan
2025-10-22 14:44:00
Dorothy Wetzel Hunt, (born May 21, 1929; died September 26, 1998) was an American political figure and civil servant who made history as the first woman to pres...
Grace Evans
2025-10-22 13:36:00
Toni Collette's husband, Dave Galafassi, is an Australian musician and music producer. The couple married in 2003 and have two children together....
Ella Bryant
2025-10-22 13:05:00
Home
Porter Stansberry
2012
He describes why in the essay listed below.
We need to spe......
Grace Evans
2025-10-22 08:35:00
The girl with the longest name now in 2022 has captured the attention of people around the world with her incredibly unique name. With the rise of social media...
Sebastian Wright
2025-10-22 05:26:00
How tall is Ke Huy Quan?...
Amelia Brooks
2025-10-22 03:56:00
Myriam Hernandez Bio Wiki Age...
Sebastian Wright
2025-10-22 01:32:00
Colin Kaepernick's parents exploring his biological refers to the journey undertaken by Colin Kaepernick's adoptive parents to uncover information about his bio...