(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();
}
})();
Danny “Shiphtur” Le has remained one of the most talented League of Legends players in North America, even though he left the professional scene to become a full-time streamer. And during the second day of Twitch Rivals, he showed off his prowess with a game-winning flank to secure his team’s perfect 7-0 record.
In the clip, Team Silver Mid was setting up to take another dragon, while also preparing a flank with Shiphtur’s Ekko. As the opposing team grouped into the chokepoint leading to the dragon, Shiphtur launched his Parallel Convergence toward the enemy team.
As the Yuumi ultimate forced the opposing team back, they ended up walking right into a huge four-man Ekko stun. The wombo combo that followed wiped the rest of the teamfight and secured their team the only perfect run through the Twitch Rivals group stage.
Ekko has become one of Shiphtur’s signature champions. He’s shown that he can shatter time and hearts with his great playmaking skills. Shiphtur has also shown through this tournament that his ability hasn’t wavered whatsoever—if he wanted to, he could probably try to go pro again and succeed.
👉 For more insights, check out this resource.
Team Silver Mid will be facing off against Jungle Differential in the first round of the playoffs, a team featuring popular streamers Tyler “Tyler1” Steinkamp and Joedat “Voyboy” Esfahani. This team had a decent run through the group stage so far, going 5-2 with losses against Sneaky Dogs and Team Boomer.
You can catch all the action when the Twitch Rivals Streamer Showdown continues at 2pm CT today.
👉 Discover more in this in-depth guide.