(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();
}
})();
"Waka Waka (This Time For Africa)" Lyrics
"Waka Waka (This Time For Africa)" has lyrics in spanish language. "Waka Waka (This Time For Africa)" meaning comes from spanish language and is currently not converted to English translation.
Shakira's official music video for 'Waka Waka (This Time For Africa)'. Click to listen to Shakira on Spotify:
As featured on Waka Waka (This Time For Africa) - ;Click to buy the track or album via iTunes: Google Play: Amazon:
👉 For more insights, check out this resource.
More from ShakiraLa Tortura: La La La (Brazil 2014): Hips Don't Lie:
More great Global Hits videos here:
👉 Discover more in this in-depth guide.
Follow ShakiraWebsite: Facebook: Twitter: Instagram: Tumblr:
Subscribe to Shakira on YouTube:
#Shakira #WakaWaka #Vevo #LatinPop #OfficialMusicVideo #ThisTimeForAfrica #FIFAWorldCup---------
Lyrics:
You're a good soldierChoosing your battlesPick yourself upAnd dust yourself offGet back in the saddle
You're on the front lineEveryone's watchingYou know it's seriousWe're getting closerThis isn't over
The pressure's onYou feel itBut you got it allBelieve it
When you fall get up, oh ohIf you fall get up, eh ehTsamina mina zangalewa'Cause this is Africa
Tsamina mina, eh ehWaka waka, eh ehTsamina mina zangalewaThis time for Africa"