(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();
}
})();
• | A substance in the form of thin sheets or leaves intended to be written or printed on, or to be used in wrapping. It is made of rags, straw, bark, wood, or other fibrous material, which is first reduced to pulp, then molded, pressed, and dried. |
• | A sheet, leaf, or piece of such substance. |
• | A printed or written instrument; a document, essay, or the like; a writing; as, a paper read before a scientific society. |
• | A printed sheet appearing periodically; a newspaper; a journal; as, a daily paper. |
• | Negotiable evidences of indebtedness; notes; bills of exchange, and the like; as, the bank holds a large amount of his paper. |
• | Decorated hangings or coverings for walls, made of paper. See Paper hangings, below. |
• | A paper containing (usually) a definite quantity; as, a paper of pins, tacks, opium, etc. |
• | A medicinal preparation spread upon paper, intended for external application; as, cantharides paper. |
• | Of or pertaining to paper; made of paper; resembling paper; existing only on paper; unsubstantial; as, a paper box; a paper army. |
• | To cover with paper; to furnish with paper hangings; as, to paper a room or a house. |
• | To fold or inclose in paper. |
• | To put on paper; to make a memorandum of. |