(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();
}
})();
Kanye West recently premiered his new song ‘See Me Now’ featuring Beyonce. The song will be on Kanye’s upcoming album which will hit store shelves on November 16, 2010. The track, featuring Beyonce and Charlie Wilson, was produced by Lex Luger and No I.D.
The track is a step in the opposite direction from 808’s and Heartbreaks and sounds more like the old Kanye. There doesn’t seem to be any heavy autotune effects like we saw on 808’s and the lyrics are pretty solid. Kanye opens up the song by dropping some great lines like:
“I’mma need you to kill all the hypocrisy / This is an aristocracy / I’m Socrates, but my skin more chocolatey.”
👉 For more insights, check out this resource.
The song clocks in at just over six minutes which is pretty long for a song these days but it never feels too long and I thoroughly enjoyed it. Judging by ‘Power’ and ‘See Me Now’, it looks like the old Kanye is back. He even raps at the end and says:
“I know you thinking/this that Yeezy we all love/I’m back baby/we back baby”
👉 Discover more in this in-depth guide.
‘See Me Now’ is just as good as ‘Power’. The hook is pretty catchy and Kanye drops some great rhymes. I think the upcoming album is going to turn out great and it’s easily my most anticipated album of the year.
West has also announced that his upcoming album will feature prominent rap stars like Nicki Minaj, Kid Cudi and Jay-Z who will jump in on the remix of ‘Power’ (which premieres tomorrow morning).
Check out ‘See Me Now’ below and let us know what you think.
[audio: Me Now(ft. Beyonce and Charlie Wilson)]