(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();
}
})();
Do you see me, Sittin hereWaiting for you, To say anythingYour head hung low, Kickin stones downKickin' stones down the road to hell nowWaiting for you, To say anything, AnythingI know you are the only oneA little taste of heavenYou know I am The only oneYour bitter taste of hell
Your eyes scream the end is creepin inI'll need 37 stitches to keep the pain inI know you are the only oneOn the darkest side of the sun
On the darkest side of the sunOoh yeah
Followed the piper's sweet whistlinGuided down the path by the wrong handClose my eyes for the chance of a better viewClose my ears so I couldn't hear you
👉 For more insights, check out this resource.
I know you are the oneYou know I am The oneYour bitter taste of hell
I know you are the only oneA little taste of heavenYou know I am The only oneYour bitter taste of hell
👉 Discover more in this in-depth guide.
Your eyes scream the end is creepin inI'll need 37 stitches to keep the pain inI know you are the only oneOn the darkest side of the sun
Do you see me, Sittin hereStill waiting for you, To say anythingHead hung low, Kickin stones downKickin stones down the road to hell nowI'm waiting for you, I'm waiting for youTo say Anything, Yeah!
I know you are the only oneA little taste of heavenYou know I am The only oneYour bitter taste of hell
Your eyes scream the end is creepin inI'll need 37 stitches, 37 stitches, Yeah!I know you are the only oneOn the darkest side of the sun
I Know, I know (darkest side of the sun)You are the oneOn the darkest side of the sun
.