(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();
}
})();
“I predict big things for you going forward, I really do.”
Those were the words that the one and only Simon Cowell said to a trio of two brothers and a best friend three years ago on the X Factor USA. The second Keaton Stromberg, Wesley Stromberg, and Drew Chadwick stepped onto the stage, there was something unique about them. To the audience’s surprise, they weren’t just another boyband. In fact, they did their best to stray away from that label, and took the risky choice of performing an original, Sunset Boulevard. With a yes from all four judges, they were well on their way, and ended their time on the show with a fourth place finish.
Between then and now, a lot has happened. They’ve toured with other amazing artists, released an album, and even won a Teen Choice Award. Drew Chadwick left the band, and Emblem3 went on a hiatus. The two brothers both explored different musical projects.
In the past month, more posts on social media have shown the three back together again. There was speculation of a comeback, but nothing concrete until recently. Drew’s name was back in the group Twitter account’s bio, and it was confirmed that the group was making music again. The cherry on top? A cover of Adele’s Hello was released yesterday, featuring all three members.
👉 For more insights, check out this resource.
The group also has an announcement planned for November 3rd, which we’re all excited to hear. Until then, we’ll be enjoying this cover!
👉 Discover more in this in-depth guide.